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