Из чего состоит корутина

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

Ответ

Корутина состоит из нескольких ключевых компонентов:

  1. Контекст (CoroutineContext) – содержит элементы, такие как Job, Dispatcher, исключения и др.
  2. Job – управляет жизненным циклом корутины (запуск, отмена).
  3. Dispatcher – определяет, на каком потоке выполняется корутина (Main, IO, Default).
  4. Scope (CoroutineScope) – ограничивает время жизни корутины (например, viewModelScope).

Пример:

viewModelScope.launch(Dispatchers.IO) { // Scope + Dispatcher
    val result = fetchData() // Job внутри
    withContext(Dispatchers.Main) { // Смена контекста
        updateUI(result)
    }
}