23 lines
949 B
Markdown
23 lines
949 B
Markdown
# ADR 0001:多模块 NIA 架构,feature 单模块(不做 api/impl 拆分)
|
||
|
||
- **状态**:已接受
|
||
- **日期**:2026-09-03
|
||
|
||
## 背景
|
||
|
||
项目从单模块 Compose 模板起步,需要确立可扩展、可测试、可维护的架构基础。
|
||
|
||
## 决策
|
||
|
||
采用 Google Now in Android(NIA)风格多模块架构:`app`(组合根)+ `core/*`(共享能力)+ `feature/*`(业务功能)。每个 feature 用**单模块**,不做 nowinandroid 的 `feature:*/api` + `feature:*/impl` 拆分。
|
||
|
||
## 理由
|
||
|
||
- 依赖方向单向、职责清晰,符合参考项目 `nowinandroid` 与 `app_device` 的共识。
|
||
- 团队规模小、feature 间共享少,api/impl 拆分会带来额外模块与样板,收益有限。
|
||
|
||
## 后果
|
||
|
||
- 约定插件 `mcl.android.feature` 预置 feature 通用依赖,新增 feature 只需一个插件声明。
|
||
- 若未来 feature 间需要稳定 API 边界,再引入 api/impl 拆分(成本可控)。
|