文章目录
- 架构原则
- 架构分层
- 关于DomainLayer
- 架构选型参考
- JetPack架构组件
- 参考网站
架构原则
-
UI和数据分离,不要将所有代码写在Activity和Fragment里面
-
数据驱动UI,最好是持久性数据模型
-
单一数据源,集中修改数据,比如基于DatabaseSource,ViewModel等
-
单向数据流,界面状态修改向单个方向流动,数据修改事件朝相反方向流动
架构分层
- UI Layer(UI Element + UI State Holder)
- Data Layer(Data Repository + Data Source)
- Domain Layer(UseCase,Optional)
关于DomainLayer
领域层,可选层,当特定功能代码较多,或者复用性较强时
可以将其抽取封装层DomainCase类,从而可以在多个UiStateHolder和DataRepository中共享
架构选型参考
- ViewModel + UiState + StateFlow/ComposeState
- UseCase + DataRepository + DataSource(Remote+Local)+ DAO
- Coroutine + Flow + Room + Retrofit
- Compose + Navigation + Paging
JetPack_28">JetPack架构组件
- Navigation:界面导航
- ViewPager:轮播图
- Paging:分页加载
- Room:数据库
- DataStore:数据存储
- Hilt:依赖注入
- WorkManager:持续性任务调度
参考网站
- https://developer.android.com/topic/architecture
- https://developer.android.com/topic/architecture/ui-layer
- https://developer.android.com/topic/architecture/domain-layer
- https://developer.android.com/topic/architecture/data-layer
- https://developer.android.com/topic/architecture/data-layer#common-tasks
- https://developer.android.com/topic/architecture/data-layer/offline-first