A complete, step-by-step Kotlin Multiplatform tutorial series. Share business logic, networking, and database code between Android and iOS. From your first shared function to publishing a real cross-platform app.
Write Kotlin once. Run on Android, iOS, Desktop, and Web.
Part 1: Foundations#
| # | Tutorial | What You Will Learn |
|---|
| 1 | What is Kotlin Multiplatform? | What KMP is, how it works, who uses it, KMP vs Flutter |
| 2 | Setting Up Your First KMP Project | KMP wizard, project setup, running on Android + iOS |
| 3 | Understanding KMP Project Structure | commonMain, androidMain, iosMain, expect/actual |
| 4 | Compose Multiplatform — Share Your UI | CMP setup, shared Composables, platform-specific UI |
| 5 | KMP vs Flutter vs React Native | Detailed comparison, when to use each |
Part 2: Core Libraries#
| # | Tutorial | What You Will Learn |
|---|
| 6 | Ktor Client — Networking | HTTP requests, JSON parsing, error handling |
| 7 | SQLDelight — Database | SQL-first database, CRUD operations, Flow, migrations |
| 8 | DataStore — Key-Value Storage | Preferences, type-safe keys, Flow |
| 9 | Koin — Dependency Injection | DI in shared code, platform modules |
| 10 | Shared ViewModel | ViewModel in commonMain, StateFlow, connecting to UI |
Part 3: Architecture & Patterns#
Part 4: Build a Real App#
| # | Tutorial | What You Will Learn |
|---|
| 15 | Planning — A Notes App | Features, architecture, tech stack, project setup |
| 16 | Building the Data Layer | SQLDelight + Ktor, repository pattern, offline-first |
| 17 | Building the UI Layer | Compose (Android) + SwiftUI (iOS) + shared ViewModel |
| 18 | Publishing Your KMP App | Android APK, iOS IPA, CI/CD, Play Store + App Store |
Part 5: Advanced#
| # | Tutorial | What You Will Learn |
|---|
| 19 | KMP for Desktop and Web | Compose Multiplatform Desktop, Kotlin/Wasm for Web |
| 20 | Migrating an Android App to KMP | Step-by-step migration, gradual adoption strategy |
Who is This For?#
- Android/Kotlin developers who want to build iOS apps without learning Swift
- Mobile developers exploring cross-platform options
- Teams looking to share code between platforms
- Anyone who already knows Kotlin and wants to expand
Prerequisites#
- Basic Kotlin knowledge
- Familiarity with Jetpack Compose (see our Compose Tutorial Series)
- A Mac (required for iOS builds)
- Android Studio installed