KMMプロジェクト構成
共有コードとプラットフォームコードを学びます
「KMMプロジェクト構成」はCoddyKit上の無料Kotlin Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKotlin Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kotlin Academyコースには全4レッスンが含まれています。
KMMとは
Kotlin Multiplatform Mobile (KMM) を使うと、ネイティブUIを維持しながらiOSとAndroidの間でコードを共有できます。ビジネスロジックをKotlinで一度だけ記述できます。
shared モジュール
KMMプロジェクトの中心となるのはsharedモジュールです。Android向けにはJVMライブラリに、iOS向けにはネイティブフレームワークにコンパイルされます。
- Androidでは通常の依存関係として利用します
- iOSではObjective-C/Swiftフレームワークとしてインポートします
ソースセット
sharedモジュールはソースセットに分割されます。
commonMain— 共有され、プラットフォームに依存しないコードandroidMain— Android固有のコードiosMain— iOS固有のコード
commonMain
commonMain では、Kotlin標準ライブラリとマルチプラットフォームライブラリのみを使用できます。AndroidやiOSのAPIを直接参照してはいけません。
// shared/src/commonMain/kotlin/Greeting.kt
class Greeting {
fun greet(): String = "Hello, KMM!"
}ターゲットの設定
sharedの build.gradle.kts で、マルチプラットフォームプラグインを使ってビルドするプラットフォームを宣言します。
kotlin {
androidTarget()
iosX64()
iosArm64()
iosSimulatorArm64()
}iOSフレームワーク
iOSのターゲットは、Xcodeがインポートする単一のフレームワークにまとめられます。
kotlin {
listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
it.binaries.framework {
baseName = "Shared"
}
}
}共通依存関係
マルチプラットフォームライブラリ(coroutines、serialization、Ktor)は commonMain に追加し、すべてのターゲットで共有します。
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
}
}
}Androidアプリモジュール
Androidアプリモジュールは、通常のGradleモジュールと同じように shared に依存し、Jetpack ComposeまたはViewsを使ってAndroid UIを構築します。
// androidApp/build.gradle.kts
dependencies {
implementation(project(":shared"))
}iOSアプリ
iOSアプリは標準的なXcodeプロジェクトです。生成された Shared フレームワークをリンクし、SwiftからKotlinクラスを呼び出します。
// Swift
// import Shared
// let text = Greeting().greet()共有するもの
共有に適した典型的なコードは、ネットワーク処理、データモデル、リポジトリ、ユースケース、バリデーションです。UI、ナビゲーション、プラットフォームセンサーはネイティブのままにします。
自己完結型のGreeting
共有ロジックは通常のKotlinコードです。ここでは、それが通常のコードであることを示すために、同じクラスを単独で実行します。
class Greeting {
fun greet(): String = "Hello, KMM!"
}
fun main() {
println(Greeting().greet())
}クイックチェック
AndroidやiOSのAPI参照を一切含めてはいけないコードは、どこに配置しますか。
まとめ
KMMの構造を学びました。
commonMain、androidMain、iosMainを持つsharedモジュール- マルチプラットフォームプラグインでターゲットを宣言し、iOSにはフレームワークを生成する
- Androidは
project(":shared")経由で依存し、iOSはフレームワークをインポートする
次はexpectとactualです。
よくある質問
「KMMプロジェクト構成」レッスンは無料ですか?
はい。「KMMプロジェクト構成」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kotlin Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kotlin Academyコースには全4レッスンが含まれています。
「KMMプロジェクト構成」で何を学びますか?
共有コードとプラットフォームコードを学びます ブラウザで直接実行するハンズオンコードでKotlin Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Kotlin Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのKotlin Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「KMMプロジェクト構成」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このKotlin Academyレッスンでコードを書いて実行できますか?
はい。すべてのKotlin Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- KMMプロジェクト構成
- expectとactual
- ビジネスロジックの共有
- プラットフォームAPI