Kotlin マルチプラットフォーム(KMP)を使用すると、異なるプラットフォーム間で Kotlin コードを共有できます。KMP を使用してアプリの構築を開始する前に、このドキュメントの説明に沿って環境を設定する必要があります。また、Jetbrain の公式ドキュメントもご覧ください。
必要なツールをインストールまたは更新する
- Android Studio の最新の安定版をインストールするか、最新バージョンに更新します。
- 互換性の問題を回避するため、Android Studio にバンドルされている Kotlin プラグインを最新バージョンにアップデートします。
- (省略可)iOS 開発の場合は、Xcode をインストールして UI を作成し、必要に応じて Swift コードまたは Objective-C コードを追加します。
Kotlin マルチプラットフォーム プロジェクトを作成する
JetBrains の Kotlin マルチプラットフォーム ウィザードを使用して、新しい KMP プロジェクトを作成できます。UI のネイティブを維持するには、[UI を共有しない] オプションを選択してください。
プロジェクトの構造
KMP プロジェクトは、Android プロジェクトと同様のプロジェクト構造に従います。
KMP プロジェクトには、プラットフォーム固有のモジュールと共有モジュールが含まれます。関連するモジュールにプラットフォーム固有のコードを追加します。たとえば、Android アプリの UI を androidApp モジュールに追加し、iOS アプリの UI を iosApp モジュールに追加します。プラットフォーム間で共有するコードは、shared モジュールに格納します。
共有モジュールは、プロジェクトの他の部分と同様に、ビルドシステムとして Gradle を使用します。ソースセットを使用して、共通依存関係とプラットフォーム固有の依存関係を宣言できます。たとえば、アプリでネットワーキングに Ktor を使用している場合、Android では OkHttp 依存関係を、iOS では Darwin 依存関係を追加する必要があります。一部のライブラリでは、共通の依存関係のみが必要で、プラットフォーム固有の依存関係は必要ありません。
sourceSets {
commonMain.dependencies {
//put your multiplatform dependencies here
//...
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
//...
}
androidMain.dependencies {
implementation(libs.ktor.client.okhttp)
}
iosMain.dependencies {
implementation(libs.ktor.client.darwin)
}
}
アプリの共有モジュールに新しいライブラリを追加するときは、プラットフォームごとに必要な依存関係を確認してください。