A modern KMP application built with Clean Architecture, Compose, and platform-specific UI for Android and iOS.
- Kotlin Multiplatform Shared Logic
- Android UI with Jetpack Compose
- iOS UI with SwiftUI
- Compose Material3 design system
- Clean Architecture:
domain,data,presentationlayers - Dependency Injection ready (Koin / Hilt)
- Ktor for API client
- Serialization via
kotlinx.serialization - Coroutine support with native
StateFlowvia kmp-nativecoroutines
kotlin_multiplatform/
├── shared/ # Shared business logic
│ ├── core/ # Utility classes
│ ├── domain/ # Model & UseCases
│ ├── data/ # API, DTOs, Mappers, RepositoryImpl
│ ├── presentation/ # Shared ViewModels (optional)
│ └── di/ # Shared DI helpers
├── androidApp/ # Android UI with Jetpack Compose
└── iosApp/ # iOS UI with SwiftUI
| Layer | Android | iOS |
|---|---|---|
| UI | Jetpack Compose (Material3) | SwiftUI |
| Architecture | Clean Architecture (MVI-ready) | Native Swift MVVM |
| Networking | Ktor | Shared via KMP |
| Serialization | kotlinx.serialization | |
| Async | Kotlin Coroutines / StateFlow | Swift Concurrency (Task, async/await) / @Published |
| Dependency Mgmt | Gradle + Version Catalog (TOML) | CocoaPods |
- Android Studio Giraffe+
- Xcode 15+
- Kotlin 2.0.10
- JDK 17+
./gradlew :androidApp:installDebugcd iosApp
pod install
open iosApp.xcworkspaceThen build and run via Xcode..
shared: Core business logic shared between Android & iOSandroidApp: Jetpack Compose UIiosApp: SwiftUI
This project was inspired by:
DroidKaigi 2024 KMP structure
touchlab/KaMPKit
rickclephas/KMP-NativeCoroutines