プロジェクトへの依存関係の追加
このチュートリアルでは IntelliJ IDEA を使用しますが、Android Studio でも同様に進めることができます。どちらの IDE もコア機能と Kotlin マルチプラットフォーム(Kotlin Multiplatform)のサポートを共有しています。
これは「共有ロジックとネイティブ UI を使用した Kotlin マルチプラットフォーム アプリの作成」チュートリアルの第 3 部です。続行する前に、前のステップを完了していることを確認してください。
最初の Kotlin マルチプラットフォーム プロジェクトを作成し、微調整を行いました! 次は、成功するクロスプラットフォーム アプリケーションを構築するために不可欠な、サードパーティ ライブラリへの依存関係を追加する方法を学びましょう。
依存関係の種類
Kotlin マルチプラットフォーム プロジェクトで使用できる依存関係には 2 つの種類があります。
マルチプラットフォームの依存関係 (Multiplatform dependencies): 複数のターゲットをサポートし、共通ソースセット
commonMainで使用できるマルチプラットフォーム ライブラリです。Koin、Coil、SQLDelight など、最新の Android ライブラリの多くはすでにマルチプラットフォームをサポートしています。その他のマルチプラットフォーム ライブラリについては、JetBrains の実験的な検索サービスである klibs.io で探すことができます。
ネイティブの依存関係 (Native dependencies): 関連するエコシステムの通常のライブラリです。 ネイティブ プロジェクトでは通常、Android の場合は Gradle を、iOS の場合は Swift Package Manager を使用してこれらを扱います。
マルチプラットフォーム プロジェクト モジュールを扱う際、通常、セキュリティ ストレージや特定のシステムコールなどのプラットフォーム API を使用したい場合には、依然としてネイティブの依存関係が必要になります。ビルドスクリプトでは、
androidMainやiosMainなどのネイティブ ソースセットの構成でネイティブの依存関係を指定します。
どちらのタイプの依存関係についても、ローカルおよび外部のリポジトリを使用できます。
マルチプラットフォーム依存関係の追加
Android アプリの開発経験がある場合、マルチプラットフォーム依存関係の追加は、通常の Android プロジェクトで Gradle 依存関係を追加するのと似ています。唯一の違いは、特定のソースセットに追加する必要がある点です。
挨拶をもう少し華やかにしてみましょう: OS のバージョンに加えて、元旦までの残り日数を表示する機能を追加します。 完全にマルチプラットフォームをサポートしている kotlinx-datetime ライブラリは、共有コードで日付を扱うための最も便利な方法です。
gradle/libs.versions.tomlファイルを開き、バージョンカタログにkotlinx-datetimeの依存関係を追加します。toml[versions] kotlinx-datetime = "0.8.0" [libraries] kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }sharedLogic/build.gradle.ktsファイルを開き、共通コード ソースセットを構成するセクションにそのライブラリ エントリへの参照を追加します。kotlinkotlin { //... sourceSets { commonMain.dependencies { implementation(libs.kotlinx.datetime) } } }Build | Sync Project with Gradle Files メニュー項目を選択するか、ビルドスクリプトエディターの Sync Gradle Changes ボタンをクリックして Gradle ファイルを同期します:

kotlinx-datetime API の呼び出し
依存関係が追加されたので、共通コードに日付と時刻の計算を追加できます。
sharedLogic/src/commonMain/.../greetingkmpディレクトリを右クリックし、New | Kotlin Class/File を選択して、新しいファイルNewYear.ktを作成します。NewYear.ktに、datetimeの日付演算を使用して今日から来年の初めまでの日数を計算し、表示するフレーズを作成する 2 つの関数を追加します。kotlinfun daysUntilNewYear(): Int { val today = Clock.System.todayIn(TimeZone.currentSystemDefault()) val closestNewYear = LocalDate(today.year + 1, 1, 1) return today.daysUntil(closestNewYear) } fun daysPhrase(): String = "There are only ${daysUntilNewYear()} days left until New Year! 🎆"IDE の提案に従って、必要なインポートをすべて追加します。
kotlinx.datetime.Clockではなく、kotlin.time.Clockをインポートするようにしてください。Greeting.ktファイルでGreetingクラスを更新して、結果を確認します。kotlinclass Greeting { private val platform: Platform = getPlatform() fun greet(): List<String> = buildList { add(if (Random.nextBoolean()) "Hi!" else "Hello!") add("Guess what this is! > ${platform.name.reversed()}!") add(daysPhrase()) } }結果を確認するには、IntelliJ IDEA から androidApp と iosApp の実行構成を再実行します。

次のステップ
チュートリアルの次のパートでは、さらに多くの依存関係と、より複雑なロジックをプロジェクトに追加します。
関連項目
- あらゆる種類のマルチプラットフォーム依存関係を扱う方法を確認してください:Kotlin ライブラリ、Kotlin マルチプラットフォーム ライブラリ、およびその他のマルチプラットフォーム プロジェクト
- プラットフォーム固有のソースセットで使用するための Android 依存関係の追加 および CocoaPods を使用する/使用しない iOS 依存関係の追加 について学びます。
- サンプルプロジェクトで Android および iOS ライブラリを使用する方法 の例を確認してください。
ヘルプの利用
- Kotlin Slack: 招待を受け取り、#multiplatform チャンネルに参加してください。
- Kotlin 課題トラッカー: 新しい課題を報告してください。
