Что такое ViewModelScope

«Что такое ViewModelScope» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

ViewModelScope - это CoroutineScope, автоматически привязанный к жизненному циклу ViewModel. Он отменяет все корутины при очистке ViewModel (например, при завершении Activity/Fragment). Это предотвращает утечки памяти.

class MyViewModel : ViewModel() {
    fun fetchData() {
        viewModelScope.launch {
            // Работа с корутиной
            val data = repository.getData()
            // Обновление UI
        }
    }
}

Ключевые особенности:

  • Автоматическая отмена при onCleared()
  • Использует Dispatchers.Main по умолчанию
  • Не требует ручного управления жизненным циклом
  • Доступен через зависимость androidx.lifecycle:lifecycle-viewmodel-ktx