Kotlin

Kotlin Multiplatform プロジェクト構成方法と最新開発環境設定

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

1. Kotlin Multiplatform の概要と対象プラットフォーム

1-1 KMP が解決する課題

課題 従来のアプローチ KMP での解決策
コード重複 各プラットフォームごとに同一ロジックを実装 commonMain に共通ロジックを集約し、expect/actual で差分だけ実装
保守コスト バグ修正や機能追加が複数リポジトリ/モジュールに波及 共通コードは一箇所の変更で全体に反映
ビルド管理 プラットフォーム別に Gradle ファイルを分割 1つの build.gradle.kts でマルチターゲットを宣言

ポイント:KMP は「共通ロジックは Kotlin だけで書く」ことと、「プラットフォーム固有実装は必要最小限に抑える」ことが基本設計です。

1-2 主要ターゲット

  • JVM / Android
  • iOS (Arm64, X64, Simulator)
  • JavaScript (ブラウザ/Node.js)
  • Native (Linux、Windows、macOS)

詳細は公式ガイド → https://kotlinlang.org/docs/multiplatform.html

1-3 サンプルコード(期待/実装の分離)


2. 最新開発環境の構築手順

本稿執筆時点 (2024 年 4 月) の 安定版 を前提としています。バージョンが更新された場合は、公式リリースノートをご確認ください。

2-1 IDE とプラグインの選択

項目 推奨バージョン 入手先・根拠
IntelliJ IDEA (Community/Ultimate) 2024.2 系列 https://www.jetbrains.com/idea/download/ (2024 年 3 月リリースノート)
Android Studio Flamingo 2023.3.1 (2024‑04 更新版) https://developer.android.com/studio
Kotlin プラグイン 1.9.22(IDE に同梱) 同上、プラグイン設定画面で自動更新可

JetBrains 製品名は「IntelliJ」や「Android Studio」と簡潔にし、過度な繰り返しを避けました。

設定手順(IDE 共通)

  1. ダウンロードした IDE を起動 → Plugins > Marketplace
  2. Kotlin Multiplatform がインストール済みでない場合は検索して Install
  3. 再起動後、File → New → Project で「Kotlin Multiplatform Mobile (KMM)」テンプレートが選択できることを確認

IDE のバージョン対応表 → https://plugins.jetbrains.com/plugin/6954-kotlin-multiplatform

2-2 Gradle と Kotlin のバージョン管理

根拠: Gradle 8.5 のリリースノート → https://docs.gradle.org/8.5/release-notes.html、Kotlin 1.9 系列のマルチプラットフォームサポートは公式ドキュメントで推奨されています(https://kotlinlang.org/docs/releases.html#release-1920)。

2-3 JDK の選択

  • Android ビルド → JDK 21 が推奨(Android Gradle Plugin 8.1+)
  • iOS/Native → 同様に JDK 21 を使用可能。

インストールは SDKMAN! または AdoptOpenJDK の公式サイトから取得してください。


3. KMM Wizard でサンプルプロジェクトを作成

3-1 Wizard の起動と基本オプション

手順 操作内容
1 File → New → Project を選択
2 「Kotlin Multiplatform Mobile」テンプレートを選ぶ
3 プロジェクト名、保存先、JDK (21) を入力
4 Target platformsAndroidiOS にチェック
5 「Create sample application」にチェックしてサンプルコード生成

UI は IntelliJ の最新版に合わせて微調整されるため、画面が変わっても「KMM Wizard」だけは必ず選択してください(公式ガイド → https://kotlinlang.org/docs/multiplatform-mobile-setup.html#creating-a-project-with-the-wizard)。

3-2 生成されたディレクトリ構造

3-3 shared/build.gradle.kts のポイント

公式サンプルの Gradle ファイルは常に最新版が公開されています(https://github.com/JetBrains/kotlin/tree/master/samples/multiplatform)。


4. 手動でマルチプロジェクト構成へ移行

4-1 settings.gradle.kts の基本設定

階層は :shared → プラットフォームアプリ の順に並べると、依存関係が視覚的に把握しやすくなります。

4-2 共通モジュール (:shared) とプラットフォーム固有モジュールの分割例

androidApp/build.gradle.kts の依存関係

iosApp/build.gradle.kts(Xcode と連携)

4-3 Gradle Kotlin DSL による sourceSets 定義(再掲・拡張)

型安全な DSL により、スペルミスやバージョン不整合のリスクが低減します。IDE の補完機能を活用してください。


5. 実践的拡張と運用

5-1 UI フレームワークの選択肢と導入方法

フレームワーク 対応プラットフォーム 主な利用シーン
Compose Multiplatform Android, iOS (UIKit/SwiftUI bridge), Desktop, Web 同一 Kotlin UI コードで複数デバイスをカバーしたい場合
SwiftUI iOS / macOS Apple エコシステム専用の高度な UI が必要なとき
Kotlin/JS + React ブラウザ, Electron デスクトップ Web フロントエンドチームとの共通化を図りたい場合

Compose の最小実装例

5-2 期待値テスト (expect/actual) の書き方

テストコード(commonTest):

Gradle の test タスクで JVM 上の commonTest が走り、プラットフォーム実装が正しく提供されているかを検証できます(テストガイド → https://kotlinlang.org/docs/multiplatform-test-assertions.html)。

5-3 CI/CD:GitHub Actions + Gradle Remote Build Cache

ワークフロー全体像

  • キャッシュ戦略は公式ドキュメント https://github.com/actions/cache に従い、gradle-wrapper.properties のハッシュでキーを生成しています。
  • リモート Build Cache(Gradle Enterprise もしくは自前サーバ)を有効にすれば、PR 毎のビルド時間が約30%短縮されます。

5-4 大規模プロジェクト向けモジュール設計ベストプラクティス

  1. 機能別 KMP モジュール (:feature:login, :feature:profile …)
  2. プラットフォームアプリモジュール (:androidApp, :iosApp) がそれらを implementation で取り込む形にする。

依存関係例(login モジュール)


6. まとめ

  • KMP の本質は「共通ロジックを commonMain に、差分だけ expect/actual で実装」すること。これによりコード重複と保守コストが大幅に削減されます。
  • 開発環境は IntelliJ 2024.2 / Android Studio Flamingo 系列 + Gradle 8.5 + Kotlin 1.9.22 をベースにし、gradle-wrapper.propertiesbuild.gradle.kts でバージョンを固定すれば安定運用が可能です。
  • 公式 Wizardは「Zero‑click」スタートアップとして有効活用でき、生成された shared / androidApp / iosApp の三層構造は KMP の設計パターンそのものです。
  • 手動マルチプロジェクト化では settings.gradle.kts にサブプロジェクトを列挙し、:shared を共通モジュールとして切り出すだけで柔軟な拡張が実現できます。
  • 実務的拡張として UI フレームワーク選択、expect/actual テスト、GitHub Actions + Build Cache による高速 CI、そして大規模化時のドメイン別モジュール設計を組み合わせれば、エンジニアリング効率と品質が最大化します。

この手順に沿ってプロジェクトを構築すれば、「Kotlin Multiplatform プロジェクト構成 方法」の全体像をゼロから実装でき、即座に本番レベルのマルチプラットフォームアプリ開発へ移行できます。


参考リンク集

これらを活用しつつ、プロジェクト固有の要件に合わせて微調整してください。

スポンサードリンク

-Kotlin
-, , , , ,