在 Compose Multiplatform 开发中,一个常见问题是缺乏现成可用的示例和方案。官方资源虽然提供了大量文档和示例,但缺乏详细的指导来说明如何按照最新指南轻松地开始使用 Compose Multiplatform。
为此介绍 可配置的 Compose Multiplatform 模板。
该模板在所有支持的平台上共享 99.9% 的功能(UI、业务逻辑等)。
该模板遵循以下一般原则:
- 底层架构简约、预配置且符合最新推荐指南
- 第三方依赖、组件、DevOps 实践和配置都是可选的,可以通过在线服务 Kotli 添加或排除
- 所有开箱即用的解决方案在所有支持的平台上都能无缝运行,旨在加速开发复杂且生产就绪的应用程序,在实施和支持阶段优先考虑简单性和效率
支持的平台:
- Android
- iOS
- Web (JS/Canvas)
- Desktop (Windows, MacOS, Linux)
使用方法
该模板是一个 Kotli 模板。
要生成所需的项目结构,请使用在线服务 Kotli(免费且仅需要网络连接)。
一旦你配置了必要的功能并生成了包含源代码的压缩包,你将获得一个可以直接导入 IDE 的完整项目结构,然后就可以开始添加所需的业务逻辑了。
该模板还包含所有必要的示例,以便轻松理解包含的功能。
运行你的项目以检查包含了哪些内容以及它们如何工作,一旦一切明了,就可以删除示例包和对它的任何引用。
架构
整体架构基于:
- Compose Multiplatform UI Framework
- Compose Multiplatform Images and resources
- Jetpack Compose
- Jetpack Navigation
- Jetpack Lifecycle + ViewModel
- Material 3 Design
- Koin Dependency Injection
应用逻辑在 app 模块中实现,仅包含特定于应用的行为。
所有通用逻辑都是共享组的一部分,分为三个模块:
presentation
— 用于集成应用组件的架构解决方案data
— 应用中使用的数据源design
— 应用的设计系统(字体、主题、UI组件等)
这些模块仅在应用层面使用。这种方法让你能够独立开发这三个组件,并创建更复杂的应用结构。例如,特定于应用的功能可以作为单独的模块实现,具有相同的共享依赖。
模块 — presentation
提供架构解决方案以实现用户流程,并以生命周期感知的方式集成所有组件。
包括:
- MVVM 模式实现 — 基于
Jetpack ViewModel
和Jetpack Lifecycle
组件 - 导航实现 — 基于 Jetpack
Navigation
组件
包含的解决方案不是强制性的,因为所有必需的依赖都已正确包含,使你能够使用自己的模式和 Jetpack 组件。
然而,提供的实现非常直观易用,并涵盖了各种真实场景中组件之间通信的所有可能情况。
你可以自由选择最适合你需求的方案。
模块 — data
为不同应用中常用的数据源提供基础实现。在通过 Kotli 进行项目设置时,只会包含所需的数据源。
所有数据源都已配置为以灵活和便捷的方式访问必要的数据层。
模块 — design
提供预配置的主题、字体和 UI 组件,以建立整个应用的初始设计系统。
默认模块实现基于 Google Material 3 Design,它提供了所有基础 UI 组件和指南,让你能够轻松创建自己的设计系统。
除了 Material 3 库外,该模块还实现了在不同用户流程中使用的多个组件和容器。
这个模块的主要理念是创建一个设计系统,可以被应用的任何 UI 功能使用,而不依赖于底层 UI 工具包。
该模块中现有的可组合项是示例,可以根据你的需求进行更改/删除。
模块 — app
应用模块本身包含:
- 使用依赖注入(默认为 Koin)将所有包含的组件正确连接在一起的逻辑
- 用于演示项目设置期间包含的一些功能的示例
一旦你下载并将初始项目结构导入到 IDE 中,项目就可以在设备上运行,使你能够理解包含的功能并开始添加所需的功能。
文档
一旦你通过 Kotli 配置了项目并下载了生成的源代码,这个项目就完全属于你,不再与服务绑定。每个项目的根目录都包含一个 README.MD
文件,其中包含以下有用的详细信息:
- 用于准备项目结构的初始模板链接(类似本文的 GitHub 页面)
- 用于准备和下载这些源代码的架构链接(Kotli 项目)
- 在项目设置期间包含的所有功能列表。每个功能在项目的 docs 目录中都有额外的文档,便于检查包含了什么,找到官方链接,并了解如何使用和配置每个功能(如果需要)
一旦你打开 Kotli 项目的链接,所有与功能相关的最新文档也可以在线访问和查阅。
示例展示
当通过 Kotli 配置和下载项目时,它还提供了所有包含功能的示例。此外,示例界面被配置为下载模板运行时的初始界面。
该模板具有高度可配置性,允许你仅在应用中包含必要的功能。
所有这些功能都是可选的,将随时间更新,并可以在项目设置期间包含在生成的结构中。
所有功能都可以在这里找到,并会随时间更新 — Github README.md#features。