Что лежит внутри sсope

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

Ответ

В Kotlin scope (CoroutineScope) — это контекст для запуска корутин, содержащий Job и Dispatcher. Он управляет жизненным циклом корутин. Пример:

val scope = CoroutineScope(Dispatchers.IO + SupervisorJob())

scope.launch {
    // Код корутины
}

Ключевые компоненты:

  1. Job — контролирует жизненный цикл (отмена/ожидание).
  2. Dispatcher — определяет поток выполнения (Main, IO, Default).
  3. Обработка ошибок — через SupervisorJob или CoroutineExceptionHandler.

Важно: viewModelScope и lifecycleScope уже привязаны к жизненному циклу компонентов (ViewModel/Activity/Fragment).