0Pricing
Kotlin Academy · 课时

KMM 项目结构

共享代码与平台代码

KMM 项目结构 是 CoddyKit 上的免费 Kotlin Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Kotlin Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Kotlin Academy 课程共包含 4 节课。

什么是 KMM

Kotlin Multiplatform Mobile (KMM) 允许您在保留原生用户界面的同时,在 iOS 和 Android 之间共享代码。您只需使用 Kotlin 编写一次业务逻辑。

共享模块

KMM 项目以一个共享模块为中心。它会为 Android 编译成 JVM 库,并为 iOS 编译成本地框架。

  • Android 将其作为常规依赖项使用
  • iOS 将其作为 Objective-C/Swift 框架导入

源集

共享模块被拆分为多个源集:

  • commonMain — 共享的、与平台无关的代码
  • androidMain — Android 专用代码
  • iosMain — iOS 专用代码

commonMain

commonMain 只能使用 Kotlin 标准库和多平台库。它不能直接引用 Android 或 iOS API。

// shared/src/commonMain/kotlin/Greeting.kt
class Greeting {
    fun greet(): String = "Hello, KMM!"
}

配置目标平台

共享的 build.gradle.kts 会通过多平台插件声明要构建哪些平台。

kotlin {
    androidTarget()
    iosX64()
    iosArm64()
    iosSimulatorArm64()
}

iOS 框架

iOS 目标平台会被打包成一个供 Xcode 导入的框架。

kotlin {
    listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
        it.binaries.framework {
            baseName = "Shared"
        }
    }
}

通用依赖项

多平台库(协程、序列化和 Ktor)应放入 commonMain,这样每个目标平台都能共享它们。

sourceSets {
    val commonMain by getting {
        dependencies {
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
        }
    }
}

Android 应用模块

Android 应用模块像任何 Gradle 模块一样依赖 shared,并使用 Jetpack Compose 或视图构建 Android 用户界面。

// androidApp/build.gradle.kts
dependencies {
    implementation(project(":shared"))
}

iOS 应用

iOS 应用是标准的 Xcode 项目。它会链接生成的 Shared 框架,并从 Swift 调用 Kotlin 类。

// Swift
// import Shared
// let text = Greeting().greet()

共享什么

典型的共享代码包括:网络通信、数据模型、仓储、用例和验证。用户界面、导航以及平台传感器应保留为原生实现。

独立运行的问候示例

共享逻辑就是普通的 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 项目结构」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Kotlin Academy 课程的其余内容,请升级到 CoddyKit PRO。 Kotlin Academy 课程共包含 4 节课。

「KMM 项目结构」这节课中我会学到什么?

共享代码与平台代码 你通过在浏览器中直接运行的动手代码来练习 Kotlin Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Kotlin Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Kotlin Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「KMM 项目结构」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Kotlin Academy 课中编写并运行代码吗?

能。每节 Kotlin Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. KMM 项目结构
  2. expect 与 actual
  3. 共享业务逻辑
  4. 平台 API
← 返回 Kotlin Academy