TGTGInsighttelegram intelligenceLIVE / telegram public index
← Android Broadcast
Android Broadcast avatar

TGINSIGHT POST

Post #9530

@android_broadcast

Android Broadcast

Vues8,910Nombre de vues
Publié29 sept.29/09/2025 10:26
Contenu

Contenu du post

🤖Как правильно загружать данные для UI через ViewModel (RU,20м) Я видел разные вариации загрузки данных через ViewModel, чтобы они "быстрее показались на UI": запуск в init блоке ViewModel, запуск загрузки из LaunchedEffect из Composable или из Fragment коллбека. Я за самый правильный путь - использование холодных стримов данных, которые запустят в момент появление клиента для отображения данных из них. Все эти ранние прогревы экономят очень мало по сравнению с длинной запроса. Рекомендую почитать статью, где автор описал все лучшие практики по загрузке. class UserAccountDetailsViewModel( private val getUserDetailsUseCase: GetUserDetailsUseCase = GetUserDetailsUseCase.create(), ) : ViewModel() { val userDetails: Flow<ViewState> = flow { emit( getUserDetailsUseCase.execute() .fold( onSuccess = { ViewState(...) }, onFailure = { ViewState(...) } ) ) }.stateIn( viewModelScope, SharingStarted.WhileSubscribed(5_000), // Важно ViewState(isLoading = true, isError = false) ) } Что еще полезно в статье: 👉 Как suspend вызов превратить в Flow 👉 Как делать принудительное обновление 👉 Условная загрузка #android#архитектура