Description
In this complete Kotlin Multiplatform MVVM tutorial, you'll build a production-ready app from scratch that runs natively on Android and iOS — sharing one ViewModel, one database, and one repository layer across both platforms.
⏱ TIMESTAMPS
00:00 — Introduction & finished app demo
05:00 — Prerequisites & environment setup
10:00 — KMP project setup with wizard
15:00 — Fix AGP version error (8.9.2 + Gradle 8.11.1)
20:00 — MVVM architecture explained for KMP
25:00 — Gradle & libs.versions.toml setup
30:00 — SQLDelight schema & code generation
35:00 — Data layer: TodoEntity & DriverFactory (expect/actual)
42:00 — Domain layer: Repository pattern
47:00 — ViewModel: shared StateFlow + business logic
52:00 — Android UI with Jetpack Compose
57:00 — iOS UI with SwiftUI + ObservableObject bridge
62:00 — Fix all iOS linker errors (libsqlite3)
66:00 — Live demo on Android emulator & iOS simulator
🛠 WHAT WE USE
• Kotlin Multiplatform (KMP) — Kotlin 2.0.21
• MVVM architecture — shared ViewModel + StateFlow
• SQLDelight 2.0.2 — cross-platform SQLite database
• Jetpack Compose — Android native UI
• SwiftUI — iOS native UI
• expect/actual — platform-specific implementations
• AGP 8.9.2 + Gradle 8.11.1
📌 WHAT YOU'LL LEARN
✅ MVVM clean architecture in Kotlin Multiplatform
✅ expect/actual pattern for platform-specific code
✅ SQLDelight on Android & iOS from shared code
✅ Shared ViewModel with StateFlow
✅ Bridging KMP StateFlow to SwiftUI ObservableObject
✅ Repository pattern in shared commonMain
✅ Fix every common KMP + iOS error
🏢 USED IN PRODUCTION BY
Netflix, McDonald's, Google, Cash App and Forbes — KMP is no longer experimental. It's the skill that makes you a 10x mobile developer in 2026.
🔗 RESOURCES
• Source code: https://github.com/khaliqdadmohmand/kmp_todo_app
• KMP Wizard: https://kmp.jetbrains.com
• SQLDelight docs: https://cashapp.github.io/sqldelight
#KotlinMultiplatform #KMP #MVVM #SQLDelight #SwiftUI #JetpackCompose #AndroidDevelopment #iOSDevelopment #Kotlin #MobileDev
