用途:Compose Multiplatform 是面向 Android、iOS、Desktop 与 Web 的声明式 UI 框架,通过共享代码实现跨平台界面。本技能覆盖共享 UI 组件、主题、资源与平台特定适配。
主要能力:
- 多平台构建配置:在 build.gradle.kts 中启用 kotlinMultiplatform、androidLibrary、composeMultiplatform、composeCompiler 插件,声明 androidTarget、iosX64、iosArm64、iosSimulatorArm64、jvm("desktop") 与 wasmJs { browser() } 目标,并在 commonMain 引入 compose.runtime、foundation、material3、components.resources、components.uiToolingPreview。
- 资源管理:在 src/commonMain/composeResources 下组织 drawable、drawable-dark、font、values、values-ru、files 等目录;用 strings.xml 定义多语言字符串,通过 Res.string、Res.drawable、Res.font 与 Res.readBytes 访问。
- 主题:定义 DarkColorScheme/LightColorScheme、AppTypography、AppShapes,并用 AppTheme 包裹内容。
- 组件模式:提供 AppButton、AppCard、LoadingContent、ErrorContent 等可复用组件,以及 HomeScreen 的加载/错误/成功状态处理。
- 平台适配:使用 WindowInsets.safeDrawing 处理安全区域,通过 expect/actual 实现 BackHandler,用 BoxWithConstraints 做自适应布局。
- 入口点:分别给出 Android(MainActivity)、iOS(MainViewController)、Desktop(application/Window)、Web WASM(CanvasBasedWindow)的启动方式。
使用方式:按资料中的 Gradle 配置与目录结构组织项目,在 commonMain 编写共享 composable,平台差异用 expect/actual 或 sourceSet 处理。
适用场景:需要一套代码覆盖移动、桌面与 Web 的跨平台 UI 项目。
限制:资料未提供版本要求、性能数据、收费信息或具体平台兼容性细节;部分 API 如 ExperimentalWasmDsl 需注意实验性标注。