~/talk

Coroutine + Flow = MVI

Talkat droidcon NYC 2019 · 2019-08-26..08-27· [android]
slides:none on file

Shows how MVI uses immutable state and unidirectional data flow with Kotlin Coroutines and Kotlin Flow to avoid race conditions and remove RxJava complexity. Builds an "Upvote" app: button clicks become flows via callbackFlow, view events map to intent reducers, intents funnel through a rendezvous channel and update a conflated broadcast channel as the model store. Coroutine scopes manage lifecycle; code is small and works live, with coroutines libs ~160KB versus RxJava ~1.5MB.

AI-written summary · about

  1. 0:00Introduction and setup
  2. 1:17MVI pattern explained
  3. 3:03RxJava vs Coroutines/Flow
  4. 6:34Reactive programming basics
  5. 7:37MVI in reactive systems
  6. 8:18Building the sample app
  7. 9:21Flow of view events
  8. 11:05Mapping button clicks to events
  9. 12:28Merging event streams
  10. 14:58Setting up coroutine scope
  11. 16:42Consuming flows safely
  12. 17:24Intent factory creation
  13. 17:48Model state and immutability
  14. 19:11Intents as reducer functions
  15. 20:35Model store implementation
  16. 21:58Understanding Kotlin channels
  17. 24:01Binding intents to model
  18. 27:30Handling network calls
  19. 28:12Connecting view to model
  20. 29:35Project resources and Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.