Какие знаешь компоненты в Coroutines

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

Ответ

Coroutines в Kotlin состоят из нескольких ключевых компонентов:

  1. CoroutineScope – определяет область жизни корутины (например, viewModelScope, lifecycleScope).
  2. Job – управляет жизненным циклом корутины (можно отменять).
  3. Dispatcher – определяет поток выполнения (Dispatchers.IO, Dispatchers.Main, Dispatchers.Default).
  4. CoroutineContext – хранит контекст выполнения (диспетчер, Job, обработчик исключений).
  5. Suspend функции – функции, которые могут приостанавливать выполнение без блокировки потока.

Пример:

viewModelScope.launch(Dispatchers.IO) {
    val result = suspendFetchData() // suspend функция
    withContext(Dispatchers.Main) {
        updateUI(result)
    }
}