Ответ
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-приложениях для работы с асинхронными потоками данных.