web24.team

Что нового в Flutter (август 2026): 3.47, Dart 3.12, GenUI, MCP

Flutter 3.47, развод Material с Cupertino, OS 27, GenUI SDK, ephemeral-код и MCP-серверы в тулинге — короткий обзор главных новостей Flutter и Dart за август 2026 года.

Flutter 3.47 вышел сегодня, 12 августа — и заодно набралась целая пачка новостей вокруг экосистемы, которые давно просились в один обзор: WWDC и OS 27, официальный развод Material с Cupertino, первый alpha GenUI SDK и MCP-серверы, прописавшиеся в тулинге. Если вы пропустили лето — вот что изменилось и что с этим делать.

Flutter и Dart: главные события 2026 года
  1. Май 2026Flutter 3.44 и Dart 3.12

    Google I/O: приватные именованные параметры, экспериментальные primary constructors, Genkit для Dart.

  2. Июнь 2026WWDC 2026 и анонс OS 27

    iOS 27, macOS 27 и остальные платформы Apple переходят на единый UIScene lifecycle.

  3. 12 августа 2026Flutter 3.47

    Impeller по умолчанию везде, material_ui и cupertino_ui в версии 1.0, iOS-минимум поднят до 15.

  4. Ноябрь 2026Дедлайн миграции дизайн-систем

    Формальный deprecation Material и Cupertino внутри ядра SDK — запланированный stable-релиз.

Flutter 3.47 и Dart 3.12: что нового

Главный акцент релиза — рендеринг и отказ от поддержки устаревших версий. Impeller стал рендерером по умолчанию на macOS, Windows и Linux (на iOS и Android это случилось раньше) — компиляция шейдеров теперь происходит на этапе сборки, а не в рантайме, так что фирменные фризы при первой прорисовке новых эффектов должны стать историей. На macOS заодно включили Wide Gamut Color по умолчанию, а на десктопе — более резкий текст через SDF-рендеринг.

Из практического: минимальная поддерживаемая версия iOS поднялась с 13 до 15, а macOS — с 10.15 до 12. Если ваше приложение таргетирует древние устройства ради пары процентов трафика — самое время свериться с аналитикой. На вебе экспериментально доехала ленивая загрузка Wasm-модулей, но она требует миграции с dart:html на package:web, если вы всё ещё сидите на старом API. Ещё одна тихая, но приятная новость — Widget Previews дошли до stable: превью виджета теперь кэшируются локально в .widget_preview/, и первый рендер в IDE стал заметно быстрее.

Dart, который едет в комплекте, — это всё ещё Dart 3.12, показанный на Google I/O в мае вместе с Flutter 3.44 и остающийся текущим стабильным языком на момент 3.47. Из языковых изменений полезнее всего приватные именованные параметры в конструкторах (Hummingbird({required this._petName})) — меньше ручного дублирования в списках инициализации. Primary constructors всё ещё экспериментальны и требуют флага primary-constructors.

Material и Cupertino официально разделяются

Дизайн-системы уходят из ядра SDK в собственные пакеты — с 3.47 material_ui и cupertino_ui дошли до версии 1.0. Даже нейтральные с виду виджеты вроде AppBar были жёстко привязаны к Material под капотом, и любое приложение тащило код обеих дизайн-систем независимо от того, использовало оно их или нет.

Что это даёт на практике:

  • Меньше вес приложения — tree-shaking честно выкидывает неиспользуемую дизайн-систему, а не просто прячет её за флагом.
  • Независимый релизный циклmaterial_ui и cupertino_ui теперь можно обновлять еженедельно, не дожидаясь квартального релиза Flutter SDK.

Миграция автоматизирована:

dart fix --apply --code=migrate_design_widgets

Команда сама переписывает импорты с package:flutter/material.dart и package:flutter/cupertino.dart на новые пакеты. Старые импорты пока работают, но команда Flutter уже объявила ноябрьский stable-релиз дедлайном их формального deprecation — лучше прогнать dart fix сейчас, пока это тихое обновление, а не аврал в ноябре.

OS 27: на что смотреть перед сборкой под iOS и macOS

На WWDC 2026 в июне Apple выкатила OS 27 сразу по всей линейке — iOS, iPadOS, macOS, watchOS, tvOS, visionOS — продолжая прошлогодний переход на единую нумерацию по году. Для Flutter-разработчиков в этом наборе есть один жёсткий пункт и несколько мягких.

Жёсткий пункт — UIScene lifecycle обязателен для любого приложения, собранного с iOS 27 SDK. Хорошая новость: Flutter добавил поддержку UIScene ещё в 3.38, и с 3.41 она включена автоматически для проектов со стандартным AppDelegate. Риск остаётся в кастомных AppDelegate и старых плагинах — их стоит перепроверить до пересборки под новый SDK, а не после первого падения в проде.

Мягкие пункты — то, чего у Flutter пока просто нет из коробки:

  • App Intents и новый Siri — официальной интеграции во Flutter нет и чёткого плана её появления тоже. Нужны либо нативный Swift-код, либо пакеты сообщества.
  • On-device Foundation Models (API LanguageModel) — доступны только через platform channels или FFI, официальных Dart-биндингов не появилось.
  • Xcode 27 запускается только на Apple Silicon — если в CI ещё жив Intel-раннер, повод его наконец списать.
  • Firebase прекращает поддержку CocoaPods в октябре — самое время перейти на Swift Package Manager, тем более что Flutter 3.47 сам к этому подталкивает: 92 из топ-100 iOS-плагинов уже мигрировали.

GenUI SDK: интерфейс, который собирает сам агент

GenUI SDK — не готовый виджет, а слой оркестрации между пользователем, вашими Flutter-виджетами и LLM-агентом. Агент отвечает не текстом, а JSON-схемой, которая описывает интерфейс из каталога виджетов вашего же приложения; пользователь взаимодействует с этим UI, а изменения состояния уходят обратно агенту — получается диалог не текстом, а интерактивными карточками, слайдерами и списками.

Практический пример из документации: вместо текстового ответа «вот несколько курток по вашему бюджету» агент собирает кликабельную карусель товаров — теми же виджетами, что и остальное приложение, с вашим брендингом. SDK работает с Gemini и в принципе с любой моделью, которая умеет отдавать структурированный JSON.

Пакет genui в статусе alpha, и в документации прямо написано, что API может измениться. Разумная стратегия — попробовать на внутреннем демо или в side-проекте, не тащить в прод в текущем виде.

Ephemeral code: доставка кода мимо App Store — пока это эксперимент

В roadmap Flutter и Dart на 2026 год фигурирует идея ephemeral code delivery: загружать отдельные куски UI или логики в рантайме без полного релиза через сторы. Технически команда рассматривает добавление интерпретируемого байткода в Dart runtime — это и есть шаг, который должен сделать возможной «доставку налету» для UI, собранного тем же GenUI SDK по запросу пользователя.

Стоит напомнить: и App Store, и Google Play десятилетиями ограничивают приложения в праве исполнять скачанный код, который меняет поведение приложения в обход ревью. Это не только техническая задача — это ещё и вопрос к политике сторов, ответа на который пока нет ни у кого, включая, судя по всему, саму команду Flutter: статус в roadmap — «investigating», без сроков и обязательств.

MCP-серверы — теперь официальная часть тулинга Dart и Flutter

Команда Dart выпустила официальный MCP-сервер — он даёт AI-ассистентам (Claude Code, Copilot, Cursor, Gemini CLI и другим MCP-совместимым клиентам) прямой доступ к тулингу, которым раньше пользовалась только IDE:

  • анализ и автоматическое исправление ошибок в проекте;
  • интроспекция запущенного приложения — выбранный виджет, рантайм-ошибки, hot reload;
  • поиск пакетов на pub.dev и правка зависимостей в pubspec.yaml;
  • запуск тестов и разбор результатов.

Нужен Dart SDK 3.9+ или Flutter 3.35 beta+, и по умолчанию сервер выключен — включается явно в конфиге клиента. В VS Code с GitHub Copilot это один флаг:

{ "dart.mcpServer": true }

В Cursor — файл .cursor/mcp.json, в Gemini CLI — правка .gemini/settings.json. Для команд, которые уже гоняют ИИ-ассистента по кодовой базе, это буквально бесплатное ускорение: агент перестаёт гадать по одним текстовым файлам и видит реальные ошибки анализатора и состояние запущенного приложения.

Что со всем этим делать

Если коротко — ничего не горит, но три вещи стоит сделать в ближайшие недели, а не откладывать до ноября:

  1. Прогнать dart fix --apply --code=migrate_design_widgets и проверить вёрстку — миграция автоматическая, но лучше увидеть результат заранее.
  2. Проверить кастомные AppDelegate и старые iOS-плагины на поддержку UIScene, пока не пересобирали под iOS 27 SDK.
  3. Включить MCP-сервер в редакторе, если у команды уже есть ИИ-ассистент для Dart и Flutter — настройка на пять минут.

GenUI SDK и ephemeral code пока наблюдайте: alpha и research-stage — это ещё не то, на чём стоит строить пользовательский функционал.

Что еще почитать на тему Flutter и Dart

По мобильной разработке у нас есть также разбор подходов к управлению состоянием во Flutter: setState, Bloc, Riverpod и Signals на одинаковых задачах — с примерами кода и разбором, что для чего подходит.

Коротко

Когда вышел Flutter 3.47?

12 августа 2026 года. Главное — Impeller по умолчанию на macOS, Windows и Linux, поднятые минимумы iOS (15) и macOS (12), и версия 1.0 у material_ui и cupertino_ui.

Нужно ли прямо сейчас переходить на material_ui и cupertino_ui?

Не срочно, но тянуть не стоит: дедлайн формального deprecation старых импортов — ноябрьский stable-релиз. Миграция — одна команда, dart fix --apply --code=migrate_design_widgets.

Сломается ли Flutter-приложение на iOS 27?

Само приложение — маловероятно, UIScene lifecycle поддерживается автоматически с Flutter 3.38/3.41. Риск — в кастомных AppDelegate и старых плагинах.

Что такое GenUI SDK и стоит ли использовать его в проде?

Alpha-пакет, который собирает интерфейс на лету по JSON-схеме из каталога виджетов приложения и ответа LLM. Хорош для прототипов, для прода API пока слишком нестабилен.

Как включить MCP-сервер для Dart и Flutter в своём редакторе?

По умолчанию выключен. Нужен Dart SDK 3.9+/Flutter 3.35 beta+ и явная настройка — например, "dart.mcpServer": true в VS Code с Copilot или .cursor/mcp.json в Cursor.

Если нужно прогнать Flutter-приложение через все эти изменения разом — миграцию дизайн-систем, аудит под iOS 27, настройку MCP для команды — пишите нам через форму на сайте.