Android Kotlin Flows
Introduction
This is a page to capture anything important about kotlin flows. This very similar to RxJava
Simple Example
Note this code would not be executed, if there are no subscribers like RxJava
val countDownFlow = flow<Int> {
val startingValue = 10
var currentValue = startingValue
emit(currentValue)
while (currentValue > 0) {
delay(1000L)
currentValue--
emit(currentValue)
}
}
We can log our emits in the ViewModel to debug with
init {
collectFlow()
}
private fun collectFlow() {
viewModelScope.launch {
countDownFlow.collect { time ->
println("Time remaining: $time")
}
}
}
We can use collectLatest which will only output the latest state