Недавно попробовала Flutter 3.32 и хочу поделиться интересными улучшениями в релизе, которые могут сэкономить время и сделать разработку чуточку приятнее. Особенно понравились изменения, связанные с вебом, доступностью и новым виджетом Expansible.
▪️Горячая перезагрузка на вебе (экспериментально)
Наконец-то можно использовать hot reload в браузере! Это сильно ускоряет цикл разработки — больше не нужно каждый раз ждать полной перезагрузки страницы.
Чтобы включить, достаточно запустить:
bash
flutter run -d chrome --web-experimental-hot-reload
В VS Code можно настроить в launch.json, просто добавив аргумент --web-experimental-hot-reload. Работает так же, как и в мобильных проектах — r в терминале для быстрой перезагрузки, R для полного рестарта. А в DartPad теперь даже появилась кнопка «Reload».
▪️Улучшения доступности
Семантическое дерево теперь строится примерно на 80% быстрее — полезно для экранных дикторов и других assistive-технологий.
Появился новый API SemanticsRole, позволяющий явно указывать роли элементов (button, header, textField и другие), и это работает на уровне поддерева.
▪️Инструменты разработчика
В DevTools появился Flutter Property Editor. С ним можно редактировать свойства виджетов прямо в интерфейсе и сразу видеть изменения.
Обновили интерфейс DevTools, улучшили отслеживание памяти и работу с CPU-профайлером. Все стало быстрее и нагляднее.
▪️Новые виджеты и возможности темизации
Появился новый виджет Expansible и контроллер к нему. Он удобнее, чем старый ExpansionTile, и легко кастомизируется.
Поддержка Material 3 расширилась:
▫️Новый эффект InkSparkle
▫️Улучшенные SegmentedButton и Divider с поддержкой радиусов
▫️Новые колбэки для TabBar на hover и focus
▪️Поддержка десктопа и multi-window
— Canonical помогает улучшать поведение окон: события мыши, фокус, текстовые поля теперь работают стабильнее
— На Linux отрисовка вынесена в отдельный поток
— На Windows и macOS вызовы к платформе через Dart-FFI — теперь быстрее благодаря объединенным потокам.
▪️Dart 3.8
Новые возможности языка, в том числе:
— Null-aware элементы в коллекциях (if, for внутри списков и map'ов)
— Улучшенный форматтер — теперь, например, запятая в конце не исчезает
— Поддержка кросс-компиляции: можно собирать бинарники под Linux с других платформ
Кто тоже уже обновился?👀
