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

#TutorialWhat You Will Learn
1What is Kotlin Multiplatform?What KMP is, how it works, who uses it, KMP vs Flutter
2Setting Up Your First KMP ProjectKMP wizard, project setup, running on Android + iOS
3Understanding KMP Project StructurecommonMain, androidMain, iosMain, expect/actual
4Compose Multiplatform — Share Your UICMP setup, shared Composables, platform-specific UI
5KMP vs Flutter vs React NativeDetailed comparison, when to use each

Part 2: Core Libraries

#TutorialWhat You Will Learn
6Ktor Client — NetworkingHTTP requests, JSON parsing, error handling
7SQLDelight — DatabaseSQL-first database, CRUD operations, Flow, migrations
8DataStore — Key-Value StoragePreferences, type-safe keys, Flow
9Koin — Dependency InjectionDI in shared code, platform modules
10Shared ViewModelViewModel in commonMain, StateFlow, connecting to UI

Part 3: Architecture & Patterns

#TutorialWhat You Will Learn
11Clean Architecture in KMP3-layer architecture, shared domain and data layers
12Navigation in Compose MultiplatformType-safe routes, bottom navigation, deep linking
13Testing in KMPcommonTest, mock engines, platform-specific tests
14Error Handling and LoggingResult pattern, Kermit logging, crash reporting

Part 4: Build a Real App

#TutorialWhat You Will Learn
15Planning — A Notes AppFeatures, architecture, tech stack, project setup
16Building the Data LayerSQLDelight + Ktor, repository pattern, offline-first
17Building the UI LayerCompose (Android) + SwiftUI (iOS) + shared ViewModel
18Publishing Your KMP AppAndroid APK, iOS IPA, CI/CD, Play Store + App Store

Part 5: Advanced

#TutorialWhat You Will Learn
19KMP for Desktop and WebCompose Multiplatform Desktop, Kotlin/Wasm for Web
20Migrating an Android App to KMPStep-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