Summary
This chapter focused on using Kotlin Flows for asynchronous programming in Android. Flows are built on top of Kotlin coroutines. A flow can emit multiple values sequentially, instead of just a single value.
We started with learning about how to use Kotlin Flows in your Android app. Jetpack libraries such as Room and some third-party libraries support Flow. To safely collect flows in the UI layer and prevent memory leaks and avoid wasting resources, you can use Lifecycle.repeatOnLifecycle
and Flow.flowWithLifecycle
.
We then moved on to creating Flows with Flow builders. The flowOf
function creates a Flow that emits the value or vararg
values you provided. You can convert collections and functional types to Flow with the asFlow()
extension function. The flow
builder function creates a new Flow from a suspending lambda block, inside which you can send values with emit()
.
Then, we explored Flow operators and learned how you can use them with Kotlin Flows. With terminal...