Kotlin

KMPプロジェクト構築: Android Studio Flamingo & Kotlin 1.9.22によるクロスプラットフォーム開発ガイド

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

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Android StudioでKMPプロジェクトを即時生成する手順

Android Studio Flamingo以降のバージョンでは、KMPウィザードを使用してプロジェクト構築が一括で完了します。これにより、従来の手動設定にかかった時間を大幅に短縮できます。

新規プロジェクトテンプレート選択の手順

以下のように操作することで、4層構造を即時生成できます:

  1. Android Studioを起動し、「New Project」を選択
  2. 「Kotlin Multiplatform」を選び、プロジェクト名と保存先を入力
  3. プラットフォーム選択画面で、Android/iOS/JS/WASMの4層構造を選択

共通コードとプラットフォーム専用ディレクトリが自動生成される仕組みは、KMP開発の効率化に大きく寄与します。


Kotlin 1.9.22対応の初期設定オプション

ウィザード起動時にKotlinバージョンを指定できますが、デフォルトでは最新版Kotlin 1.9.22が適用されます。以下に初期設定で確認すべき項目を示します:

  • JDKの選択: JDK17/21が推奨(特にiOSモジュール構築時に必要)
  • Gradleバージョン: 8.3以降が対応していることを確認
  • プラットフォーム依存ライブラリの自動選択: iOSではSwiftとの連携用ライブラリも含む

プロジェクトの初期設定は、各プラットフォームごとの要件を事前に把握することが重要です。


4層構造(shared/androidApp/iosApp/js/wasm)の最適な設定方法

KMPプロジェクトのディレクトリ構成は、共有コードとプラットフォーム固有コードを明確に分離することで開発効率が向上します。

共享コードとプラットフォーム固有コードの分離原則

以下は、各ディレクトリの役割と特徴です:

ディレクトリ 内容 補足
shared/ クロスプラットフォームで使用するコード(データモデル、共通APIなど) expect/actualのインターフェース定義もここに配置
androidApp/ Android専用実装とUIレイアウト RoomやJetpack Composeとの連携も可能
iosApp/ iOS専用実装(Swiftと連携) CocoaPodsによる依存管理が自動で設定される
js/wasm/ Webアプリケーション向けコード Node.js 20以上を前提としている

各プラットフォームの実装はactualキーワードで分離し、共通コードとの連携をスムーズにします。


Gradle Kotlin DSLによるプロジェクト構成のベストプラクティス

Kotlin 1.9.22以降では、DSL記法がさらに洗練され、バージョン管理や依存関係定義が簡潔になりました。

build.gradle.ktsでの共通設定テンプレート

以下はbuild.gradle.ktsの基本構成例です:

バージョンの一元管理は、複数のプラットフォームで依存関係が一致するようにするための必須手順です。


Version Catalogで管理するライブラリバージョン一覧

以下のようにversion.catalogs.tomlにライブラリ情報を記述することで、プロジェクト全体でのバージョン統一が可能になります:

バージョン一元管理は、複数のプラットフォームで依存関係が一致するようにするための必須手順です。


expect/actualによるプラットフォーム分離実装の具体例

KMPでは、expectactualキーワードを使ってプラットフォーム固有の実装を分離します。これにより、共通インターフェースを維持しながら、各環境に合わせた処理が可能になります。

共通インターフェース定義の書き方

以下はshared/src/commonMain/kotlin/MyInterface.ktの例です:

expectキーワードで、この関数がプラットフォーム固有であることを明示します。


Android/iOSでの実装差分コードサンプル

Android用実装(androidApp/src/androidMain/kotlin/MyActual.kt)

iOS用実装(iosApp/src/iosMain/kotlin/MyActual.kt)

各プラットフォームでexpectインターフェースを満たすactual実装が行われるため、共通コードとの連携性が保たれます。


Xcode15・JDK17/21環境でのiOSモジュール構築手順

KMPプロジェクトでiOSをサポートするには、Xcode 15とJDK17/21の環境設定が必須です。以下の手順に従ってください:

Kotlin/NativeとSwiftの連携設定

  1. XcodeからiosAppディレクトリを開く
  2. プロジェクト設定で「Build Settings」→「Other Swift Flags」に-D kotlinを追加
  3. Kotlin/Nativeライブラリが自動的にリンクされるように、CocoaPodsの依存関係を確認

2026年時点では、SwiftとKotlin/Native間の連携がさらにスムーズになっているとされています。


iOSアプリケーションのビルド・デプロイフロー

以下の手順でiOSモジュールをビルドします:

  1. Android Studioから「Run」メニューを選択し、iOSプロジェクトを実行
  2. Xcodeでシミュレーターまたは物理端末にアプリをインストール
  3. SwiftとKotlinの連携部分をテスト(特にexpect/actualの動作確認)

デプロイ時には、JDK17以上を使用しないとビルドエラーが発生する可能性があるため注意が必要です。


スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Kotlin