模块化设计
介绍
HarmonyKit 采用三层多模块结构,目的不是把工程拆得更复杂,而是让职责更清晰、扩展更可控。框架将核心能力、业务基础设施与业务功能分离,便于按需组合与独立演进。
模块划分原则
- 框架能力集中在 core:基类、设计系统、导航框架、通用模型、UI 组件等基础能力在一个稳定层内维护,不包含任何业务逻辑。
- 业务基础设施放在 foundation:业务模型、业务路由、业务状态、数据源和仓库等业务相关的基础能力在此层维护。
- 业务功能放在 feature:页面与业务流程按模块组织,避免把业务逻辑塞进基础层。
- 入口清晰:
entry只负责应用启动与路由入口,不承载业务逻辑。
目录结构
AppScope/ # 应用配置
entry/ # 应用入口模块
core/ # 框架核心层(无业务依赖)
│ ├── base/ # ViewModel 基类
│ ├── designsystem/ # 设计系统
│ ├── ibestui/ # IBest UI 组件库封装
│ ├── model/ # 通用数据模型
│ ├── navigation/ # 导航框架
│ ├── result/ # 结果封装
│ ├── state/ # 框架级状态(断点、安全区等)
│ ├── ui/ # 通用 UI 组件
│ └── util/ # 工具类
foundation/ # 业务基础设施层
│ ├── biz_model/ # 业务数据模型
│ ├── biz_navigation/ # 业务路由导航
│ ├── biz_state/ # 业务状态管理
│ ├── database/ # 数据库数据源
│ ├── datastore/ # 本地存储数据源
│ ├── network/ # 网络数据源
│ └── repository/ # 仓库层(聚合数据源)
feature/ # 业务功能层
│ ├── auth/ # 认证模块
│ ├── demo/ # 示例模块
│ ├── main/ # 主模块
│ └── user/ # 用户模块模块边界建议
core 层
- 仅提供可复用的框架能力,不承载任何业务流程。
- 可单独迭代演进,复用到其他项目,零外部依赖。
foundation 层
- 提供业务相关的基础能力,是 core 与 feature 之间的桥梁。
- 定义业务模型、业务路由、业务状态。
- 实现数据源(网络、数据库、本地存储)和仓库。如对接后端接口、mock数据等。
- 只依赖 core,不依赖 feature。
feature 层
- 只依赖 foundation 和 core,不直接依赖其他业务模块。
- 通过 repository 访问数据,不直接调用数据源。
- 业务模块之间保持隔离,避免交叉依赖。
entry 层
- 只聚合入口与路由,不引入具体业务实现。
- 负责初始化和注册各模块路由。
新增模块流程
以下示例以创建 goods 模块为例,演示在 DevEco Studio 中新增模块的操作流程。
新增 feature 模块
- 在
feature/目录上点击右键,选择 New -> Module...。

- 在模板选择界面选择 Static Library,点击 Next。

- 填写模块名称(如
goods)与设备类型,点击 Finish 完成创建。

按照 feature 层目录规范创建
navigation/、view/、viewmodel/等目录。在
entry模块中注册新模块的路由图。
新增 foundation 模块
如需新增业务基础设施模块(如新的数据源),在 foundation/ 目录下按相同流程创建。