TGViewer
Flutter Pulse Flutter Pulse @flutterpulse · 1.01K subscribers
Post #3009 408
🎯 Dart 3.13 вышел — и главное изменение заметят практически все Flutter-разработчики
12 августа вышел Dart 3.13.
Главная фишка релиза — Primary Constructors.
Теперь вместо привычного:
class Point {
int x;
int y;

Point(this.x, this.y);
}

можно писать:
class Point(var int x, var int y);

Меньше кода — та же семантика.
🧩 А если нужен initializer или body?
Можно добавить this body:
class Point(var int x, var int y) {
this : assert(x >= 0) {
print('Point created at $x, $y');
}
}

Кроме того, Dart теперь позволяет писать конструкторы внутри класса без повторения имени класса:
class Point {
int x, y;
new(this.x, this.y);
new origin() : x = 0, y = 0;

factory clone(Point other) => Point(other.x, other.y);
}

Чтобы использовать Primary Constructors, SDK constraint должен быть 3.13+:
environment:
sdk: ^3.13.0

🧠 Analyzer стал умнее
Dart 3.13 добавляет новые возможности LSP:
• Inline Values — значения переменных прямо во время debugging
• поддержка Flutter Widget Preview
• интеграция Analysis Server с Dart Tooling Daemon
То есть IDE получает больше информации непосредственно от Dart analyzer.
🧹 Новые lint rules
Появились новые проверки, среди которых:
async_return_with_no_await
empty_container_bodies
initialize_in_field_declaration
unnecessary_const_in_enum_constructor
unnecessary_primary_constructor_body
unnecessary_type_name_in_constructor
use_declaring_parameters
А экспериментальный:
use_primary_constructors

может рекомендовать переход на новый синтаксис primary constructors.
⚡️ Новое в dart:isolate
Появились API для более низкоуровневого управления isolate и event loop:
Isolate.runSync
Isolate.create
Isolate.shutdownSync
Isolate.pinToCurrentThread
Isolate.runEventLoopSync
Isolate.onEvent
Isolate.handleEvent

Это уже особенно интересно разработчикам высокопроизводительных приложений и тем, кто работает с concurrency на низком уровне.
📦 Новые возможности коллекций
В dart:core:
List.unmodifiableOf(...)
Map.unmodifiableOf(...)

Плюс новые эффективные операции для подсчёта битов у int:
trailingZeroBitCount
oneBitCount

🌐 JavaScript / Web interop
JSFunction и JSExportedDartFunction теперь generic.
Появился:
JSObject.getPrototypeOf()

Это продолжает общую тенденцию Dart — постепенно делать JS/Web interop более типобезопасным.
📦 Pub и CLI тоже получили апдейты
Например:
dart pub workspace list

теперь позволяет посмотреть пакеты workspace и их директории, в том числе в JSON.
А dart build cli получил cross-compilation:
dart build cli --target-os ... --target-arch ...

То есть Dart CLI становится всё более полноценным инструментом для создания и распространения native-приложений.
⚠️ Но есть breaking changes
В Dart 3.13 есть несколько изменений, которые могут потребовать правок в существующем коде.
Например, изменился тип возвращаемых значений NetworkInterface.addresses, а работа с некоторыми файловыми timestamp теперь сохраняет microsecond precision.
Также изменено поведение type promotion, чтобы избежать потенциально unsound поведения.
Поэтому для крупных проектов перед обновлением лучше посмотреть changelog.
Главное впечатление от Dart 3.13:
Dart не пытается устроить революцию. Он делает язык короче, строже и удобнее.
И особенно хорошо это видно по Primary Constructors:
// было
class User {
final int id;
final String name;

User(this.id, this.name);
}

// стало
class User(var int id, var String name);

Для Flutter-проектов с большим количеством моделей это потенциально очень приятное сокращение boilerplate.
#flutter #dart #FlutterPulse #FlutterPulseNews
  • 👍 3
  • 🔥 2
  • 🤮 1
More from @flutterpulse
  1. Sep 30, 2026Как теплотехник в 50 лет стер границу между КИПиА и IT: пишем универсальный Android‑SCADA…
  2. Sep 30, 2026Обновлённые пакеты за последние 24 часа Bones_API 1.17.0 Фреймворк для создания API-бэкенд…
  3. Sep 30, 2026photo post
  4. Sep 29, 2026👣 Как встроить Unity игру во Flutter приложение Flutter — это король интерфейсов, навигац…
  5. Sep 29, 2026Обзор пакетов на тему Machine Learning, OCR & Computer Vision google_mlkit_commons 0.13.0…
  6. Sep 29, 2026Добавляем 3D в игру на Flame, не переписывая её 3D-графика в 2D-играх без переписывания ко…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →