Буквально вчера команда Flutter в свом блоге на Medium объявила о code freeze для библиотек Material и Cupertino, тем самым следав первый шаг к самому масштабному архитектурному изменению в истории фреймворка - полному отделению дизайн-систем от ядра SDK😄
🤔 Какую боль это решает?
Сейчас Material и Cupertino жестко насажены на Flutter и обновляются только вместе с релизами SDK. А это создает три ключевые проблемы:
- 1️⃣ Зависимость от цикла релизов. Нашел баг в Material? Жди 3 месяца, пока выйдет новый релиз Flutter! Нужна свежая версия Material 3? Обновляй весь SDK, даже если тебе это не нужно.
- 2️⃣ Невозможность кастомизации. Нереально запилить свою дизайн-систему, без торчащих из нее ушей Material или Cupertino.
- 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 и ваших собственных дизайн-систем 🥳
Ждете?
- 👍 – О, да, детка!!!
- 👌 – Сомнительно, но Окей
- 👎 – Отстой! (кайфую от текущей реализации)




Дискуссия