Маршрут

  1. 1Типы и синтаксис
  2. 2Effective Dart
  3. 3Async и isolates
  4. 4FFI и VM
ЭтапЧто получится
Типы и синтаксисМоделировать данные и состояния
Effective DartПроектировать понятные интерфейсы
Async и isolatesОтличать ожидание от вычисления
FFI и VMПонимать границу Dart и нативного кода

Язык и стиль

Dart Language

вход с акцентом на отличия языка

При наличии опыта программирования не обязательно долго сидеть на переменных и циклах. Гораздо полезнее внимательно разобрать null safety, generics, records, patterns и class modifiers. Особенно sealed, interface, base и final: это инструменты проектирования API и моделей состояний, а не декоративный синтаксис.

№ 17★ Начните здесь

Effective Dart

самый полезный второй материал после синтаксиса

Четыре раздела: Style, Documentation, Usage и Design. Особого внимания заслуживают Usage и Design: как пользоваться языком идиоматично и делать понятные API. Это способ перестать писать на Dart так, будто перед тобой Java или JavaScript с другим расширением файла. Многие рекомендации связаны с проверками анализатора.

Асинхронность и параллелизм

Futures, async, await + Streams

нормальная асинхронная база

Порядок выполнения, ожидание результата, распространение ошибок, обработка потоков событий и различия между типами подписок. Хорошая основа перед сетью, реактивным хранилищем и state management. Для чтения старого callback-кода отдельно полезен разбор ошибок в Future API; авторы прямо отмечают, что это не основной путь для кода на async/await.

№ 19★ Начните здесь

Concurrency in Dart

event loop и isolates без магического мышления

Главное — понять разницу между асинхронным ожиданием и параллельным вычислением. async не переносит тяжёлый CPU-код на отдельное ядро. Документ разбирает модель isolates, обмен сообщениями, Isolate.run и более долгоживущих workers. Для сетевого и системного бэкграунда это один из наиболее содержательных материалов во всей Flutter-части.

Нативная граница и VM

C interop using dart:ffi

связка Dart с нативной библиотекой

Вызовы C API, указатели, структуры, нативная память и генерация bindings через ffigen. Особенно релевантно при интересе одновременно к Qt/C++ и Dart. Но FFI не означает «импортировал произвольный C++-класс Qt»: здесь интерфейс строится вокруг C ABI, а для C++ обычно нужен соответствующий внешний слой.

Introduction to Dart VM и runtime/docs

глубокая часть для любителей внутренностей

Модель объектов, GC, snapshots, JIT/AOT, hot reload, async stack traces и анализ размера бинарника. Это документация внутри репозитория SDK, а не пересказ на Medium. Оговорка: вводный README помечен как work in progress и датирован 2022 годом; конкретные детали реализации нужно сверять с тематическими документами и кодом выбранной версии SDK.

Дальше

Проверьте поведение приложения при потере сети и закрытии процесса. Для Android пригодится платформенный маршрут, перед релизом — безопасность и выпуск.