A clean Kotlin Multiplatform (KMP) starter generated with the Kotlin Multiplatform Wizard and then updated to work smoothly with Android Gradle Plugin (AGP) 9.0.0.
Here is a Medium article to explain all changes. Moreover, this repository is published as a GitHub Template — click “Use this template” to create your own project in seconds.
If you’ve ever generated a project from the KMP Wizard and then hit friction upgrading to AGP 9, this template is meant to be the “already-migrated” starting point.
It follows the modern recommendation of having:
- a shared KMP module (for Compose Multiplatform shared UI + shared logic)
- a dedicated Android app module (Android entry point)
- a dedicated iOS app (Xcode entry point)
(Those modules are already present in this repo.)
- Kotlin Multiplatform project targeting Android + iOS
- Compose Multiplatform shared UI in
composeApp - Android entry point in
androidApp - iOS entry point in
iosApp - Gradle Kotlin DSL + version-catalog style dependency management (typical wizard output)
- Updated build setup aligned with AGP 9 / “built-in Kotlin” direction
Repo description: “This repository is created by KMP Wizard but updated to use AGP 9.”
.
├── androidApp/ # Android application module (entry point)
├── composeApp/ # Shared KMP module (Compose Multiplatform UI + shared code)
└── iosApp/ # iOS application (Xcode project)
- Android Studio recent enough to support modern KMP + AGP 9 tooling
- Xcode (to run the iOS app)
- A JDK compatible with your Android Studio / Gradle / AGP setup
See:
- Kotlin Multiplatform Wizard: https://kmp.jetbrains.com/
- Android KMP Gradle plugin guidance: https://developer.android.com/kotlin/multiplatform/plugin
- AGP 9 release notes: https://developer.android.com/build/releases/agp-9-0-0-release-notes
- Open this GitHub repository.
- Click Use this template → Create a new repository
- Clone your new repository locally.
Open the project in Android Studio and run the androidApp configuration.
If you prefer the terminal, the wizard-style README in this repo includes:
./gradlew :composeApp:assembleDebugDepending on your Android module setup, you may also want to use tasks like:
./gradlew :androidApp:assembleDebugor./gradlew :androidApp:installDebug. Run./gradlew tasksto see what’s available in your environment.
Open iosApp/ in Xcode and press Run.
AGP 9 introduces / solidifies changes that matter for KMP projects, including:
- Built-in Kotlin support on the Android side (reduces reliance on legacy Kotlin Android plugin wiring)
- A dedicated Android KMP library plugin (
com.android.kotlin.multiplatform.library) recommended for KMP library modules - Guidance to keep
com.android.applicationin a separate module from the shared KMP module
This template is structured with those realities in mind.
We are new but try to help Kotlin Multiplatform community. Feel free to follow us on socail media for more KMP + CMP contents, apps, GitHub repositories, Medium articles, news and more: https://linktr.ee/watermelonKode
Apache-2.0 (see LICENSE).