Kotlin マルチプラットフォーム(KMP)を使用すると、異なるプラットフォームの間で Kotlin コードを共有できます。Kotlin マルチプラットフォームは JetBrains によって開発されており、KMP を使用してモバイル プラットフォームをターゲットにすることは安定した実稼働対応のバージョンです。
マルチプラットフォームの Jetpack ライブラリ
Kotlin マルチプラットフォームは、Android と iOS の間でビジネス ロジックを共有するために Google によって正式にサポートされています。Jetpack ライブラリの多くは、KMP を活用するようにすでに移行されています。
次の Jetpack ライブラリは KMP をサポートしています。
Maven グループ ID | 最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース | ドキュメント |
---|---|---|---|---|---|---|
annotation(*) | 2024 年 10 月 30 日 | 1.9.1 | - | - | - | |
collection | 2024 年 11 月 13 日 | 1.4.5 | - | - | 1.5.0-alpha06 | |
datastore | 2024 年 5 月 1 日 | 1.1.1 | - | - | - | ドキュメント |
lifecycle(*) | 2024 年 11 月 13 日 | 2.8.7 | - | - | 2.9.0-alpha07 | |
paging(*) | 2024 年 11 月 13 日 | 3.3.4 | - | - | - | |
room | 2024 年 10 月 30 日 | 2.6.1 | - | - | 2.7.0-alpha11 | ドキュメント |
sqlite | 2024 年 10 月 30 日 | 2.4.0 | - | - | 2.5.0-alpha11 | ドキュメント |
これらのライブラリのリファレンス ドキュメントでは、共通コード、Android、ネイティブで利用可能かどうかに基づいて API にマークが表示されています。各ページの上部で、宣言をプラットフォーム別にフィルタすることもできます。
kotlin-multiplatform-samples GitHub リポジトリでは、これらのライブラリの機能の一部を紹介しています。
これらのライブラリに関するフィードバックがございましたら、Issue Tracker でお知らせください。
対応プラットフォーム
公式にサポートされているプラットフォーム(Android と iOS)向けの Jetpack ライブラリ リリースは、品質と互換性に関する要件を維持しています。ただし、Jetpack の Kotlin マルチプラットフォームのサポートを他のプラットフォームに拡大する作業が進行中であるため、ツールとインフラストラクチャのサポートは現在開発中です。
各プラットフォームの現在のサポートレベルは、次の階層にまとめられます。
Tier 1:
- CI で完全にテスト済み(ホスト側とデバイス上の両方のテストを含む)
- セマンティック バージョニング ポリシーに従ったソースとバイナリの互換性のトラッキング
Tier 2:
- CI で部分的にテスト済み。ホスト側のテストに限定
- ソースまたはバイナリの互換性のトラッキングなし
Tier 3:
- CI でテストされていない
- ソースまたはバイナリの互換性のトラッキングなし
プラットフォーム | サポートレベル |
---|---|
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 |
ツールのサポート
マルチプラットフォーム プロジェクトは、Android Studio で開いたり、編集したり、実行したりできます。ただし、IDE の一部の機能は、このプロジェクトでまだ利用できません。新しいプロジェクトを作成するには、JetBrains の Kotlin マルチプラットフォーム ウィザードを使用します。
また、新しいリリースのコアシナリオをテストして、Android Gradle プラグインが Kotlin マルチプラットフォームと互換性があることを確認しています。