環境を設定する(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)
   }
}

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