Kotlin マルチプラットフォーム
Kotlin マルチプラットフォームを使用して、複数のプラットフォームで実行される単一のコードベースを作成します。
Kotlin マルチプラットフォーム(KMP)は、Android と iOS の間でビジネス ロジックを共有するために Google が正式にサポートしています。Kotlin マルチプラットフォームは安定しており、本番環境で使用できます。JetBrains の Compose Multiplatform(CMP)を使用すると、デベロッパーはプラットフォーム間で UI を共有することもできます。
パスウェイ
Kotlin マルチプラットフォームの基本
今すぐマルチプラットフォーム開発を始めましょう。このパスでは、プロジェクトのセットアップ、コードの共有、プラットフォーム固有の API の使用から、Room データベースの Kotlin マルチプラットフォームへの移行まで、Kotlin マルチプラットフォームの基本を説明します。
Android Studio プラグイン
Kotlin マルチプラットフォーム プラグイン
Android Studio 内の開発エクスペリエンスを向上させるため、JetBrains が開発した Kotlin Multiplatform Android Studio プラグインをインストールすることをおすすめします。
- 新しいプロジェクト ウィザード: IDE 内で新しいマルチプラットフォーム プロジェクトを作成します。
- プリフライト チェック: プリフライト チェックは、環境の構成に役立ちます。
- 実行構成: IDE から直接、iOS と Android の両方でアプリケーションの実行、デバッグ、テストを行います。
- IDE での基本的な Swift サポート: IDE で基本的な Swift サポートを利用できます。これには、言語間のデバッグツール、ナビゲーション、クイック ドキュメントが含まれます。
Kotlin マルチプラットフォームのメリット
Kotlin マルチプラットフォームを使用すると、コアビジネス ロジックのみからアプリケーション全体まで、プラットフォーム間で共有するものを選択できます。主なメリットは次のとおりです。
コードの重複を排除する
複雑なビジネス ロジックを各プラットフォームで複製する必要はありません。
完全な書き換えは行わない
Kotlin マルチプラットフォームを使用すると、プラットフォーム間でコードの共有を開始するためにアプリケーション全体を書き直す必要はありません。
ネイティブ パフォーマンス
Kotlin マルチプラットフォームは、ターゲット プラットフォームがコードを実行するネイティブな方法でコンパイルされるため、ネイティブ実装と同等のパフォーマンスを実現します。
Kotlin マルチプラットフォームと Jetpack ライブラリ
Jetpack ライブラリの多くはすでに KMP 対応に移行されています。次の Jetpack ライブラリは KMP をサポートしています。
Android によって構築
JetBrains によって構築
サポート対象外
| ライブラリ | 最新リリース | Android | iOS | JVM | ウェブ |
|---|---|---|---|---|---|
| annotation |
2025 年 10 月 22 日 |
||||
| collection |
2025 年 8 月 27 日 |
||||
| compose |
2025 年 10 月 22 日 |
||||
|
datastore
ドキュメント |
2025 年 10 月 22 日 |
||||
|
ライフサイクル
ドキュメント |
2025 年 10 月 22 日 |
||||
|
viewModel
ドキュメント |
2025 年 10 月 22 日 |
||||
|
viewModel-compose
ドキュメント |
2025 年 10 月 22 日 |
||||
|
ナビゲーション
ドキュメント |
2025 年 9 月 24 日 |
||||
| navigation3 |
2025 年 10 月 22 日 |
||||
| navigationevent |
2025 年 10 月 8 日 |
||||
| paging |
2025 年 9 月 10 日 |
||||
|
room
ドキュメント |
2025 年 10 月 22 日 |
||||
| savedstate |
2025 年 10 月 22 日 |
||||
|
sqlite
ドキュメント |
2025 年 9 月 24 日 |
これらのライブラリに関するフィードバックがございましたら、Issue Tracker でお知らせください。
ツールサポート
マルチプラットフォーム プロジェクトは、Android Studio で開いたり、編集したり、実行したりできます。
KMP モジュール ウィザード
Android Studio 内で KMP 共有モジュールを作成することで、KMP への移行を開始できます。このモジュールは、Android アプリと iOS アプリの開発を開始するために必要なすべてのプラグイン(Android-KMP プラグインなど)を自動的に適用します。
JetBrains の Compose Multiplatform のライブ編集
ライブ編集は、Android デバイスでビルドするときに、プロジェクト内の任意のコード(
androidMain 内のコードだけでなく)を編集する場合に機能します。
JetBrains の Compose Multiplatform のプレビュー
Jetpack Compose のプレビューは、
commonMain ソースセットの JetBrains の Compose Multiplatform でも利用できます。
Kotlin Multiplatform で作成されたアプリ
すでに多くのアプリが Kotlin Multiplatform を使用して成功を収めています。
Blinkit
Cash App
Duolingo
Forbes
Google Docs
JioHotstar
石
Swiggy
Ultrahuman
Wrike
Zomato
対応プラットフォーム
公式にサポートされているプラットフォーム(Android と iOS)向けの Jetpack ライブラリのリリースでは、同じ品質と互換性の要件が維持されます。ただし、Jetpack の Kotlin マルチプラットフォーム サポートを他のプラットフォームに拡大する作業が進められているため、ツールとインフラストラクチャのサポートは進行中の可能性があります。
Tier 1
コードは CI で完全にテストされます。これには、ホスト側とデバイス上の両方のテストが含まれます。Google は、セマンティック バージョニング ポリシーに従って、ソースとバイナリの互換性を追跡しています。
- Android
- JVM
- iOS
Tier 2
コードは CI で部分的にテストされます。ホスト側テストに限定されます。ソースまたはバイナリの互換性は追跡されません。
- macOS
- Linux
Tier 3
コードが CI でテストされていません。ソースまたはバイナリの互換性の追跡はありません。
- watchOS
- tvOS
- Windows
- JavaScript
- WASM
参考情報
マルチプラットフォーム エコシステム全体とより高度な構成について詳しくは、Kotlin Multiplatform の公式ドキュメントをご覧ください。
Kotlin マルチプラットフォームのサンプル
Android と iOS 向けの Jetpack ライブラリの使用方法を示す Kotlin マルチプラットフォーム サンプルのセット。
Kotlin マルチプラットフォームを使ってみる
プロジェクトに KMP を追加する方法に関するオンボーディング ガイド。
Room を Kotlin マルチプラットフォームに移行する
Android 専用の Room から KMP へのガイド付き移行。
詳細なガイダンス
詳細なガイダンスについては、Kotlinlang.org の Kotlin Multiplatform ドキュメント ハブをご覧ください。
Kotlin マルチプラットフォームの概要、仕組み、使用するメリットについて学習します。