Выбор ответа Junior DI: Hilt и Koin спрашивают часто обновлено
ViewModel с зависимостями в Hilt
Вопрос
Что нужно, чтобы Hilt создал ViewModel с репозиторием в конструкторе?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: @HiltViewModel, @Inject constructor, экран помечен @AndroidEntryPoint. Hilt генерирует фабрику для классов с @HiltViewModel и @Inject constructor, а by viewModels() или hiltViewModel() в помеченной @AndroidEntryPoint Activity или фрагменте использует её.
Варианты ответа
@HiltViewModel,@Inject constructor, экран помечен@AndroidEntryPointправильный ответ- Написать свою
ViewModelProvider.Factoryи зарегистрировать её в модуле@InstallIn - Пометить ViewModel
@Singleton, чтобы Hilt добавил её в корневой граф - Создать ViewModel в модуле через
@Providesи внедрить в Activity полем
Разбор
Hilt генерирует фабрику для классов с @HiltViewModel и @Inject constructor, а by viewModels() или hiltViewModel() в помеченной @AndroidEntryPoint Activity или фрагменте использует её. Своя фабрика не нужна. @Singleton для ViewModel неверен: ей управляет ViewModelStore. @Provides для ViewModel не используют.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.