Что такое Kotlin Flow

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

Ответ

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

Особенности:

  • Холодный поток — начинает работать только при вызове терминального оператора (например, collect).
  • Отмена через корутины — автоматически отменяется при отмене родительской корутины.
  • Операторы — поддерживает map, filter, zip, combine и другие для трансформации данных.

Пример:

fun fetchData(): Flow<String> = flow {
    emit("Loading...")
    delay(1000)
    emit("Data loaded")
}

viewModelScope.launch {
    fetchData().collect { data ->
        println(data) // "Loading..." → "Data loaded"
    }
}

Используется вместо RxJava в современных Android-приложениях для работы с асинхронными потоками данных.