Какой CoroutineScope используется часто в Android

«Какой CoroutineScope используется часто в Android» — вопрос из категории Coroutines и Flow, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android чаще всего используется viewModelScope (для ViewModel) и lifecycleScope (для Activity/Fragment).

viewModelScope автоматически отменяется при очистке ViewModel (onCleared), предотвращая утечки:

viewModelScope.launch {
    val data = repository.fetchData()
    updateUi(data)
}

lifecycleScope привязан к жизненному циклу компонента (например, onDestroy для Activity):

lifecycleScope.launch {
    loadData()
}

Оба используют Dispatchers.Main по умолчанию, но можно переключить контекст (например, Dispatchers.IO).