Добро пожаловать в Flutter 3.32! Этот релиз полон нововведений, которые ускорят вашу разработку и сделают приложения ещё ярче и отзывчивее. Готовьтесь к экспериментальной горячей перезагрузке веб-приложений, эффектным «сквирклам» в стиле Cupertino для максимальной нативности и глубоким интеграциям с ИИ-службами Firebase. Более тысячи коммитов от более чем 150 участников сообщества, включая почти сорок первопроходцев — Flutter 3.32 утверждает статус нашей экосистемы как площадки для совместной работы и инноваций. Приступим к знакомству с ключевыми изменениями!
Web
Горячая перезагрузка в браузере (Экспериментально)
Теперь и веб-приложения на Flutter поддерживают горячую перезагрузку! Это долгожданная возможность, отмеченная вторым по популярности запросом в трекере Flutter. Включить её можно простым флагом --web-experimental-hot-reload при запуске flutter run. Если вы отважитесь опробовать дату-стамп изменения сразу в браузере — разработчики будут рады вашим отзывам и репортам об ошибках через шаблон Web Hot Reload issue на GitHub.
Использование в VS Code
Добавьте в launch.json новую конфигурацию:
И активируйте опцию Dart: Flutter Hot Reload On Save, чтобы перезагрузка срабатывала при сохранении файла.
Командная строка
Нажмите r в терминале для горячей перезагрузки, R — для полного перезапуска.
DartPad
В среде DartPad появилась кнопка Reload для приложений на Flutter.
Framework
Разработчики продолжают переносить логику из библиотеки Material в ядро виджетов.
- Появился новый виджет Expansible для создания расширяемых/сворачиваемых областей с разными темами. На его основе теперь строится знакомый ExpansionTile.
- Появился RawMenuAnchor — универсальный якорь меню без стилизации, который послужит базой для Material-меню MenuAnchor и позволит вам полностью контролировать внешний вид и поведение всплывающих списков.
Эти рефакторы усиливают единообразие, упрощают повторное использование кода и облегчают мультиплатформенную разработку.
Cupertino
Сквирклы
В Flutter теперь поддерживается «сквиркл» — закруглённая суперэллиптическая форма, так любимая в интерфейсах Apple. Она плавнее стандартных скруглённых прямоугольников и задаёт идентичный iOS-образ. Новые API:
- RoundedSuperellipseBorder — рамка или форма виджета
- ClipRSuperellipse — обтравка содержимого
- Низкоуровневые методы Canvas.drawRSuperellipse, Canvas.clipRSuperellipse, Path.addRSuperellipse
Учтите, что пока поддержка ограничена iOS и Android, а на других платформах shape fallback’ится на обычный BorderRadius.
Листы и навигационные панели
Исправлена высота навигационной панели в CupertinoSheetRoute, контент больше не обрезается по краям. Плавность анимаций и оформление углово-радиусных переходов также улучшены.
CupertinoSliverNavigationBar.search теперь плавно открывает и закрывает поисковую строку, а иконки выровнены корректно.
Material
Набор улучшений и исправлений:
- CarouselController получил метод animateToIndex для плавной навигации по индексам с поддержкой flexWeights.
- TabBar теперь реагирует на onHover и onFocusChange, что важно для десктопных сценариев.
- SearchAnchor и .bar обзавелись колбэками viewOnOpen и onOpen.
- CalendarDatePicker научился принимать calendarDelegate для пользовательских календарей (например, нестандартная система с 21-дневными месяцами и т. д.).
- Divider теперь допускает borderRadius, а в showDialog/showAdaptiveDialog/DialogRoute появился параметр animationStyle.
Кроме того, в Material-библиотеке устранены баги с DropdownMenu (ширина теперь подстраивается под текст) и наложением треков у RangeSlider/Slider.
Доступность
- Семантический дерев компилируется на 80 % быстрее, что на вебе даёт 30% выигрыш по времени кадра при включённой семантике.
- Появился API SemanticsRole — можно обернуть целое дерево виджетов с нужными семантическими ролями для экранных читалок.
- Улучшено распознавание ссылок в Android TalkBack, гладче навигация фокуса на вебе, поддержка Windows high-contrast («forced colors») и оптимизация iOS Voice Control.
Ввод текста
- В iOS внедрен системный контекстный набор действий для выделенного текста.
- Улучшена производительность Autocomplete с помощью OverlayPortal.
- Появился колбэк onTapUpOutside у текстовых полей.
- FormField теперь позволяет выводить произвольный виджет ошибки.
- Селектируемый текст стал надёжнее и быстрее, особенно на вебе.
Мультиоконная поддержка
Пакет Canonical реализовал базовую мультиоконность для десктоп-приложений:
- Доступность, жизненный цикл, фокус, клавиатурные и мышиные события теперь работают независимо в каждом окне.
- Добавлена возможность FFI-общения Flutter-движка с Dart-кодом для будущих windowing API.
- На Linux зарефакторена raster-нить — плавность и отзывчивость остались на высоте даже при десятках окон.
Объединение нити UI и платформы
На Windows и macOS можно мерджить UI-поток с нативным, что открывает прямой доступ к Win32- или Cocoa-API через Dart FFI (например, изменение размеров окна). Включается флагом project.set_ui_thread_policy(UIThreadPolicy::RunOnPlatformThread) в windows/runner/main.cpp или ключом FLTEnableMergedPlatformUIThread в Info.plist.
iOS и Android
- iOS: для простых текстовых полей диалог подтверждения вставки больше не появляется.
- Android: Gradle-плагин переписан с Groovy на Kotlin — читайте unit-тесты и стабильность сборки растёт.
- Поддержка рукописного ввода стилусом (Android 14+) теперь аналогична Apple Pencil: пишите прямо в поле, и текст отобразится автоматически.
Движок (Engine)
- Impeller по умолчанию отключается только на Android 9 и ниже (API < 29) — на новых устройствах остаётся задействованным.
- Некоторые эмуляторы и GPU с неполным Vulkan 1.3 теперь используют OpenGLES, что повышает стабильность.
- Текстовые анимации в Impeller стали плавнее за счёт более точных глифов и устранения ошибок округления.
- Убраны избыточные биндинги при блюре, оптимизирована частичная перерисовка и прямое тесселирование конических кривых.
DevTools и IDE
- Property Editor: новая боковая панель в VS Code и окно в Android Studio/IntelliJ для редактирования свойств виджетов и чтения документации.
- DevTools: офлайн-режим для Network, билд-фиксы инспектора, Deep Links, CPU Profiler, Memory и общая оптимизация памяти и скорости загрузки.
- Анализатор Dart: введены «doc imports» для ссылок в документации без фактического импорта, улучшены quick-fix, assists и рефакторинги.
- Gemini в Android Studio теперь «говорит» на Dart и Flutter: подключайте ИИ-ассистента прямо в IDE.
- В разработке — поддержка Model Context Protocol (MCP) для точной семантики и мощных возможностей автогенерации кода.
Build with AI
- Firebase AI Logic объединяет Vertex AI и Gemini API в одном Flutter-SDK firebase_ai, давая доступ к генеративному ИИ прямо на клиенте без серверных обвязок.
- AI Monitoring в консоли Firebase предоставляет дашборд для детального мониторинга использования Gemini-API: запросы, задержки, ошибки и рекомендации по оптимизации.
Ломание API и устаревания
- Android-аннонсы через AnnounceSemanticsEvent (API 36) устарели: теперь используется SemanticProperties.liveRegion.
- Перестали поддерживать шесть пакетов (flutter_markdown, ios_platform_images, css_colors, palette_generator, flutter_image, flutter_adaptive_scaffold) — ищите альтернативы в обсуждениях.
- В следующем стабильном релизе Flutter прекратит поддержку iOS 12 и macOS 10.14.
- Депрекейтнут ExpansionTileController в пользу ExpansibleController.
- Переименован SelectionChangedCause.scribble в stylusHandwriting.
- В ThemeData списано избыточное свойство indicatorColor, всё переносится в TabBarThemeData.
- Скорректированы параметры SpringDescription для правдоподобной физики — читайте гайд по миграции.
Для автоматического применения части изменений запустите dart fix после обновления SDK.
Заключение
Flutter 3.32 — очередной шаг к идеалу: горячая-веб перезагрузка, новые компоненты, нативная глубина и мощь ИИ. Чтобы опробовать всё на практике, просто выполните:
И погружайтесь в мир возможностей последнего релиза!
***
✨ А что думаете вы? ✨
Делитесь мыслями в комментариях — ваше мнение вдохновляет нас и других!
Следите за новыми идеями и присоединяйтесь:
• Наш сайт — всё самое важное в одном месте
• Дзен — свежие статьи каждый день
• Телеграм — быстрые обновления и анонсы
• ВКонтакте — будьте в центре обсуждений
• Одноклассники — делитесь с близкими
Ваш отклик помогает нам создавать больше полезного контента. Спасибо, что вы с нами — давайте расти вместе! 🙌