環境を設定する(Kotlin マルチプラットフォーム)

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)
   }
}

アプリの共有モジュールに新しいライブラリを追加するときは、プラットフォームごとに必要な依存関係を確認してください。