949 B
949 B
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 拆分(成本可控)。