~/talk

StateMachine Architecture Based on MVI: Combining KMM, Jetpack Compose and SwiftUI

TalkinJapaneseat DroidKaigi 2023 · 2023-09-14..09-16· [kotlin, frontend-architecture]
links:none on file
name:Sobaya
links:none on file
slides:none on file

An MVI-style StateMachine architecture uses Kotlin Multiplatform (KMM) to share processor/reducer logic across Jetpack Compose (Android) and SwiftUI (iOS). It shows a concrete paged “monster” list sample covering loading, page loading, retry, and item navigation, and presents a DSL-backed Macaron library that collapses separate processor/reducer files into a single state-centered definition to reduce files and clarify flow.

AI-written summary · about

  1. 0:00Introduction
  2. 1:03Agenda and MVI overview
  3. 2:09KMP, Jetpack Compose, SwiftUI features
  4. 3:36MVI implementation with KMP
  5. 5:00MVI code tips
  6. 8:20Sample screen specs
  7. 9:48Domain layer steps
  8. 10:51State and Intent contract
  9. 13:44Actions contract
  10. 15:10Processor implementation
  11. 18:04Reducer implementation
  12. 20:40UI updates with Store
  13. 22:28State machine concepts
  14. 25:57State machine diagrams
  15. 26:18MVI in Jetpack Compose
  16. 29:32State and event handling
  17. 30:58SwiftUI MVI on iOS
  18. 31:39State machine DSL intro
  19. 33:45Using state machine DSL
  20. 35:57DSL simplifies code
  21. 36:18Android team benefits
  22. 37:40KMP platform benefits
  23. 38:49Real project benefits
  24. 39:33Drawbacks and notes
  25. 40:15Makron MVI library
~/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.