Какие знаешь преимущества Coroutines перед RxJava

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

Ответ

Coroutines проще в использовании и имеют более читаемый код благодаря синхксису suspend-функций. Они интегрированы в Kotlin и не требуют дополнительных зависимостей.

Пример:

suspend fun fetchData() = withContext(Dispatchers.IO) {
    // Network call
}

Преимущества:

  • Меньше бойлерплейта – не нужны Observable/Single и подписки.
  • Лучшая отмена – отмена через Job или Structured Concurrency.
  • Интеграция с Jetpack – ViewModel, Room и другие компоненты поддерживают корутины.
  • Проще тестировать – можно использовать runTest для тестов.

RxJava мощнее для сложных потоков данных, но для большинства задач корутины удобнее.