На конференции Google I/O 2026 команда Dart выпустила версию 3.12 с набором изменений, которые затрагивают как синтаксис языка, так и его экосистему для разработки ИИ-приложений.

Наиболее практичное синтаксическое изменение — приватные именованные параметры. До версии 3.12 разработчик, желавший инициализировать приватное поле класса через именованный параметр конструктора, был вынужден писать явный список инициализаторов: объявить публичный параметр, а затем вручную присвоить его приватному полю с подчёркиванием. Dart 3.12 разрешает использовать `this._fieldName` прямо в сигнатуре конструктора — компилятор автоматически делает параметр публичным в месте вызова, убирая подчёркивание. Это небольшое, но ощутимое сокращение шаблонного кода в классах с приватными полями.

ФункцияСтатус в Dart 3.12Как включить
Приватные именованные параметрыСтабильнаяДоступна по умолчанию
Первичные конструкторыЭкспериментальная--enable-experiment=primary-constructors
Genkit DartПредварительный запуск (preview)Пакет genkit на pub.dev
Dart в Cloud Functions для FirebaseЭкспериментальнаяДокументация Firebase
Agentic Hot ReloadСтабильнаяЧерез сервер Dart MCP

Ещё дальше идут первичные конструкторы — пока экспериментальная функция, доступная через флаг `--enable-experiment=primary-constructors`. Идея проста: параметры конструктора объявляются прямо в заголовке класса, и весь класс `Point` с двумя полями записывается одной строкой: `class Point(final int x, final int y);`. Дополнительно вводится более короткий синтаксис для конструкторов внутри тела класса с ключевыми словами `new` и `factory`. Команда Dart называет это одной из наиболее запрашиваемых синтаксических функций и просит сообщество тестировать её и оставлять отзывы в репозитории SDK.

Первичные конструкторы (экспериментально) позволяют объявить класс с двумя полями одной строкой вместо пяти.

Параллельно с языковыми изменениями Dart 3.12 расширяет экосистему в сторону ИИ-разработки. Genkit Dart — open-source фреймворк, портированный на Dart из уже существующего JavaScript-варианта Genkit от Google. Он предоставляет единый API для работы с моделями разных провайдеров: Google Gemini, Anthropic Claude, OpenAI и совместимые с OpenAI сервисы. Ключевая особенность — типобезопасность: строгая система типов Dart в сочетании с пакетом `schematic` позволяет генерировать и обрабатывать структурированные данные без потери типов. Фреймворк включает локальный веб-интерфейс для тестирования промптов и отладки рабочих процессов, а логику ИИ можно запускать как на бэкенде, так и непосредственно в Flutter-приложении.

Отдельное направление — экспериментальная поддержка Dart в Cloud Functions для Firebase. Исторически расширение Flutter-приложения на серверную сторону требовало переключения на JavaScript или Python и дублирования моделей данных. Теперь через паттерн «Shared Package» фронтенд и бэкенд могут напрямую использовать одни и те же классы, правила валидации и бизнес-логику. Компиляция Ahead-of-Time (AOT) обеспечивает быстрый холодный старт бессерверных функций без необходимости настраивать Docker-контейнеры.

Для разработчиков, работающих с ИИ-агентами, добавлена функция Agentic Hot Reload. Через сервер Dart MCP агент программирования получает возможность автоматически выполнять горячую перезагрузку приложения, не требуя от разработчика вручную искать и копировать URI подключения Dart Tooling Daemon. Это упрощает совместную работу человека и ИИ-агента в одном рабочем цикле разработки.