Contents
Kotlin Multiplatformプロジェクト構築の準備と環境整備
KMM 開発を始めるにあたり、事前に環境整備と公式リソースの活用方法を確認することが重要です。Android Studio の最新バージョンでは、KMM テンプレートがさらに使いやすくなっています。
公式Codelabの活用
公式 Codelab(Kotlin Multiplatform を使ってみる - Android Developers)は、プロジェクト初期設定からサンプルコードまで網羅した学習リソースです。最新バージョンの Android Studio で実行することで、main ブランチから始める手順がスムーズに理解できます。
- 公式 Codelab の特徴
- Kotlin/Native と Compose Multiplatform の連携を含む
- iOS サポートの有無確認に便利
- Android と iOS 開発者向けに最適化されている
Android Studioのバージョン確認
KMM プロジェクト作成時に不具合が生じる主な原因の一つは、Android Studio のバージョンが古すぎるケースです。2023年現在、最新版(※例:JetBrains Toolbox で管理される Android Studio Iguana)に更新してから新規プロジェクトを作成してください。
| チェック項目 | 備考 |
|---|---|
| Android Studio バージョン | 2023年4月以降のリリース推奨 |
| Java Development Kit (JDK) | OpenJDK 17 以上が必要(※将来性のため、OpenJDK 19 以降も考慮) |
| Kotlin プラグイン | Android Studio 内で自動更新される(※バージョン整合性を定期確認推奨) |
Android StudioでKMMプロジェクトテンプレートを選択する手順
Android Studio での新規プロジェクト作成画面では、KMM サポートを含むテンプレートが選べるようになりました。プラットフォーム選択のポイントに注意することで、後の開発効率が大きく変わります。
新規プロジェクト作成時のオプション設定
- Android Studio を起動し、「File」→「New」→「New Project…」を選択
- 「Kotlin Multiplatform Mobile (KMM) プロジェクト」テンプレートを選択(※Android Studio 2023年版に必須)
-
プロジェクト名・IDの入力 → 次へ
-
注意事項
- Android と iOS の両方をサポートする場合は「Android, iOS」を選択(※iOS対応にはSwiftとの連携設定が必要)
- 単独のプラットフォーム開発なら「Android only」「iOS only」と指定可能
プラットフォーム選択のポイント
| 選択肢 | 概要 |
|---|---|
| Android only | Android に特化した KMM 設定(簡単) |
| iOS only | iOS 向け Swift との連携設定が自動で組まれる(※Kotlin/Nativeのコンパイル環境が必要) |
| Both (Android, iOS) | 共有コードの共通性を最大限活用する場合 |
共有コードモジュールとプラットフォーム固有コードの分離方法
KMM の魅力は、複数プラットフォームで再利用可能なコードを作成できることです。しかし、その分離方法が誤ると依存関係の混乱を招くため、正しい構造管理が必要です。
src/commonMain/とsrc/androidMain/の構造
KMM プロジェクトでは、以下のようなディレクトリ構造が自動生成されます。
| ディレクトリ | 内容 |
|---|---|
src/commonMain/kotlin |
共有コード(Android と iOS 共通) |
src/androidMain/kotlin |
Android 固有の実装(※Jetpack Composeなどに限定) |
src/iosMain/kotlin |
iOS 固有の実装(※Swiftとの相互運用に注意) |
- ベストプラクティス
- モジュールごとに責務を分離(例:ネットワーク →
NetworkModule.kt) - 共有コードは純粋な Kotlin のみで書く(※Kotlin/Native互換性を保つため)
依存関係の明確化
| 種類 | 設定方法 |
|---|---|
| 共有ライブラリ(例:Kotlinx Coroutine) | commonMain 内で記述(※Swiftとの互換性を確認) |
| Android 限定(例:Jetpack Compose) | androidMain 内で記述(※iOSに不要な依存排除が必要) |
| iOS 限定(例:SwiftUI) | iosMain 内で記述(※Kotlin/Nativeのバージョン整合性を確認) |
iOS向けSwiftとの連携設定手順
KMM プロジェクトに iOS を追加する場合、Swift と Kotlin の相互運用が不可欠です。Xcode プロジェクトとの統合をスムーズにするための設定手順を解説します。
Kotlin/Nativeコンパイル設定
- Android Studio で「Add Platform」を選択 → iOS を選ぶ(※2023年ではJetBrains ToolboxからXcode 15以降が推奨)
- Swift のバージョン指定(※Xcode 15以降の対応が必要な場合に注意)
-
iosMainディレクトリに生成される.swiftインターフェースを確認 -
よくあるエラー例
- Kotlin/Native のコンパイルエラー:
Kotlin/Native compiler version mismatch
→ Android Studio と Xcode のバージョン整合性を確認(※公式ドキュメントで最新情報確認推奨)
Swiftコードとの相互運用方法
| タスク | 実施手順 |
|---|---|
| Swift から Kotlin ライブラリ呼び出し | import YourKMMModuleName を Xcode プロジェクトに追加(※ライブラリの生成パスを確認) |
| 共通ライブラリの共有 | iosMain 内で Swift 化された Kotlin クラスを参照(※インターフェースファイルを再生成する必要あり) |
Android/KotlinとiOS/Swift間の依存関係管理
Android と iOS 開発はそれぞれ異なる依存管理ツール(Gradle vs. Swift Package Manager)を使用します。バージョン統一や依存排除が成功するか否かは、プロジェクト規模に大きく影響します。
共通ライブラリのバージョン統一
| ツール | 操作方法 |
|---|---|
| Gradle(Android) | build.gradle.kts で Kotlin ライブラリバージョンを指定(※最新版を常に確認推奨) |
| Swift Package Manager(iOS) | Package.swift 内の依存関係でバージョン同期(※Kotlin/NativeとSwiftの互換性に注意) |
- 例:Kotlinx Coroutine のバージョン統一
- Android:
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") - iOS:
dependencies: ["kotlinx.coroutines.core:1.6.4"](※Swift Package Managerによる確認必要)
プラットフォーム固有依存の排除方法
| 問題 | 解決策 |
|---|---|
| iOS に Android 固有ライブラリが含まれる | iosMain 内で exclude 設定(※依存排除ファイルの作成推奨) |
| Android に iOS 固有ライブラリが含まれる | androidMain 内で条件付き import(※GradleのexcludeまたはuseLibrary指定が必要) |
公式ドキュメントとの連携ポイントとトラブルシューティング
KMM 開発において、公式ドキュメントを活用する習慣は重要です。最新情報を確認し、よくある設定ミスやエラーに対処しましょう。
Android Studioのツールチップ活用
Android Studio 2023年版では、以下のようなツールチップが表示されるようになりました。
- KMM モジュールの警告:
This module is not compatible with iOS. -
依存関係の不一致:
Gradle: Kotlin version mismatch -
対処法
File → Invalidate Caches / Restartでキャッシュをクリア(※定期的な実施推奨)- Android Studio を最新版に更新(※公式リリースノートで確認)
最新情報の確認方法
| 方法 | 備考 |
|---|---|
| 公式ドキュメント | Kotlin Multiplatform – Jetbrains(※2023年版に更新されているか確認推奨) |
| Codelab 更新状況 | Android Developers Codelabs(※最新バージョンのサポート状態を常にチェック) |
- プロジェクト初期構築に Android Studio のテンプレートを活用
- 共有コードとプラットフォーム固有コードの分離を意識
- Swift との連携では Kotlin/Native 設定を慎重に行う(※公式ドキュメントで最新情報を確認)
- Gradle と Swift Package Manager を使い分けてバージョン管理
- 公式リソースを定期的に確認し、最新情報を活用
これらのポイントを押さえれば、Kotlin Multiplatform プロジェクトの構築はスムーズに進みます。公式 Codelab と Android Studio の機能を最大限に利用して、効率的な開発を実現してください。