Compose Multiplatform 入门教程
1. 项目目录结构及介绍
在 compose-multiplatform 项目中,目录结构通常是用于组织不同平台的代码和资源。以下是一个标准的项目布局:
- .idea IDE相关的配置文件
- build.gradle.kts 主构建脚本,定义整个项目的构建设置
- settings.gradle.kts 确定项目中的子模块
- commonMain 共享的Kotlin源代码(跨平台)
- commonTest 共享的测试代码
- androidApp Android应用程序模块
- src
- main
- java Android Java或Kotlin源代码
- res Android资源文件
- iosApp iOS应用程序模块
- Xcode项目文件...
- jsApp JavaScript应用程序模块
- src
- main
- kotlin Kotlin/JS源代码
- jvmApp 桌面JVM应用程序模块
- src
- main
- kotlin JVM Kotlin源代码
- ...
commonMain和commonTest包含所有平台间共享的代码。androidApp,iosApp,jsApp,jvmApp等是特定平台的应用程序模块,包含该平台特有的代码和资源。
2. 项目的启动文件介绍
Compose Multiplatform 的启动文件取决于你正在运行哪个平台的应用。例如:
- Android: 在
androidApp/src/main/java中,你会找到一个名为MainActivity的类,它是应用的入口点。这里通常会初始化 Compose UI 并设置根布局。
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
// Compose UI的内容在这里定义
MyApplicationTheme {
// ...
}
}
}
}
-
iOS: iOS 应用的启动文件通常是在 Xcode 工程中创建的 Swift 文件,它负责初始化 Compose 钩子和其他必要的设置。
-
Desktop 和 Web: 启动文件是 JVM 或 JS 应用的主函数,比如
jvmApp/src/main/kotlin/Application.kt或jsApp/src/main/kotlin/Main.kt,它们会加载并运行 Compose UI。
3. 项目的配置文件介绍
build.gradle.kts
这是项目的主要构建脚本,包含了对编译器、依赖库、多平台构建等的配置。例如,它可能包含以下关键部分:
plugins {
id("org.jetbrains.kotlin.multiplatform") version "1.x.y"
}
kotlin {
android()
iosArm64()
iosX64()
js(BOTH) {
browser()
}
macosX64()
linuxX64()
windowsX64()
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.compose:compose-runtime:$composeVersion")
}
}
// 其他sourceSet配置...
}
}
plugins部分指定了使用的 Gradle 插件及其版本。kotlin块定义了支持的平台,如 Android、iOS、JavaScript、桌面等。sourceSets配置了各平台的源码依赖。
settings.gradle.kts
这个文件告诉 Gradle 项目中有哪些子模块。通常只需要将所有的子项目导入:
rootProject.name = "my-compose-project"
include("commonMain")
include("androidApp")
include("iosApp")
// 更多子项目...
通过这些模块,你可以理解 compose-multiplatform 项目的基本架构,并开始搭建自己的多平台 Compose 项目。记得根据实际项目需求调整配置。祝你编码愉快!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



