Какие знаешь инструменты для работы с асинхронностью

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

Ответ

В Android разработке основные инструменты для работы с асинхронностью:

  1. Kotlin Coroutines – современный подход с suspend-функциями и корутинами. Пример:
viewModelScope.launch {
    val data = async { repository.fetchData() }.await()
    updateUI(data)
}
  1. RxJava – реактивное программирование с Observable цепочками. Пример:
repository.getData()
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe { data -> updateUI(data) }
  1. LiveData – поток данных с lifecycle-awareness (часто комбинируется с корутинами через liveData {} builder)

  2. AsyncTask (устарел) – простой, но deprecated способ для фоновых задач

  3. Executors/ThreadPools – низкоуровневые потоки для сложных сценариев

  4. WorkManager – для отложенных фоновых задач

Корутины сейчас являются предпочтительным выбором благодаря интеграции с Jetpack и простому синтаксису.