Работал ли с Flow

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

Ответ

Да, работал. Flow — это холодный асинхронный поток данных в Kotlin, часть корутин. Он позволяет последовательно emit-ить значения и collect-ить их. Отличается от LiveData тем, что поддерживает корутины и сложные трансформации.

Пример:

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

// Collect
viewModelScope.launch {
    fetchData().collect { state ->
        println(state) // "Loading", затем "Data loaded"
    }
}

Использовал для обработки стримов данных из API, БД или реактивных UI-обновлений.