Почему надо переходить на корутины

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

Ответ

Корутины упрощают асинхронный код, делая его более читаемым и поддерживаемым. В отличие от колбэков или RxJava, корутины позволяют писать последовательный код без вложенных callback-ов. Они легковесны (тысячи корутин могут работать в одном потоке) и интегрированы с Jetpack (ViewModel, Room). Пример:

viewModelScope.launch {
    val data = repository.fetchData() // suspend-функция
    updateUi(data) // выполняется в Main-потоке
}

Корутины поддерживают отмену, обработку ошибок и structured concurrency, что уменьшает утечки памяти. Они работают с Dispatchers (IO, Main, Default) для оптимизации потоков.