TGViewer
Android Broadcast Android Broadcast @android_broadcast · 14.5K subscribers
Post #9530 9.13K
🤖 Как правильно загружать данные для 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 #архитектура
  • ❤ 40
  • 👍 12
  • 🤯 9
  • 🔥 3
  • 🆒 1
More from @android_broadcast
  1. Sep 30, 2026📹 День, когда сайдлоадинг остановился. Google запустила верификацию разработчиков при уст…
  2. Sep 30, 2026‼️NoOp — удобный способ отключить API в релизных сборках без усложнения кода Отладочные ин…
  3. Sep 30, 2026🛒 Google Play расширяет возможности и типы платных подписок В блоге Android Developers ра…
  4. Sep 29, 2026🤖 Обновленный гайд по поиску лагов UI в Android Показано как искать проблемы на версиях A…
  5. Sep 28, 2026🤖 Google прокачала Wi-Fi дебаг в Android 17 и вот как Google выкатил ADB Wi-Fi 2.0 в Andr…
  6. Sep 27, 2026🤖 Android Dev Summit возвращается! Конференция от Google про Android для разработчиков сн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →