Flowing Things, not so strange in the MVI world
summary
Shows a concrete migration path from an Rx MVI implementation to Kotlin Coroutines Flow, converting Retrofit Single/Observable calls to suspend functions for single results and Flow builders for streams, implementing a custom merge/publish using channelFlow, and replacing BehaviorSubject with conflatedBroadcastChannel for state. Demonstrates flatMap/flatMapMerge equivalents, collect as subscribe, context preservation and exception transparency, lifecycle scoping via ViewModelScope and structured concurrency, and a runnable demo app wired through repository → reducer → render that actually works end to end.
AI-written summary · about
chapters (10)
- 0:00Introduction to talk
- 1:39Coroutines and Flow basics
- 9:33Channels versus Flows
- 13:18Model View Intent pattern
- 15:47Converting actions to results
- 24:19Reducing results to state
- 27:29Plugging pieces together
- 29:16Migration to Flow summary
- 30:18Why use Flow?
- 32:28Q&A and acknowledgments
related talks
37mFlowing Things, Not So Strange in the MVI World
44mGoing with the Flow - Using Coroutines 1.3.x
24mUsing Kotlin Flow in MVVM
38mMigrating from LiveData to Coroutines and Flow
18mMVI made for Android
36mSimple MVI Architecture for Android
42mGo with the Flow
28mComposing Magic with MVI and Kotlin StateFlow
