Выбор ответа Middle Внедрение зависимостей обновлено
DI во Flutter
Вопрос
Какой подход к DI типичен во Flutter-приложениях?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Провайдеры через дерево виджетов (Provider, Riverpod) или локатор getit, часто с injectable. Во Flutter зависимости часто передают через дерево виджетов (Provider, Riverpod с проверками на уровне типов) или через сервис-локатор getit.
Варианты ответа
- Провайдеры через дерево виджетов (Provider, Riverpod) или локатор get_it, часто с injectableправильный ответ
- Dagger через platform channels: граф собирается на Android и пробрасывается в Dart-код
- DI во Flutter не нужен: виджеты сами держат зависимости в
Stateи обновляют их черезsetState - Глобальные переменные в
main.dart, которые инициализируются доrunAppбез каких-либо правил
Разбор
Во Flutter зависимости часто передают через дерево виджетов (Provider, Riverpod с проверками на уровне типов) или через сервис-локатор get_it. Это разные философии: Riverpod ближе к DI с явными провайдерами, get_it проще, но прячет зависимости. Dagger это Java/Kotlin. setState про состояние виджета, а не про зависимости.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.