Kotlin Multiplatform Overview

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 November 13, 2024 1.4.5 - - 1.5.0-alpha06
datastore May 1, 2024 1.1.1 - - - Documentation
lifecycle (*) November 13, 2024 2.8.7 - - 2.9.0-alpha07
paging (*) November 13, 2024 3.3.4 - - -
room October 30, 2024 2.6.1 - - 2.7.0-alpha11 Documentation
sqlite October 30, 2024 2.4.0 - - 2.5.0-alpha11 Documentation

Markers showing platform availability of APIs

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.