Kotlin Multiplatform (KMP) enables sharing Kotlin code across different platforms. Kotlin Multiplatform is developed by JetBrains, and using KMP to target mobile platforms is stable and production-ready.
Multiplatform Jetpack libraries
Kotlin Multiplatform is officially supported by Google for sharing business logic between Android and iOS. Many of our Jetpack libraries have already been migrated to take advantage of KMP.
The following Jetpack libraries provide KMP support:
Maven Group ID | Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | Documentation |
---|---|---|---|---|---|---|
annotation (*) | October 30, 2024 | 1.9.1 | - | - | - | |
collection | October 30, 2024 | 1.4.5 | - | - | 1.5.0-alpha05 | |
datastore | May 1, 2024 | 1.1.1 | - | - | - | Documentation |
lifecycle (*) | October 30, 2024 | 2.8.7 | - | - | 2.9.0-alpha06 | |
paging (*) | August 7, 2024 | 3.3.2 | - | - | - | |
room | October 30, 2024 | 2.6.1 | - | - | 2.7.0-alpha11 | Documentation |
sqlite | October 30, 2024 | 2.4.0 | - | - | 2.5.0-alpha11 | Documentation |
The reference documentation for these libraries marks the APIs based on their availability for common code, Android, and Native. You can also filter for declarations by platform at the top of each page.
The kotlin-multiplatform-samples GitHub repository showcases some of the functionality of these libraries.
If you have feedback on these libraries, please share it through the issue tracker.
Supported platforms
Jetpack library releases for officially supported platforms, Android and iOS, maintain the same quality and compatibility requirements. However, as we work to expand Jetpack's Kotlin Multiplatform support to other platforms, the tooling and infrastructure support may be a work in progress.
The current level of support for each platform can be summarized in tiers:
Tier 1:
- Fully tested in CI; including both host-side and on-device tests
- Source and binary compatibility tracking in accordance with our semantic versioning policies
Tier 2:
- Partially tested on CI; limited to host-side tests
- No source or binary compatibility tracking
Tier 3:
- Untested on CI
- No source or binary compatibility tracking
Platform | Level of support |
---|---|
Android | Tier 1 |
JVM | Tier 1 |
iOS | Tier 1 |
macOS | Tier 2 |
watchOS | Tier 3 |
tvOS | Tier 3 |
Linux | Tier 2 |
Windows | Tier 3 |
WASM | Tier 3 |
Tooling support
You can open, edit, and run multiplatform projects in Android Studio. However, some IDE features aren't yet available for these projects. To create a new project, use the Kotlin Multiplatform wizard from JetBrains.
We're also ensuring that the Android Gradle Plugin is compatible with Kotlin Multiplatform by testing core scenarios for new releases.