Flutter 3.44 — Что нового во Flutter?

от автора

Google I/O 2026.

Flutter 3.44 уже здесь, и это грандиозное событие! Этот релиз знаменует собой важную веху в истории Flutter: Hybrid Composition++ для Android, Swift Package Manager в качестве нового менеджера пакетов по умолчанию для iOS/macOS и улучшенную поддержку Vulkan для Impeller. Мы представляем предварительную версию поддержки многооконного режима для настольных компьютеров, и Canonical станет нашим новым ведущим разработчиком, а также начинаем масштабную архитектурную эволюцию, отделяя Material и Cupertino от основного фреймворка. Мы переосмысливаем UX для агентного взаимодействия с пользователями с помощью GenUl и переосмысливаем опыт разработчиков с помощью Agentic Hot Reload и Dart & Flutter Agent Skills. Flutter расширяет возможности приложений следующего поколения — повсюду, от мультимедийной системы Toyota RAV4 2026 года до грядущего SDK для webOS от LG. Мы очень рады поделиться с вами всеми новостями и обновлениями; добро пожаловать в Flutter 3.44!

Flutter повсюду, каждый день, его создают все, для всех.

Flutter повсюду, каждый день, его создают все, для всех.

Тема Flutter на конференции Google I/O в этом году: Flutter повсюду, каждый день, создан всеми и для всех.

Фраза «Везде, каждый день» возникла у меня во вторник, когда я пользовался приложением на телефоне: приложения Flutter стали частью моей жизни повсюду, от отслеживания питания в районе залива Сан-Франциско до покупок в Японии. Цифры это подтверждают: экосистема pub.dev популярнее, чем когда-либо, за последние 30 дней было загружено более 1,3 миллиарда пакетов . Flutter теперь является вторым по популярности SDK для разработки мобильных приложений в обоих крупнейших магазинах приложений, с более чем 1,5 миллионами разработчиков в месяц , что на 50% больше всего за один год.

«Создано всеми для всех» — так я поговорила со своей соведущей на Google I/O, Кейт Ловетт, о радости нашего глобального сообщества. Более 1700 преданных своему делу и увлеченных участников являются движущей силой этого прогресса, внеся 5800 изменений в основной репозиторий за последний год. Только в этом цикле релизов мы получили 972 коммита от 178 уникальных участников , включая 61 нового участника, внедрившего свои первые коммиты. Наше сообщество остается жизненной силой Flutter, гарантируя, что он действительно создан всеми для всех. СПАСИБО!

Есть много изменений, о которых я хотела бы вам рассказать. Возможно, вам также будет интересно ознакомиться с изменениями в релизе Dart 3.12 .

Опыт разработчика

Мы хотим сделать процесс создания приложений с помощью Flutter максимально продуктивным, независимо от того, пишете ли вы код вручную или используете свой любимый инструмент для разработки. В этом релизе мы улучшаем существующий набор инструментов для разработчиков и представляем новые, которые дополнят ваши рабочие процессы разработки.

Улучшения производительности инструментов разработчика

Мы внедряем детальный анализ для повышения эффективности и улучшили производительность анализа проектов, содержащих много файлов или каталогов.

Мы также внесли дополнительные улучшения в стабильность и производительность Flutter DevTools, включая изменение на использование WASM по умолчанию, что делает DevTools более быстрым и отзывчивым.

Подробнее : Примечания к выпуску DevTools 2.55.0 и 2.57.0 .

Предварительный просмотр виджетов (экспериментальная функция)

В этом релизе добавлены новые функции и улучшения производительности для среды предварительного просмотра виджетов:

  • Переработка алгоритма обнаружения в предварительном просмотре : теперь логика обнаружения использует Dart Analysis Server, что значительно снижает потребление памяти инструментом Flutter. Для пользователей IDE общее потребление памяти должно сократиться до 50%.

  • Фильтрация предварительного просмотра : Теперь можно фильтровать предварительные просмотры по группе, имени, а также URI скриптов и пакетов, что упрощает работу в проектах с большим количеством предварительных просмотров. Особая благодарность участнику сообщества NamanGoyalK за этот вклад !

Функция предварительного просмотра виджетов позволяет просматривать отдельные виджеты изолированно, вне всего приложения.

Функция предварительного просмотра виджетов позволяет просматривать отдельные виджеты изолированно, вне всего приложения.

Узнайте больше : Предварительный просмотр виджетов Flutter

Поддержка Apple Silicon без Rosetta

Разработчикам на Mac, использующим процессоры Apple Silicon, больше не нужно устанавливать слой трансляции Rosetta для запуска Flutter. Все инструменты командной строки macOS, включая наши исполняемые файлы для связи с устройствами iOS, были обновлены для работы нативно на ARM. Это обновление выходит до запланированного Apple прекращения поддержки трансляции Rosetta, что гарантирует перспективность вашей среды разработки на оборудовании Apple. В будущем Flutter полностью прекратит поддержку компьютеров Mac на базе Intel x86. Если ваша команда по-прежнему использует Mac на базе Intel для разработки, вам следует начать планировать миграцию оборудования.

Подробнее : Использование приложений на базе процессоров Intel на компьютерах Mac с процессорами Apple Silicon (support.apple.com)

Переосмысление опыта разработчиков в мире, управляемом искусственным интеллектом.

За последний год в экосистеме Dart и Flutter произошел взрывной рост инструментов на основе агентов, таких как Antigravity, Gemini CLI, Claude Code и Cursor, которые коренным образом меняют роль разработчика, превращая его в специалиста по проектированию и координации работы с агентами. Для поддержки этого перехода мы сосредоточились на улучшении базовой инфраструктуры для разработчиков и внедрении новых инструментов, которые позволят оптимизировать ваши рабочие процессы.

Бесшовная интеграция агента с функцией горячей перезагрузки Agentic.

В рамках значительного шага вперед в разработке с использованием ИИ мы запускаем Agentic Hot Reload: сервер MCP и ваш любимый агент программирования теперь будут автоматически находить и подключаться к запущенным приложениям Dart и Flutter. Это означает, что такие агенты, как Antigravity, теперь могут выполнять горячую перезагрузку вашего запущенного приложения прямо из коробки! Когда вы просите своего ИИ-помощника отредактировать пользовательский интерфейс, агент пишет код и автоматически запускает горячую перезагрузку, чтобы мгновенно показать вам результат, без необходимости ручной настройки. Попробуйте! Мы также…

  • Усиленный поиск зависимостей : теперь агенты могут безопасно читать и искать файлы внутри зависимостей пакетов, не требуя полного доступа к локальному кэшу.

  • Объединение инструментов : Мы объединили определения инструментов MCP, что значительно снизило стоимость токенов для рабочих процессов ваших агентов.

Посмотрите, как работает Agentic Hot Reload:

https://miro.medium.com/v2/resize:fit:1400/1*6n-KEHq1VjiglHNYTPV-yQ.gif

Мы также недавно запустили Agent Skills для Dart и Flutter , которые предоставляют вашим агентам-программистам специализированные, готовые к использованию в производственной среде знания в предметной области. Эти навыки повышают уровень вашего агента-программиста и помогают экономить токены при выполнении таких задач, как добавление интеграционных тестов или настройка локализации, при этом соблюдая рекомендуемые лучшие практики.

Узнайте больше : Введение в навыки работы с Dart и Flutter , сервер Dart и Flutter MCP

https://miro.medium.com/v2/resize:fit:1400/1*qw6H8YVAmVFUWuI0b38bZg.gif

Искусственный интеллект на каждом экране с Flutter: создание приложений нового поколения, изначально разработанных для ИИ.

По мере развития функций, основанных на искусственном интеллекте, от простых обзоров контента до полноценных интерактивных помощников, мы сосредоточены на расширении экосистемы Dart и Flutter, чтобы обеспечить необходимую инфраструктуру для реализации этих возможностей на всех платформах.

Firebase AI Logic

Firebase AI Logic позволяет вызывать API Gemini на стороне клиента из ваших Flutter-приложений.

MacroFactor — это приложение Flutter, использующее Firebase AI Logic для прямого подключения к модели Gemini и задействования её многомодальных возможностей. Я использую его для отслеживания своих приёмов пищи, просто делая фотографии. Это отличный пример приложения, которое с помощью ИИ превратило утомительную рутину в восхитительный, казалось бы, волшебный пользовательский опыт.

В Firebase AI Logic теперь есть шаблоны серверных подсказок , что избавляет от необходимости встраивать подсказки непосредственно в код приложения.

Теперь доступны навыки Firebase Agent для Flutter , предоставляющие пошаговое руководство, которое поможет вам более эффективно создавать полнофункциональные приложения Flutter и Firebase.

MacroFactor — это приложение Flutter, использующее Firebase AI Logic для выполнения API-запросов непосредственно к моделям Gemini, задействуя возможности многомодального компьютерного зрения для упрощения пользовательского процесса регистрации приемов пищи.

MacroFactor — это приложение Flutter, использующее Firebase AI Logic для выполнения API-запросов непосредственно к моделям Gemini, задействуя возможности многомодального компьютерного зрения для упрощения пользовательского процесса регистрации приемов пищи.

Узнайте больше: MacroFactor совершает революцию в области питания с помощью ИИ для более чем 400 000 пользователей, используя Firebase, Flutter и Gemini.

Genkit Dart в предварительном просмотре

Мы также рады представить предварительную версию Genkit Dart, фреймворка с открытым исходным кодом для создания полнофункциональных приложений на основе ИИ и агентных систем. Он имеет API, не зависящий от модели, и поддерживает таких поставщиков, как Google, Anthropic и OpenAI. В него входит все необходимое для перехода от прототипа к продакшену, включая типобезопасный структурированный вывод, вызов инструментов, многошаговые диалоги и встроенную систему мониторинга.

В приложениях Flutter Genkit Dart можно запускать как на стороне сервера, так и на стороне клиента!

import  'package:genkit/genkit.dart' ; import  'package:genkit_google_genai/genkit_google_genai.dart' ; void  main () async {  final ai = Genkit (plugins: [ googleAI ()]);  final response = await ai.generate ( model: googleAI.gemini ( ' gemini-flash-latest' ),    prompt: 'Why is Dart a great language for AI applications?' , );  print (response.text); }

Узнайте больше : Genkit Dart: Создавайте полнофункциональные приложения с использованием ИИ на Dart и Flutter

Gemma 3n Impact Challenge

Мы невероятно гордимся тем, что разработчики Flutter расширяют границы возможного в области искусственного интеллекта. Поздравляем Томмазо Джованнини, создателя Gemma Vision, и Гвидо Марангони, создателя Vite Vere, с первым и вторым местами в прошлогоднем конкурсе Gemma 3n Impact Challenge . Оба выбрали Flutter для создания инструментов, меняющих жизнь:

  • Gemma Vision помогает людям с нарушениями зрения воспринимать окружающий мир.

  • Организация Vite Vere помогает людям с когнитивными нарушениями выполнять повседневные задачи.

Поздравляем Томассо, создателя Gemma Vision, и Гвидо, создателя Vite Vere! Они заняли первое и второе места соответственно в конкурсе Gemma 3n Impact Challenge!

Поздравляем Томассо, создателя Gemma Vision, и Гвидо, создателя Vite Vere! Они заняли первое и второе места соответственно в конкурсе Gemma 3n Impact Challenge!

Узнайте больше : Победители конкурса Gemma 3n Impact Challenge

Gemma 4

Недавно выпущенная Gemma 4 — это облегченная модель, предназначенная для работы на устройстве и разработанная специально для сложных задач логического мышления и агентных рабочих процессов, учета затрат, ограничений данных на устройстве или сетевых ограничений. Ее многомодальные возможности просто фантастические, и меня особенно впечатлила ее способность к планированию с использованием нескольких меток и объединению вызовов инструментов.

Исторически сложилось так, что управление этими моделями устройств на различном оборудовании было сложной задачей. Именно поэтому я так рад появлению LiteRT-LM.

Узнайте больше : Gemma 4

LiteRT-LM для Flutter

Изучая код Gemma Vision и Vite Vere , я был вдохновлен тем, что обе программы используют flutter_gemmaплагин, доступный на pub.dev, для интеграции с Gemma.

Дальше будет только лучше: мы рады сообщить, что в скором времени в flutter_gemmaпакет будет добавлена ​​полная поддержка LiteRT-LM для Flutter.

LiteRT-LM — это готовый к использованию высокопроизводительный фреймворк для выполнения инференции с открытым исходным кодом от Google. Он позволяет скрыть различия в аппаратном обеспечении и запускать мощные модели ИИ, такие как Gemma 4, на разных устройствах, обеспечивая при этом максимальную производительность благодаря ускорению с помощью GPU и NPU на всех 6 стабильных платформах Flutter: Android, iOS, Web, Windows, Linux и macOS.

Узнайте больше : flutter_gemmaпакет и LiteRT-LM .

Flutter + A2UI = GenUI

Когда речь заходит о пользовательском опыте, созданном с помощью ИИ, все мы согласимся, что нас утомляют стены разметки Markdown — или, что еще хуже, обычный текст.

Генеративный пользовательский интерфейс, или GenUI, — это парадигма UX, в которой искусственный интеллект создает и обрабатывает пользовательский интерфейс в реальном времени, а не просто текст, это показано в демонстрационном приложении Hatcha.

Hatcha — это приложение для планирования социальных мероприятий, работающее на платформе GenUI для Flutter. Организаторы планируют мероприятие в формате интерактивного интервью, а GenUI генерирует тематические приглашения, персонализированные компоненты и модули планирования, которые формируются с учетом особенностей вашего мероприятия и его аудитории.

https://miro.medium.com/v2/resize:fit:1400/1*ZEXlGLmZ6hccimLUin4Jow.gif

В течение последнего года наша команда GenUI активно продвигала этот проект в качестве партнера, занимаясь разработкой нового протокола A2UI . A2UI — это протокол с открытым исходным кодом от Google, определяющий, как агент и клиент взаимодействуют при создании и управлении пользовательским интерфейсом.

С момента запуска Flutter GenUI SDK в конце прошлого года мы наблюдаем невероятный рост: количество загрузок пакетов увеличилось на 500% с начала года.

Яркий пример — приложение Finnish it от Catagay Ulusoy ( Google Play Store , Apple Store ). Это приложение не просто создает индивидуальные планы уроков, чтобы помочь пользователям выучить финский язык; оно динамически формирует идеальный пользовательский интерфейс на лету для каждого урока. Если вы смотрели презентацию Cloud Next Developer Keynote в прошлом месяце, вы могли видеть, как руководитель отдела по связям с разработчиками Flutter Эмма Тверски отдала должное этому приложению и компании Catagay!

Эмма Тверски, руководитель отдела по работе с разработчиками Flutter, упомянула приложение «Finnish It!» в своей презентации для разработчиков на конференции Google Cloud Next!

Эмма Тверски, руководитель отдела по работе с разработчиками Flutter, упомянула приложение «Finnish It!» в своей презентации для разработчиков на конференции Google Cloud Next!

Подробнее : genuiпакет

Эксперимент с визуальной компоновкой

Ли-Те Ченг и его команда из Google DeepMind были пионерами в области GenUI. Помните эту демонстрацию , которая облетела круги Flutter еще в 2023 году из-за красного отладочного баннера? Да, это была команда Ли-Те!

Он присоединился к нам для выступления на тему «Что нового во Flutter», чтобы поделиться своим опытом создания экспериментальной функции «Визуальная компоновка» для приложения Gemini с помощью Flutter. Вот веб-версия:

https://miro.medium.com/v2/resize:fit:1400/1*WEch_2CJNkOt1NChpXZlZw.gif

В ходе эксперимента по визуальному макетированию, начавшегося с первоначального запроса к пользователю, участникам предлагалось выбирать, щелкать и изучать информацию, которая настраивалась и обновлялась в режиме реального времени с помощью генеративного пользовательского интерфейса.

Он рассказал о том, почему его команда предпочитает использовать Flutter в качестве основного инструмента для создания пользовательских интерфейсов… Подсказка: по той же причине, по которой мы все любим Flutter:

  • Красивый пользовательский интерфейс

  • Продуктивный опыт для разработчиков

  • Поддержка нескольких платформ

  • Архитектура, идеально подходящая для GenUI (это слова Li-Te, а не мои! 😉)

Вот 3 ключевых момента, которые вы можете использовать в своих собственных проектах GenUI:

  1. Для обеспечения согласованности ИИ опирайтесь на четко определенные концептуальные основы.

  2. Используйте цикл «критики ИИ», чтобы обеспечить надежные результаты.

  3. Сбалансируйте скорость и контроль с помощью шаблонов.

В заключение Ли-Те призвал нас выйти за рамки сплошного текста и чат-ботов и вместо этого создавать насыщенные, интерактивные и увлекательные пользовательские интерфейсы.

Узнайте больше : GenUI SDK для Flutter , а если вам нужен пошаговый учебник, попробуйте Codelab .

Поддержка Android

Поддержка GoogleBook и периферийных устройств.

Flutter уже готов к работе с новым Googlebook на базе Gemini. Поскольку Flutter ориентирован на большие экраны Android, приложения обрабатывают внешние аппаратные входы естественным образом. Прокрутка на трекпаде, состояния при наведении курсора мыши, контекстные меню и сочетания клавиш работают по умолчанию. Благодаря развитой поддержке настольных операционных систем macOS, Windows и Linux, приложения Flutter будут работать на Googlebook как нативные и отзывчивые, а не как растянутые мобильные версии. Существующие мобильные приложения будут отлично работать на Googlebook без необходимости масштабной переработки.

Узнайте больше : Представляем Googlebook, разработанный для интеллектуальных устройств Gemini.

Android 17

Выход Android 17 уже не за горами, и команда активно тестирует Flutter на последних бета-версиях Android 17, чтобы гарантировать, что ваши приложения будут продолжать работать должным образом. Мы также активно интегрируем новейшие функции безопасности и удобства использования, такие как защита локальной сети и безопасная динамическая загрузка кода.

Вы можете следить за нашим текущим прогрессом на GitHub. Мы рекомендуем вам загрузить бета-версию Android 17 и начать тестирование ваших приложений уже сегодня. Если вы обнаружите ошибки или заметите отсутствие каких-либо функций, пожалуйста, сообщите об этом, создав заявку!

Подробнее : проект Android 17 на GitHub

Hybrid Composition++ для Android

Встраивание нативных компонентов Android, таких как веб-представления или карты, в приложение Flutter исторически заставляло разработчиков выбирать между частотой кадров и качеством изображения. Более старые стратегии рендеринга испытывали проблемы с разрывами изображения при прокрутке, некорректным вводом текста или высокой нагрузкой на процессор.

В Flutter 3.44 в качестве дополнительной функции для решения этих проблем представлена ​​Hybrid Composition++ (HCPP). Вместо того чтобы полагаться на буферы вне экрана или заставлять движок Flutter обрабатывать нативные представления, HCPP делегирует компоновку слоев непосредственно операционной системе Android. Этот процесс использует низкоуровневый доступ графической библиотеки Vulkan с помощью аппаратных цепочек обмена буферами и SurfaceControlтранзакций для синхронизации пользовательского интерфейса Flutter с нативными представлениями Android.

В результате обеспечивается высокопроизводительная прокрутка и точный ввод с сенсорного экрана. Это также обеспечивает надежную поддержку SurfaceViewкомпонентов, что представляло собой проблему для более старых режимов.

HC слева, HCPP справа:

https://miro.medium.com/v2/resize:fit:1400/1*xNy4ENkOUVx7fotyFcG8_A.gif

HCPP имеет требования к API Android и аппаратному обеспечению , поэтому не все устройства могут использовать HCPP, даже если он включен. Нет необходимости внедрять новые API, и вам просто нужно включить соответствующий флаг, чтобы обновить существующие представления платформы. Вы можете протестировать новый режим, прежде чем он станет режимом рендеринга по умолчанию в будущем, передав флаг --enable-hcppв вашу runкоманду или добавив флаг конфигурации в ваш AndroidManifest.xmlфайл:

<meta- data   android:name= "io.flutter.embedding.android.EnableHcpp"     android:value= "true" />

Узнайте больше : Размещение нативных Android-представлений в вашем Flutter-приложении с помощью Platform Views

Поддержка радиусов скругления углов экрана Android

Чтобы помочь вам создавать идеально точные макеты на современных мобильных устройствах, Flutter теперь напрямую интегрируется с аппаратным обеспечением Android для поддержки радиусов скругления углов дисплея ( #179219 ). Flutter теперь может запрашивать физические и логические радиусы скругления углов дисплея устройства и предоставлять эту информацию через MediaQuery. Это позволяет вашему пользовательскому интерфейсу точно учитывать геометрию оборудования, гарантируя, что контент никогда не будет обрезан на экранах с сильно закругленными углами.

Узнать больше :MediaQueryData.displayCornerRadii

Android Gradle Plugin 9.0 и встроенный Kotlin

До версии Android Gradle plugin (AGP) 9 разработчикам Android-приложений и плагинов приходилось вручную добавлять плагин Kotlin Gradle (KGP) в файлы сборки, чтобы система могла понимать и компилировать код Kotlin. Начиная с AGP 9.0, система сборки Android обрабатывает Kotlin нативно. Поскольку система сборки уже знает, как обрабатывать Kotlin, ручное добавление отдельного KGP теперь создает конфликт и приводит к ошибке сборки. Это критическое изменение затрагивает приложения и плагины Flutter, использующие KGP.

Команда Flutter добавила временную обратную совместимость, чтобы обеспечить безопасную сборку существующих проектов. Поддержка ручного применения KGP будет удалена в будущем релизе.

Инструкции для разработчиков приложений

Если вы разрабатываете приложения Flutter, вам необходимо обновить файлы сборки Android, удалив отдельный плагин Kotlin Gradle (KGP).

Примечание: Если ваше перенесенное приложение использует плагин Flutter, который по-прежнему применяет KGP, сборка завершится ошибкой. Поскольку исправить это может только автор плагина, пожалуйста, сообщите о проблеме автору плагина .

Подробнее : Полные пошаговые инструкции см. в руководстве по миграции для разработчиков приложений .

Инструкции для авторов плагинов

Процесс миграции плагинов требует аналогичных изменений в файле Gradle, а также важного обновления ограничения по версии. Для обеспечения совместимости необходимо обновить pubspec.yamlфайл, установив минимальную версию Flutter равной 3.44 .

Подробнее : Полный контрольный список см. в руководстве по миграции для авторов плагинов .

Изменения в фильтрации ABI

ABI определяют, какие архитектуры аппаратного обеспечения устройств (например, ARM или x86) поддерживает ваше скомпилированное приложение. Раньше Flutter применял фильтры ABI программно к каждому конкретному типу сборки, но теперь настраивает их один раз в базовом defaultConfigблоке. Поскольку AGP 9 объединяет конфигурацию по умолчанию с конкретными типами и вариантами сборки, а не переопределяет её, использование пользовательских настроек ABI требует дополнительного шага.

Если ваше приложение использует пользовательские настройки abiFiltersв определенных типах сборки или вариантах продукта, теперь вам необходимо передавать этот -Pdisable-abi-filtering=trueфлаг при сборке или запуске приложения.

Узнайте больше : Подробную информацию см. в руководстве по вкусам .

поддержка iOS

Теперь Swift Package Manager является менеджером пакетов по умолчанию.

Теперь Swift Package Manager является менеджером пакетов по умолчанию.

Swift Package Manager теперь является менеджером пакетов по умолчанию для iOS и macOS.

Начиная с Flutter 3.44, Swift Package Manager (SwiftPM) заменяет CocoaPods в качестве менеджера зависимостей по умолчанию для приложений iOS и macOS. Flutter CLI автоматически выполняет эту миграцию. При сборке или запуске приложения CLI обновляет ваш проект Xcode для использования SwiftPM, устраняя необходимость управлять установками Ruby или CocoaPods!

Узнайте больше : Попрощайтесь с CocoaPods: Swift Package Manager скоро станет менеджером пакетов по умолчанию во Flutter!

Интеграция с функцией «Добавить в приложение» также стала более гибкой. Если вы встраиваете Flutter в существующее iOS-приложение, новая flutter build swift-packageкоманда упаковывает ваше Flutter-приложение или модуль «Добавить в приложение» в виде Swift-пакета для удобного использования в вашем нативном проекте.

Узнайте больше : Ознакомьтесь с обновленной документацией , чтобы узнать, как интегрировать SwiftPM.

Если ваше приложение использует плагины, которые по-прежнему требуют CocoaPods, Flutter CLI выведет предупреждение и временно переключится на CocoaPods для этих зависимостей. Мы рекомендуем обратиться к разработчикам этих пакетов с просьбой обновить CocoaPods, поскольку поддержка CocoaPods в конечном итоге будет полностью удалена. Для поощрения внедрения в экосистему, пакетам с поддержкой SwiftPM теперь начисляются дополнительные баллы в рейтинге pub.dev.

Если вы разрабатываете плагин для iOS или macOS, вам необходимо добавить поддержку SwiftPM в свой пакет. Если вы перешли на SwiftPM во время пилотного проекта 2024 года, убедитесь, что вы также добавили его FlutterFrameworkв качестве зависимости в свой Package.swiftфайл.

Если SwiftPM вызывает критические ошибки в вашем проекте, вы можете временно отключить его, установив соответствующий параметр --enable-swift-package-manager: falseв вашем файле конфигурации pubspec.yaml. Если вы воспользуетесь этой функцией, пожалуйста, отправьте отчет об ошибке на GitHub, приложив файлы вашего проекта Xcode, чтобы мы могли провести расследование. Обратите внимание, что эта функция отключения будет в конечном итоге удалена.

Узнайте больше : Swift Package Manager для авторов плагинов

Flutter поддерживает UIScene

Начиная с iOS 13, Apple представила жизненный цикл на основе «Сцен» для поддержки многооконного режима. Во время WWDC 2025 Apple объявила, что приложения, созданные с использованием новейшего SDK, вскоре должны будут использовать этот UISceneжизненный цикл для запуска. Это обновление имеет решающее значение для выполнения требований Apple к будущим версиям iOS.

В Flutter 3.44 нет новых изменений, но мы хотели бы напомнить вам о необходимости миграции до того, как Apple начнет принудительно использовать этот новый API по умолчанию. Flutter CLI автоматически перенесет ваше приложение, если ваш код AppDelegateне был изменен. Однако, если ваш код затрагивает события жизненного цикла пользовательского интерфейса, вам следует следовать полному руководству по миграции.

Подробнее : Руководство по миграции UISceneDelegate

Функция предиктивного ввода текста в iOS (экспериментальная версия)

Мы вводим экспериментальную поддержку встроенного предиктивного ввода текста в поля ввода текста iOS ( #183650 ). Эта функция отключена по умолчанию, но вы можете включить её и протестировать, активировав соответствующую опцию TextField.enableInlinePrediction. При включении пользователи, набирающие текст в вашем приложении, смогут принимать предсказанный текст iOS (например, ввод «My n» и принятие «ame»), нажав клавишу пробела . Обратите внимание, что визуальное оформление этого предиктивного текста всё ещё находится в стадии доработки, и мы будем благодарны за ваши отзывы, пока мы завершаем работу над этой функцией.

Узнать больше :TextField.enableInlinePrediction

Веб

Доступность

Значительно улучшены также доступность и соответствие пользовательским предпочтениям: теперь поддерживается настройка браузера prefers-reduced-motionдля автоматического отключения анимации, а также мгновенная обратная связь от программ чтения с экрана при ошибках проверки форм aria-description.

Подробнее : функция CSS media prefers-reduced-motion (mozilla.org)

Платформа и инструменты

Процессы разработки и интеграция с браузерами стали как никогда простыми. Теперь движок работает autofillв iOS 26 Safari, повторно используя формы DOM при смене фокуса, а также улучшает прокрутку веб-страниц и синтез событий клавиатуры для обеспечения высокой надежности. Кроме того, CLI упрощает оркестрацию веб-приложений, обеспечивая --base-hrefпрямую поддержку flutter run, соответствующую конфигурациям сборки для производственной среды.

Узнать больше : PR №182024 , PR №179703 , PR №180692.

Поддержка настольных компьютеров

Компания Canonical возглавит разработку Flutter Desktop и будет курировать поддержку наших встраиваемых приложений для Linux, Windows и macOS.

Компания Canonical возглавит разработку Flutter Desktop и будет курировать поддержку наших встраиваемых приложений для Linux, Windows и macOS.

Мы рады объявить о расширении партнерства с компанией Canonical, которая теперь будет выступать в качестве ведущего разработчика и стратегического куратора Flutter Desktop. Благодаря своему глубокому техническому опыту, Canonical возглавит разработку Flutter Desktop и будет контролировать поддержку наших встраиваемых приложений для Linux, Windows и macOS.

Это сотрудничество представляет собой лишь первый шаг в более широком расширении экосистемы. В дальнейшем мы активно расширяем наше управление, привлекая больше партнеров, чтобы предоставить высокопроизводительный многоплатформенный опыт Flutter еще большему количеству сред и отраслей.

Следите за обновлениями, чтобы узнать больше об этом партнерстве!

Чтобы узнать о возможностях сотрудничества с командой Flutter, свяжитесь с нами по адресу partners@flutter.dev .

API для работы с окнами (экспериментальные)

⚠️ Примечание: Функции работы с окнами в настоящее время доступны только в основном канале . Они пока не предназначены для использования в продакшене.

Flutter теперь поддерживает всплывающие подсказки и отдельные диалоговые окна на разных платформах.

Flutter теперь поддерживает всплывающие подсказки и отдельные диалоговые окна на разных платформах.

Компания Canonical продолжает демонстрировать отличные результаты в разработке экспериментальных API для работы с окнами на настольных компьютерах! Среди новых функций:

  • Всплывающие подсказки : Flutter теперь поддерживает всплывающие подсказки в Linux, macOS и Windows ( #182348 , #180895 , #179147 ).

  • Всплывающие окна : Flutter теперь поддерживает всплывающие окна на macOS ( #182371 ), поддержка Linux и Windows ожидается в будущем релизе.

  • Диалоги : Функция Material showDialogтеперь создает отдельное дочернее диалоговое окно на платформах, поддерживающих оконный режим ( #181861 ).

Наконец, в Linux появилась поддержка отображения содержимого в зависимости от его размера ( #182924 ). Это позволяет динамически изменять размер окна в зависимости от его содержимого, что полезно для всплывающих окон или подсказок.

Узнайте больше : Чтобы получить предварительное представление об экспериментальных API оконного управления в настольной версии, ознакомьтесь с multiple_windowsпримером .

Поддержка стилуса в Windows

Приложения для Windows, созданные с помощью Flutter, получили значительное обновление для цифровых художников и тех, кто ведет записи! Благодаря блестящему вкладу участника сообщества CodeDoctorDE , Flutter Windows теперь поддерживает ввод с помощью стилуса, включая точное отслеживание как вращения стилуса, так и чувствительности к нажатию.

Подробнее : PR 165323: Разрешить поддержку стилуса в Windows

Встроенный

Тойота

Toyota RAV4 была самым продаваемым автомобилем в мире в 2025 году . Теперь, в модели RAV4 2026 года, мультимедийная система использует Flutter.

В прошлом месяце я пережила один из самых ярких моментов своей карьеры: мне представилась возможность съездить в Плано, штат Техас, и посетить офисы Toyota Motor North America и Toyota Connected, чтобы поговорить с командой инженеров о том, как Flutter изменил для них правила игры в проектировании, создании и поставке мультимедийных систем: от тестовых образцов в их офисах до автомобилей на подъездных дорогах. Будучи одновременно инженером Flutter и автолюбителем, выросшим в семье, которая покупала только Toyota, я в восторге от того, что Flutter работает на RAV4 2026 года. Я видежу их так часто, когда езжу по городу (кхм, повсюду??).

Благодарим команды Toyota Motor North America и Toyota Connected за гостеприимство!

Посмотрите демонстрационный видеоролик:

https://youtu.be/X4376aLFHFA?si=rKAdp8tf31ZGg8Ac

Менеджер по продукту Flutter Outbound, Абдалла, и я фотографируемся на испытательном полигоне Toyota!

Менеджер по продукту Flutter Outbound, Абдалла, и я фотографируемся на испытательном полигоне Toyota!

Узнайте больше : пресс-релиз Toyota, «Новейшая эволюция мультимедийной системы Toyota скоро появится на экранах ваших автомобилей».

LG

LG webOS SDK позволит разработчикам создавать приложения Flutter, предназначенные для устройств на базе WebOS.

LG webOS SDK позволит разработчикам создавать приложения Flutter, предназначенные для устройств на базе WebOS.

Компания LG готовится к запуску SDK для webOS, который поможет разработчикам легко создавать приложения Flutter для устройств WebOS, расширяя возможности Flutter для больших экранов и не только.

SDK webOS будет включать поддержку плагинов для Firebase, видеоплееров, геймпадов и многого другого. Он даже будет поддерживать все знакомые и любимые вами функции Flutter, такие как горячая перезагрузка с сохранением состояния и управление состоянием с помощью Riverpod.

Следите за новостями — в ближайшие недели вас ждет захватывающий запуск!

Улучшения графики и движка.

В этом релизе внесены целенаправленные улучшения в рендеринг и производительность бэкэнда Impeller.

Усовершенствования рабочего колеса

Вулкан

В этом релизе представлен ряд улучшений Vulkan, включая более эффективное управление памятью кэша и более эффективную синхронизацию GPU/CPU в случаях потери кадров.

Более чистые круги с SDF

Математические вычисления для отрисовки окружностей были обновлены для поддержки более чистого отображения окружностей с использованием функций знакового расстояния. Ранее были случаи, когда они имели эффект псевдонимов, но эта проблема решена. ( #183536 , #183184 )

Улучшенная визуальная точность за счет использования функций знакового расстояния (SDF) обеспечивает высококачественное сглаживание сложных форм.

Улучшенная визуальная точность за счет использования функций знакового расстояния (SDF) обеспечивает высококачественное сглаживание сложных форм.

Исправление теней и перспективы

Улучшена обработка матриц перспективы в Impeller, исправлено поведение рендеринга теней и преобразований перспективной проекции. ( #181434 , #183187 )

Улучшения FragmentShader

Благодаря следующим улучшениям, написание фрагментных шейдеров стало более интуитивно понятным и менее подверженным ошибкам.

Получение унифицированных данных по имени с помощью API

Теперь вы можете привязывать униформные переменные в шейдерах по имени, а не вручную, используя смещения, что значительно упрощает настройку кода шейдера:

    void  setUp ( ui.FragmentShader shader ) { shader.getUniformFloat( 'foobar' ). set ( 1.234 ); }

Узнайте больше: Написание и использование фрагментных шейдеров .FragmentShader.getUniformFloat

Более понятная диагностика компилятора шейдеров

Компилятор шейдеров теперь генерирует предупреждения при компиляции шейдеров, несовместимых со Skia, что помогает выявлять проблемы кроссплатформенного рендеринга до развертывания ( #182786 , #183146 ).

Рамки

В этом релизе значительные архитектурные изменения сочетаются со строгим вниманием к качеству и доработкам, инициированным сообществом. По мере того, как мы начинаем стратегическое разделение библиотек Material и Cupertino на отдельные пакеты, основная структура продолжает развиваться, получая существенные обновления в области веб-рендеринга, улучшая стабильность и расширяя интеграцию с платформами.

Обновления от Material and Cupertino

Этот релиз знаменует собой важную веху для библиотек Material и Cupertino. На момент выпуска эти библиотеки были заморожены, представляя собой последний набор обновлений в рамках основной структуры перед их переходом в автономные пакеты: material_uiи cupertino_ui. К следующему стабильному релизу версии этих библиотек, входящие в состав структуры, будут объявлены устаревшими, и вы сможете перейти на новые пакеты с независимыми версиями.

Подробнее : Для получения дополнительной информации об этом переходе прочтите сообщение в блоге о заморозке и следите за основной задачей отслеживания, направленной на отделение этих библиотек от основного фреймворка.

Несмотря на заморозку, этот релиз полон улучшений. Одним из главных моментов является модернизация меню в библиотеке Cupertino. Новый CupertinoMenuAnchorвиджет, построенный на гибкой RawMenuAnchorоснове, обеспечивает более надежное и привычное нативное меню для iOS-приложений ( #182036 ). Эта работа стала возможной благодаря значительному вкладу участника сообщества davidhicks980 , который также создал виджет RawMenuAnchor.

Пример работы функции CupertinoMenuAnchor.

Пример работы функции CupertinoMenuAnchor.

Узнать больше :CupertinoMenuAnchor

В рамках Material Design меню также получили улучшение благодаря добавлению анимаций Material 3 в MenuAnchorкласс. Эти анимации обеспечивают более плавное и отзывчивое взаимодействие, а новый hoverOpenDelayпараметр SubmenuButtonпозволяет более точно управлять взаимодействием с подменю. Анимация отключена по умолчанию и включается при установке параметра animated в значение true. ( #176494 ).

Добавление анимаций Material 3 в класс MenuAnchor.

Добавление анимаций Material 3 в класс MenuAnchor.

Узнать больше : MenuAnchor,SubmenuButton.hoverOpenDelay

В этом релизе также реализована возможность CupertinoSheetRouteбесперебойной работы прокручиваемого содержимого внутри элемента с анимацией перетаскивания, что обеспечивает более плавный переход между прокруткой и закрытием листа ( #177337 ). Для разработчиков, которым необходимы настраиваемые области перетаскивания, новая функция scrollableBuilderпозволяет передавать управляемые ScrollControllerобласти прокручиваемым областям элемента для координации перетаскивания листа.

Прокручиваемый контент, CupertinoSheetRouteплавно взаимодействующий с анимацией перетаскивания.

Прокручиваемый контент, CupertinoSheetRouteплавно взаимодействующий с анимацией перетаскивания.

Узнать больше : CupertinoSheetRoute,CupertinoSheetRoute.scrollableBuilder

CarouselViewВ этом релизе компонент получил значительные функциональные улучшения. Теперь он поддерживает бесконечную прокрутку ( # 175710 ), что позволяет создавать плавно зацикливающиеся карусели. Также добавлена ​​новая функция onIndexChangedобратного вызова и leadingItemсвойство в контроллере, обеспечивающие лучшую видимость состояния карусели при взаимодействии пользователя с ней ( #180667 ).

Теперь CarouselView поддерживает бесконечную прокрутку!

https://miro.medium.com/v2/resize:fit:1400/1*lx61h88hYLIWaeSYuIQ14g.gif

Узнать больше :CarouselView

Новые примитивы дизайна упрощают создание сложных эффектов пользовательского интерфейса, таких как новый ShapedInputBorder. Это позволяет виджетам Material создавать границу поля ввода, используя форму, задавая любой ShapeBorder. Это может быть полезно, например, для отображения границы поля ввода Material в стиле iOS с помощью RoundedSuperellipseBorder. ( #177220 ). Аналогично, CupertinoFocusHaloтеперь поддерживается форма суперэллипса, обеспечивающая согласованные индикаторы фокуса для различных геометрических форм виджетов ( #180724 ).

Узнать больше :ShapedInputBorder

Несколько существующих виджетов также были усовершенствованы. Виджет, который обеспечивает работу ExpansibleMaterial , теперь обладает большими возможностями. Для обоих виджетов и теперь доступен новый метод переключения , сопровождаемый улучшенной документацией и примерами ( #181320 , #180273 ). Кроме того, плитки списков Material, , , и , теперь корректно принимают , что позволяет более эффективно управлять их визуальными состояниями с помощью программного обеспечения ( #180367 ).ExpansionTileExpansibleControllerExpansionTileControllerRadioListTileCheckboxListTileSwitchListTileWidgetStatesController

Доступность: более инклюзивный опыт для всех пользователей.

Обеспечение доступности приложений для всех пользователей остается одним из главных приоритетов фреймворка Flutter. В этом релизе улучшена интеграция с настройками доступности, специфичными для каждой платформы, повышена точность семантических объявлений и улучшена доступность распространенных компонентов пользовательского интерфейса.

Для разработчиков iOS в этом релизе добавлена ​​поддержка нескольких новых функций специальных возможностей, связанных с управлением движением ( #178102 ). Теперь ваши приложения могут реагировать на пользовательские настройки для:

  • Автоматическое воспроизведение анимированных изображений : определяет, когда пользователь предпочитает приостановить автоматическое воспроизведение GIF-файлов или другого анимированного контента.

  • Автоматическое воспроизведение видеопревью : информирует приложение, если пользователь отключил автоматическое воспроизведение видеопревью.

  • Предпочитать немигающий курсор : позволяет приложению отображать стабильный, немигающий текстовый индикатор для пользователей, которых мигающий курсор отвлекает или затрудняет отслеживание текста.

  • Эти настройки доступны через AccessibilityFeaturesобъект, что позволяет создавать более адаптивные и корректные пользовательские интерфейсы для iOS.

Индикаторы прогресса также получили улучшение, повышающее удобство использования. Теперь вы можете использовать строковые значения в процентах (например, «50%») в качестве цикла SemanticsValuefor ProgressIndicator#183670 ). Это позволяет программам чтения с экрана сообщать о прогрессе в более естественном и понятном для человека формате, а не просто в виде десятичных значений.

В этом релизе также улучшена семантика основных виджетов. SliderУзел семантики виджета был переработан, чтобы более точно отражать его размер и положение, что улучшает взаимодействие с пользователями, которые перемещаются с помощью сенсорного управления или вспомогательных устройств ( #184168 ). Кроме того, исправлена ​​ошибка для прокручиваемых представлений, благодаря которой невидимые элементы доступности больше не отображаются некорректно перед прокручиваемым содержимым, что приводит к более чистому и предсказуемому потоку навигации ( #184155 ).

В совокупности эти изменения гарантируют, что приложения Flutter и впредь будут обеспечивать высококачественный и инклюзивный пользовательский опыт на всех платформах.

Устойчивость к ошибкам при отображении виджетов нулевой ширины/высоты.

В этом релизе значительные усилия были направлены на повышение стабильности фреймворка при рендеринге виджетов в «средах 0x0» — сценариях, когда виджетам присваиваются нулевая ширина или высота, что ранее могло вызывать ошибки компоновки или неожиданные сбои. Благодаря постепенному и стабильному вкладу участника сообщества ahmedsameha1 , мы добавили поддержку нулевого размера для многих основных виджетов, включая Hero#180954 ), Icon#181021 ), AnimatedPadding#181235 ) и GridPaper#180906 ). Эти обновления гарантируют, что ваши приложения останутся устойчивыми во время сложных переходов компоновки или внутри сильно ограниченных областей просмотра.

Улучшения функции SelectableRegion

Мы устранили две ключевые проблемы SelectableRegion, чтобы улучшить точность компоновки и поведение выделения текста на нативных и веб-платформах:

сохранение ограничений веб-макета

Ранее SelectableRegionэто могло привести к неожиданному уменьшению размеров дочерних элементов при отображении в веб-среде. Теперь же все ограничения компоновки передаются дочерним элементам корректно и без изменений, обеспечивая согласованное поведение размеров ( #184083 ).

Точность многострочного копирования

Теперь выделение текста SelectableRegionстало более точным — при выделении и копировании текста, занимающего несколько строк, переносы строк теперь корректно сохраняются в скопированном файле, а не теряются ( #184421 ).

Изменения, нарушающие обратную совместимость, и устаревание функций.

В этом релизе внесены несколько важных изменений, исключающих устаревание существующих функций, и исправлены критические ошибки, что является частью постоянных усилий по модернизации и улучшению фреймворка Flutter.

Корректировки обратного вызова RawMenuAnchor

Порядок вызова некоторых функций обратного вызова RawMenuAnchorбыл скорректирован для обеспечения более гибкой и предсказуемой настройки.

Подробнее : Изменение порядка закрытия RawMenuAnchor

В этом выпуске реализованы следующие ключевые устаревшие функции:

  • CupertinoSheetRoute: Параметры builderи pageBuilderв showCupertinoSheetтеперь CupertinoSheetRouteустарели в пользу scrollableBuilder#177337 ). Это изменение позволяет лучше интегрировать прокручиваемый контент с анимацией перетаскивания листа.

  • ReorderableListViewФункция onReorderобратного вызова устарела в пользу более точной onReorderItem#178242 ). Новая функция обратного вызова обеспечивает более предсказуемый результат newIndex, учитывающий удаление элемента перед его повторной вставкой.

  • Инструментарий : --web-hot-reloadФлаг в инструменте Flutter теперь устарел, поскольку горячая перезагрузка для веб-страниц теперь обрабатывается с помощью более современных механизмов ( #181884 ). Кроме того, plugin_ffiшаблон устарел в пользу более надежного шаблона плагина с поддержкой FFI ( #181588 ).

Подробнее : Для получения более подробной информации и рекомендаций по миграции, касающихся этих и других изменений, см. страницу с критическими изменениями на flutter.dev.

Flutter повсюду, каждый день.

Flutter используется в мобильных, настольных, веб- и встраиваемых системах, и хотя отдельные функции впечатляют, в совокупности они обеспечивают надежную платформу для разработчиков, позволяя более 1,5 миллионам разработчиков создавать невероятные пользовательские интерфейсы, которые используются повсюду и каждый день. Flutter можно найти во всем: от бизнес-инструментов и повседневных приложений, таких как NotebookLM , Talabat , Zoho и Karaca , до высококлассных встраиваемых систем, таких как информационно-развлекательная система в Toyota RAV4 2026 года и устройства webOS от LG.

Flutter создан всеми и для всех.

Успех Flutter основан на ваших отзывах! Мы стремимся поддерживать этот диалог — будь то комментарии, сообщения об ошибках или наш предстоящий опрос разработчиков. Именно ваши предложения определяют функции, которые вам нравятся, поэтому, пожалуйста, продолжайте делиться ими с нами.

Эта экосистема зависит от лидеров отрасли, таких как LG, Toyota и Canonical, и, что наиболее важно, от более чем 1,5 миллиона разработчиков, ежедневно создающих приложения с помощью Flutter. Мы очень рады продолжать строить и развивать эту замечательную экосистему Dart и Flutter вместе.

ссылка на оригинал статьи https://habr.com/ru/articles/1037518/