Команда
Flutter объявила о заморозке изменений в библиотеках
Material и
Cupertino внутри основного
SDK. Это первый шаг к самому масштабному архитектурному изменению в истории фреймворка - полному отделению дизайн-систем от ядра. Теперь
Material и
Cupertino станут обычными пакетами на
pub.dev.
Какую проблему решает это изменение:
Сейчас
Material и
Cupertino жестко привязаны к
Flutter и обновляются только с релизами
SDK. Это создает несколько проблем:
- Зависимость от цикла релизов. Нашли баг в Material? Ждите три месяца, пока выйдет новый релиз Flutter. Нужна свежая версия Material 3? Обновляйте весь SDK, даже если вам это не нужно.
- Невозможность кастомизации. Сложно сделать свою дизайн-систему, чтобы из нее не торчали уши Material или Cupertino.
- Сложности для энтузиастов. Чтобы поправить баг в кнопке Material, нужно разбираться с локальной сборкой Flutter.
После разделения библиотеки
Material и
Cupertino будут обычными пакетами на
pub.dev со своим версионированием и циклом обновлений.
Что будет происходить дальше:
С 7 апреля все изменения в
Material и
Cupertino внутри
Flutter заморожены. Дальнейшая разработка продолжится в репозитории
flutter/packages, где появятся новые пакеты -
material_ui и
cupertino_ui. После выхода стабильного релиза
Flutter 3.44 новые пакеты станут доступны, и разработчикам нужно будет постепенно переходить на них.
Старые библиотеки
Material и
Cupertino в
SDK будут объявлены устаревшими в следующем релизе после
3.44 и удалены спустя какое-то время.
Как подготовиться к миграции:
- Начинайте использовать package:flutter/widgets.dart для переиспользуемых виджетов и package:flutter/foundation.dart для моделей, бизнес-логики, репозиториев и сервисов, вместо material.dart или cupertino.dart. Это упростит будущий переход.
- Избегайте виджетов вроде Switch.adaptive, которые сами выбирают дизайн-систему.
- Не паникуйте. До полного удаления старых библиотек из SDK еще есть время - около года.
Вывод:
Flutter перестает быть фреймворком со встроенными
Material и
Cupertino и становится платформой, где дизайн-системы живут своей жизнью. Это не просто техническое изменение, а смена подхода: ядро
SDK становится легче и стабильнее, а дизайн-системы - независимыми, с собственными циклами обновлений. Разработчики получают свободу выбора: можно использовать
Material,
Cupertino или свою собственную дизайн-систему. Баги теперь будут фикситься быстрее - не нужно ждать квартального релиза
Flutter.