Добавить объявление

Релиз Dart 3.12: ИИ-экосистема и синтаксические улучшения

Вместе с новой версией Flutter 3.44 команда также выпустила Dart 3.12. Обновление не самое революционное, но несколько приятных изменений в языке и экосистеме все же есть.

Приватные именованные параметры:


Раньше нельзя было написать конструктор с параметром, начинающимся на underscore. Если поле приватное, приходилось городить список инициализации:

class Bird {
final String _name;
Bird({required String name}) : _name = name;
}

Теперь можно короче:

class Bird {
final String _name;
Bird({required this._name});
}

Снаружи параметр остается публичным - underscore автоматически отбрасывается. Мелочь, но приятная.

Первичные конструкторы (эксперимент):


Одна из самых ожидаемых фич. Позволяет объявлять класс одной строкой:

class Point(final int x, final int y);

Вместо:

class Point {
final int x;
final int y;
Point(this.x, this.y);
}

Пока это экспериментальная функция, доступная с флагом --enable-experiment=primary-constructors. Если фича приживется, классы в Dart станут заметно лаконичнее.

Genkit Dart в превью:


Open-source фреймворк для создания ИИ-приложений на Dart и Flutter. С единым API для Google Gemini, Anthropic Claude и OpenAI. Можно писать логику один раз и запускать где угодно - на сервере или прямо в приложении. Плюс локальный UI для отладки промптов и трассировок.

Agentic Hot Reload:


Еще одно нововведение - горячая перезагрузка для ИИ-агентов. Через Dart MCP сервер агент сам подключается к запущенному приложению, вносит изменения и перезагружает UI. Без ручного копирования URI и настройки DTD.

Другие изменения:


  • Нативная поддержка Git LFS в pub-зависимостях.

  • Команда dart info record-performance для сбора трассировок анализатора.

  • Новый линт simple_directive_paths и улучшения в dart fix.

Вывод:


Dart 3.12 - не про революцию, а про эволюцию. Язык становится удобнее, экосистема обрастает ИИ-инструментами, а горячая перезагрузка для агентов упрощает работу с нейросетями в коде. Основные конструкторы пока экспериментальны, но их появление говорит о том, что команда думает в правильном направлении.

Ссылка на changelog:


https://dart.dev/changelog
25.05.2026 18 493