~/talk

Building Shared UIs Across Platforms With Compose

Talkat droidcon New York 2023 · 2023-09-14..09-15· [frontend-architecture, android]
speakerdeck:heyitsmohit
slides:none on file

A sample SwiftUI app converts a single image list to shared UI using Kotlin Multiplatform and Compose, rendering on iOS via Skia bindings (SECO) through a Compose UI ViewController bridge and running successfully in Xcode. State and business logic share via molecule + moco (frame clock driven with CADisplayLink), images load with Camel, networking uses Ktor patterns, and Kotlin Multiplatform preview 1.5.10 is noted as the current release.

AI-written summary · about

  1. 0:00Introduction and motivation
  2. 1:07Why share UI between platforms
  3. 2:54Two approaches to shared UIs
  4. 4:00Demo setup and goals
  5. 7:40Project structure and setup
  6. 9:06Bridging Compose and SwiftUI
  7. 11:10How Skia enables rendering on iOS
  8. 13:40Compose UI controller internals
  9. 15:05Sharing view models with Molecule
  10. 17:53Lifecycle-aware view models with Moco
  11. 21:07Handling events and state in shared UIs
  12. 23:20Image loading in shared components
  13. 25:08Alternative architecture choices
  14. 25:28Using SwiftUI inside Compose
  15. 27:57Using UIKit inside Compose
  16. 30:47Platform-specific UI components
  17. 31:50Recent updates and roadmap
  18. 32:37Personal growth and closing
~/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.