Contents
Kotlin Multiplatformプロジェクト設定の概要
Kotlin Multiplatform(以下、KMP)は、共通ロジックを1つのコードベースで管理し、プラットフォーム固有の実装を最小限に抑えるという設計思想に基づいたクロスプラットフォーム開発フレームワークです。最新バージョンのAndroid StudioとKotlinプラグインを使用することで、プロジェクト構築の手順が大幅に簡略化されています。
本記事では、KMPプロジェクト設定方法をステップバイステップで解説し、初心者でもスムーズに初期設定を行えるようサポートします。特に、テンプレート活用やGradle構成の最適化が焦点です。
KMP導入の意義とツールチェーン構成
KMPを導入する最大のメリットは、コードの再利用性と開発効率の向上にあります。例えば、ビジネスロジックやデータモデルをKotlinで共通化し、iOSやAndroidなどのプラットフォームごとにUI部分のみを実装することで、メンテナンスコストを削減できます。
ツールチェーン構成と要件
以下に最新バージョンでの必須条件を整理します。
| 項目 | 内容 | 補足 |
|---|---|---|
| Android Studioバージョン | 最新版以降 | 古いバージョンではKMPテンプレートが表示されない可能性あり |
| Kotlinプラグイン | 最新版以上 | KMP機能を完全に対応させるため |
| JDKバージョン | OpenJDK 21 | プロジェクト構築時のエラー回避のため |
注意: Android Studioが「Kotlin Multiplatform」メニューを提供するには、上記バージョンが前提となります。
KMPプロジェクト作成準備
KMPプロジェクトを作成する前に、公式サポートされているツールと設定ファイルの最新化を行います。これにより、テンプレート選択時のエラーや不具合を最小限に抑えられます。
必要な確認手順
- Android Studioを起動し、「Help」→「About」を選択
- バージョンが最新であるか確認
- 「Preferences」→「Plugins」で「Kotlin」プラグインが最新版か確認
アップデート手順
- Android Studio内の「Check for Updates」機能を実行
- アップデート可能な場合、ダウンロード・再起動を実施
- Kotlinプラグインの更新は、「Settings」→「Plugins」から手動で実施可能
公式テンプレートによるプロジェクト作成ガイド
Android Studioでは、KMPプロジェクト作成ウィザードが使いやすくなっています。公式テンプレートを活用することで、初期設定の手間を省略できます。
プロジェクト作成時の選択肢
- New Project → Kotlin Multiplatform Appを選択
- プラットフォーム選択画面で、「Android」、「iOS(Swift)」をチェック
- 「Use Jetpack Compose for Android」を有効化(省略可能)
注意点とベストプラクティス
- モジュール構成: 「Shared Module」と「Platform-Specific Modules」の分離が自動で行われるため、プロジェクト構造に精通していない開発者でも安心
- 依存関係管理: Gradleスクリプトがテンプレート内で最適化済み
共通モジュールとプラットフォーム固有モジュールの分離設計
KMPプロジェクトでは、共通ロジックを含むsharedモジュールと、各プラットフォーム専用のコードを含むモジュールに分離する必要があります。この構造は、後続のメンテナンス性や拡張性を高める設計です。
ソースコード構造の例
以下が、KMPプロジェクトにおける基本的なディレクトリ構成です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
my-kmp-project/ ├── shared/ │ ├── commonMain/ │ │ └── kotlin/ │ │ └── com.example.shared/ │ │ └── SharedLogic.kt │ └── commonTest/ │ └── kotlin/ │ └── com.example.shared/ ├── androidApp/ │ ├── androidMain/ │ └── resources/ ├── iosApp/ │ ├── iosMain/ │ └── resources/ |
ポイント:
commonMainに共通コードを配置し、androidMainやiosMainに各プラットフォーム固有の実装を行うのが基本です。
Gradleによる依存関係管理の実践例
KMPプロジェクトでは、Gradleスクリプトでモジュールごとの依存関係を明示的に記述する必要があります。これにより、各プラットフォームに必要なライブラリが正確に反映されます。
マルチプラットフォーム対応のbuild.gradle構成
以下は、shared/build.gradle.ktsとandroidApp/build.gradle.ktsの例です。
shared/build.gradle.kts
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
plugins { kotlin("multiplatform") version "最新版" } kotlin { jvm() android() ios() sourceSets { val commonMain by getting { dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib-common") } } } } |
androidApp/build.gradle.kts
|
1 2 3 4 5 6 7 8 9 |
plugins { id("com.android.application") } dependencies { implementation(project(":shared")) implementation("androidx.core:core-ktx:1.10.0") } |
注意: iOSモジュールの依存関係は、iOS専用のGradleタスクで処理する必要があります。
公式Codelabで実践する初期設定手順
公式ドキュメントの「Kotlin Multiplatformを試す」Codelabを利用することで、プロジェクト作成からモジュール構成までの一連の流れが理解しやすくなります。
ステップバイステップの操作ガイド
- プロジェクト作成: Android Studioの「New Project」からKMMテンプレートを選択
- モジュール構成: 「Shared Module」と「Platform-Specific Modules」を自動生成
- 依存関係確認: Gradleスクリプトでライブラリが正しく記載されているかチェック
- 実行テスト: AndroidとiOSのシミュレータでプロジェクトが動作するか確認
トラブルシューティング: エラーが出る場合、Android Studioのバージョンを最新に更新し、Kotlinプラグインも再インストールしてください。
まとめ
- KMPプロジェクトの初期設定では、最新版のAndroid StudioとKotlinプラグインが必須
- テンプレート活用でモジュール構成を簡単に実現可能
- Gradleスクリプトによる依存関係管理がプロジェクトの安定性を高める
- 公式Codelabで手順を確認し、ステップバイステップで設定を進めると効率的
KMPはクロスプラットフォーム開発の効率化に最適な技術ですが、初期設定の精度がプロジェクト全体の成功率を左右するため、本記事の手順を参考にしてください。