вьюмодель? Или это моветон и нужно все делать на каллбеках?
для чего
И то и другое зависит от цели.
ну у меня есть imageProvider в синглтоне, инициализируется в сменяемом фрагменте и в определенной ситуации. Так было бы проще его контролировать
Адаптер это ответственность вью (фрагмента) где находится рв.
висит в репозитории
Кто висит в репо? Твоя репо в лучшем случае должна быть скопипастина в проект на десктоп (на свинге например) и должна там работать. (если мы про клин в вакууме)
просто иначе при каждой реинициализации imageProvider придется пересоздавать адаптер, а так он бы брался из модели и все
ну у меня это выглядит как то так: class SearchRepository(private val downloadHandler: DownloadHandler, val appBackEnd: AppBackEnd { fun getWebService() = appBackEnd.webService fun getImageProvider() = appBackEnd.webService?.imageProvider }
сами данные получаются в WebService
Замечание по архитектуре: getWebService is nullable, печалька, потребуется везде прописывать костыли с проверкой.
Куда веб сервис улетает? Зачем это все? Зачем репо если по факту прокидывается во вью модель как я понял. А че во вью модели происходит?
Хм, так лучше не делть? private suspend fun exportDatabase(webService: WebService?) { withContext(ioDispatcher) { try { if (webService == null) throw Exception("exportDatabase: webService is null") } }
Лучше гарантировать, что сервис non-nullable к моменту первого использования. Будет уверенность и стабильность 👍
Зачем прокидывать сервис как минимум до юзкейсов, интеракторв, вьюмоделей?
незачем . плохой код
Не ко мне вопрос 😁
все дело в том, что веб сервис меняется в процессе работы - при смене фрагментов, к примеру. И очень проблематично отследить, когда он уже готов. Там сетевая аутентификация и куча инициализаций в бэкграунде
То есть, хз как оно работает в любой момент времени. Ну, ок...
Посмотри примеры Фернандо Цехаса в его репо. Они простые, но разделение по слоям показано хорошо
Спасибо, но это опять не ко мне.
Прости промахнулся 😂
Обсуждают сегодня