А с чего вы это взяли?) Если нужен контекст(мне он нужен для получения доступа к Room, например), то используем AndroidViewModel, иначе просто ViewModel.
От некоторых ребят, которые работают в компаниях слышал. Плюс Вам не нужен контекст для рума, запровайдите его в модуле с Application контекстом и инжектите ДАО или обертку над ним прямо во вьюмодель.
Потом рум понадобиться в другом месте, будете туда тащить контекст? Плюс каждый раз бд через билдер создавать? Она же пересобирается каждый раз, зачем новый инстанс каждый раз?
Ну, возможно, в будущем я пересмотрю свой подход, но пока исключаю любую вероятность использования БД, кроме как по слоям от DAO и до View. Второй экземпляр мне обычно нужен в WorkManager, а там лучше иметь свой инстанс.
Я не со стартандроид. Просто нет смысла собирать базу дважды, особенно если она большая, у юзера может какое то время собираться. Самый легкий способ это конечно в апп классе статиком. Но сейчас мне легче в модуле отдельном запровайдить и потом в вм просто заинжектить
Может я чего-то не понял в архитектуре, но ведь любой доступ к БД должен быть в репозитории(либо в интеракторе, если клин). Соответственно, итак выходит единый доступ к БД. Или отдельный модуль лишь для удобного получения в ViewModel?
Я про модуль от дагера. А ижнектить всё равно куда. Я не прямо дао или базу инжекчу. Я сделал свой дата сорс и там уже имею ссылку на дао. В саму вм попадает сам сорс чтобы дернуть методы нужные.