Команда Flutter заморозила Material и Cupertino

Я — MADTeacher, автор книг по Dart/Flutter/ИИ в программировании и преподаватель. На канале разбираю свежие фичи языка и фреймворка, объясняю, как и когда их применять, и показываю всё на живых примерах кода. Меньше воды — больше практики: от конструкторов и метапрограммирования до производительности, интеропа и тестирования, а также поднимаю тему использования ИИ для разработки программных продуктов. Если хотите понимать Dart и Flutter в эпоху ИИ глубже — вы по адресу.

fluttermaterialcupertino

Буквально вчера команда Flutter в свом блоге на Medium объявила о code freeze для библиотек Material и Cupertino, тем самым следав первый шаг к самому масштабному архитектурному изменению в истории фреймворка - полному отделению дизайн-систем от ядра SDK😄

🤔 Какую боль это решает?

Сейчас Material и Cupertino жестко насажены на Flutter и обновляются только вместе с релизами SDK. А это создает три ключевые проблемы:

  1. 1️⃣ Зависимость от цикла релизов. Нашел баг в Material? Жди 3 месяца, пока выйдет новый релиз Flutter! Нужна свежая версия Material 3? Обновляй весь SDK, даже если тебе это не нужно.
  2. 2️⃣ Невозможность кастомизации. Нереально запилить свою дизайн-систему, без торчащих из нее ушей Material или Cupertino.
  3. 3️⃣ Сложности для контрибьюторов. Хочешь пофиксить баг в кнопке Material и сделать PR? Для начала разберись с локальной сборкой Flutter 🤣

После разделения библиотеки Material и Cupertino будут обычными пакетам на pub.dev, со своим версионированием и циклом обновлений 🥳

Как заранее подсталить соломку? 👀

  • 👉 Начинай присматриваться к package:flutter/widgets.dart (для создания переиспользуемых виджетов) и package:flutter/foundation.dart (в файлах, определяющих модели, блоки бизнес-логики, репозитории или сервисы) вместо material.dart (или cupertino). Это упростит будущую миграцию
  • 🥶 Избегай Switch.adaptive и другие «магические» виджеты, которые сами выбирают дизайн-систему
  • 🫢 Не паникуй! До полного удаления старых библиотек из SDK у нас еще много времени (около года точно)

Еще немного и Flutter превратится из «UI-фреймворка со встроенным Material и Cupertino» в фреймворк, где библиотеки этих дизайн-систем одни из многих среди fluent_ui, macos_ui, yaru и ваших собственных дизайн-систем 🥳

Ждете?

  • 👍 – О, да, детка!!!
  • 👌 – Сомнительно, но Окей
  • 👎 – Отстой! (кайфую от текущей реализации)
Скриншот публикации о code freeze Flutter: заголовок статьи и иллюстрация в оформлении Medium, видна шапка поста и превью публикации.
Превью статьи в Medium о заморозке библиотек Material и Cupertino

Дискуссия

Amir
Сделав
Amir
Подстелить
Edgar
Когда они уже сделают поддержку жидкого стекла для iOS?
Илия Zel
Для таких случаев полезна headless UI архитектура - не зависеть от конретного UI, создал для этого flutter_headless пакет
Денис Рева
О да, детка! Наконец! Я ждал этого с 2021 года, успел даже уйти из мобильной разработки!
TheLastRay (:
Edgar
Когда они уже сделают поддержку жидкого стекла для iOS?
liquid_glass_renderer просто существует и liquid_glass_widgets на основе его наработок https://pub.dev/packages/liquid_glass_widgets
Присоединиться к обсуждению →

Читайте так же