~/talk

Build KMP Offline-First Apps

Talkat droidcon San Francisco 2024 · 2024-06-06..06-07· [pwa, web-performance]
slides:none on file

Claims ability to get iOS and Android syncing in about two days by wiring a Ditto SDK into a Kotlin Multiplatform app; core uses a Rust engine exposed via C FFI, Ditto multiplexes Bluetooth LE, Wi‑Fi aware/Direct and LAN transports, and provides diff‑based sync using CRDTs. Main friction is iOS bridging—Objective‑C vs Swift compatibility, CocoaPods/Gradle quirks with Kotlin 2—and some demo devices show UI/connection flakiness, but the replication and offline‑first mesh behavior fundamentally works.

AI-written summary · about

  1. 0:00Offline-first apps intro
  2. 2:12Peer-to-peer data sharing
  3. 3:57Local network connections
  4. 6:23Bluetooth for sync
  5. 8:31Choosing transport
  6. 9:34Conflict resolution
  7. 10:37Ditto SDK replication
  8. 12:42CRDTs explained
  9. 14:07KMP support in Ditto
  10. 17:40KMP compiler backends
  11. 19:44Setting up dependencies in Kotlin Multiplatform
  12. 21:50iOS CocoaPods integration
  13. 24:43Expect/actual in KMP
  14. 26:09Objective-C to Kotlin bridge
  15. 27:34KMP evaluation for Ditto
  16. 28:15Live peer-to-peer sync demo
  17. 31:50Summary and KMP future
  18. 32:11Q&A: IDE and iOS compilation
~/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.