Вопросы по Flutter и Dart
Dart 3 без пробелов, три дерева Flutter, жизненный цикл, constraints, управление состоянием и производительность: то, что гоняют на Flutter-собесах от junior до senior. После трека вы предсказываете порядок асинхронного кода и объясняете, почему виджет перестраивается.
Проверьте себя: тест по Flutter и Dart
20 вопросов, 10 минут, уровень junior, middle или senior
Dart: типы и null-safety
var, final, const, late, null-safety, records, patterns и коллекции.
Урок: Dart: типы, null-safety, records и коллекции 7 мин- Dart: канонизация const-объектов
- Dart: деление / и ~/
- Dart: почему не сужается тип публичного поля
- Dart: чем final отличается от const
- collection if и for
- Зачем нужен late
- Операторы null-safety в Dart
- Dart: когда выполняется map у Iterable
Ещё 15 вопросов и задач
- Dart: чтение late-переменной до присвоения
- Объявления переменных в Dart
- Dart: collection if, for и spread
- Dart: final-список можно менять
- Dart: деление и типы чисел
- Dart: ленивый map и порядок вывода
- Dart: ленивость late final
- Dart: операторы ?. и ??
- Dart: равенство records и списков
- Dart: switch с patterns и guard
- Dart: исчерпывающий switch
- Dart: records
- Код-ревью: работа с null и коллекциями
- Как устроена null-safety в Dart
- Records и patterns в Dart 3
Dart: классы и миксины
Конструкторы, factory, миксины, расширения, sealed и модификаторы классов Dart 3.
Урок: Dart: классы, миксины, расширения и sealed 7 мин- Dart 3: модификатор interface
- Dart: переопределение == без hashCode
- Dart: расширения разрешаются статически
- Dart: зачем нужен factory-конструктор
- Dart: const и именованный конструктор
- Виды конструкторов в Dart
- extension type
- Миксин в Dart
Ещё 13 вопросов и задач
- Dart: implements против extends
- Dart: какой метод победит при нескольких миксинах
- Dart: ключевое слово on у миксина
- Dart: == без hashCode в Set
- Dart: расширение и статический тип
- Dart: factory-конструктор с кешем
- Dart: порядок инициализации при наследовании
- Dart: super в цепочке миксинов
- Dart: sealed-класс и switch с деструктуризацией
- Код-ревью: модель данных
- Dart: sealed-класс
- Миксины в Dart: как работают и где применяются
- Моделирование состояния через sealed-классы
Dart: Future, Stream, изоляты
Event loop и microtask, async/await, Stream, изоляты и compute.
Урок: Dart: event loop, Future, Stream и изоляты 8 мин- Dart: синхронная часть async-функции
- Dart: когда выносить работу в изолят
- async* и yield
- Future и Stream
- Что попадает в microtask queue
- Dart: параллельные запросы
- Dart: изолят против потока
- Порядок работы event loop в Dart
Ещё 19 вопросов и задач
- Dart: код async-функции до await
- Dart: две async-функции с await
- Dart: синхронный код, микрозадачи, события
- Dart: поздний подписчик broadcast-потока
- Dart: Future.delayed(0) и микрозадачи из таймера
- Dart: Future.sync, Future.value и Future()
- Dart: Future.wait и порядок результатов
- Dart: микрозадачи обгоняют таймер
- Dart: async* генератор и await for
- Dart: преобразования Stream
- Dart: цепочка then и вложенный Future
- Dart: try/catch с await и без
- Dart: microtask и event queue
- Код-ревью: асинхронный сервис синхронизации
- Event loop в Dart и Flutter
- Stream в продакшене: подписки, ошибки, утечки
- Dart: утечка StreamController
- Dart: single-subscription и broadcast Stream
- Dart: ошибка в Future без await
Виджеты и три дерева
Widget, Element, RenderObject, BuildContext, Stateless и Stateful, keys.
Урок: Виджеты, элементы и рендер-объекты 8 минЖизненный цикл
createState, initState, didUpdateWidget, dispose и жизненный цикл приложения.
Урок: Жизненный цикл State и приложения 6 минВёрстка и constraints
Ограничения вниз, размеры вверх, Row, Column, Expanded, Stack и прокрутка.
Урок: Вёрстка: ограничения вниз, размеры вверх 7 минУправление состоянием
setState, InheritedWidget, Provider, Riverpod и BLoC: когда что выбрать.
Урок: Состояние: setState, Provider, Riverpod, BLoC 8 минНавигация
Navigator, маршруты, go_router, deep links и обработка «назад».
Урок: Навигация: Navigator, go_router, deep links 6 минАнимации
Неявные и явные анимации, AnimationController, Ticker, Hero.
Урок: Анимации: неявные, явные, Hero 6 минПлатформенные каналы
MethodChannel, EventChannel, Pigeon, FFI и плагины.
Урок: Платформенные каналы, Pigeon и FFI 6 минПроизводительность
Лишние перестроения, const, RepaintBoundary, ленивые списки, DevTools и Impeller.
Урок: Производительность: перестроения, кадры, DevTools 7 минТестирование
Unit, widget и integration-тесты, pump, моки и golden-тесты.
Урок: Тестирование: unit, widget, integration 6 минСборка и публикация
Режимы сборки, flavors, dart-define, подпись, обфускация и релиз в сторы.
Урок: Сборка, flavors и публикация в сторы 6 мин