К какому типу относится Flow

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

Ответ

Flow относится к реактивным потокам данных (reactive streams) и является частью Kotlin Coroutines. Это холодный (cold) поток, который начинает испускать данные только при наличии подписчика. В отличие от горячих потоков (например, StateFlow или SharedFlow), Flow не хранит состояние и запускает генерацию данных для каждого нового коллектора.

Пример использования:

fun fetchData(): Flow<String> = flow {
    emit("Data 1")
    delay(1000)
    emit("Data 2")
}

// Коллектинг
viewModelScope.launch {
    fetchData().collect { data ->
        println(data)
    }
}