Для чего нужна корутина

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

Ответ

Корутины в Kotlin — это легковесные потоки, которые позволяют выполнять асинхронные операции без блокировки основного потока. Они упрощают работу с асинхронным кодом, делая его более читаемым и управляемым.

Ключевые преимущества:

  • Эффективность: Потребляют меньше ресурсов, чем потоки.
  • Отмена: Поддерживают отмену через Job.
  • Контекст: Легко переключаются между потоками (например, Dispatchers.IO для фоновых задач и Dispatchers.Main для UI).

Пример:

viewModelScope.launch(Dispatchers.IO) {  
    val data = fetchData() // Фоновая задача  
    withContext(Dispatchers.Main) {  
        updateUI(data) // Обновление UI в главном потоке  
    }  
}