Build KMP Offline-First Apps
summary
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
chapters (18)
- 0:00Offline-first apps intro
- 2:12Peer-to-peer data sharing
- 3:57Local network connections
- 6:23Bluetooth for sync
- 8:31Choosing transport
- 9:34Conflict resolution
- 10:37Ditto SDK replication
- 12:42CRDTs explained
- 14:07KMP support in Ditto
- 17:40KMP compiler backends
- 19:44Setting up dependencies in Kotlin Multiplatform
- 21:50iOS CocoaPods integration
- 24:43Expect/actual in KMP
- 26:09Objective-C to Kotlin bridge
- 27:34KMP evaluation for Ditto
- 28:15Live peer-to-peer sync demo
- 31:50Summary and KMP future
- 32:11Q&A: IDE and iOS compilation
related talks
37mLet’s Sync Up! Tips and Tricks to Add Offline Sync to Your App with Confidence
36mTesting Offline First Mobile Applications
42mThe Challenges of Offline Work in Mobile
38m"Offline" is not an error
42mGoing Offline first with Flutter
01h 01mBuilding Connected & Disconnected Mobile Apps
45mOffline First (Web) Apps
41mThe UI/UX Benefits and Trade-Offs of Local-First Apps
