Что такое scope у корутин

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

Ответ

Scope в корутинах определяет жизненный цикл корутины и управляет её отменой. Он предоставляет методы для запуска корутин (launch, async) и гарантирует отмену всех дочерних корутин при завершении.

Основные scope в Kotlin:

  • GlobalScope – живет всё время работы приложения (не рекомендуется для обычных задач).
  • CoroutineScope – создается явно и привязан к жизненному циклу (например, viewModelScope в ViewModel).
  • SupervisorScope – позволяет дочерним корутинам завершаться независимо (если одна упала, другие продолжают работу).

Пример:

viewModelScope.launch {  
    val result = async { fetchData() }.await()  
    updateUI(result)  
}  

Здесь viewModelScope автоматически отменит корутину при очистке ViewModel.