Flow — cold асинхронный поток значений: билдер flow { emit } выполняется при collect; поддерживает операторы map/filter/combine.
Разбор
- Cold: каждый collect — новая подписка/работа.
- Backpressure через suspend emit/collect.
- Контекст:
flowOn меняет upstream.
- Замена многих RxJava Observable в Android.
Пример
fun ticks(): Flow<Int> = flow {
var i = 0
while (true) { emit(i++); delay(1000) }
}
Итог
Flow — стандартный async stream API в Kotlin Coroutines.