Что мы на нём делаем
Именно на Dart написана вся наша Flutter-разработка, поэтому большинство наших инженерных договорённостей живёт на уровне языка, а не фреймворка: как моделируется состояние, как представляются ошибки, где проходят границы асинхронности.
Строгая null safety на практике изменила больше всего. Целый класс продакшн-падений — разыменование null, которое случается только на медленной сети или на пустом аккаунте — становится невозможно написать. Остальное закрывают sealed-классы и pattern matching: результат, который несёт либо значение, либо ошибку, и обрабатывается исчерпывающе, вместо исключений, летящих сквозь слои.
Где мы его применили
Во всех приложениях портфолио и в обоих наших опубликованных Flutter-пакетах. Пакет number_editing_controller — хороший пример работы именно на уровне Dart, а не UI: форматирование чисел с учётом локали и изменяемыми в рантайме настройками, где сложность в модели, а не в виджете.
Когда мы его рекомендуем
Dart редко бывает самостоятельным решением — вы выбираете Flutter, а Dart идёт вместе с ним. Решением он становится на сервере: Dart компилируется в нативные бинарники и может обслуживать Flutter-клиент с общими моделями.
Обычно мы так делать не советуем. Для бэкенда мы берём Go, Python или Rust, где экосистема библиотек и эксплуатационная практика несопоставимо зрелее. Общие модели дают меньше, чем кажется, а бэкенд на Dart сужает круг инженеров, способных его поддерживать.








