先上效果图

xgt.gif
已实现功能
v1.0.0
| 功能 | 完成状态 |
|---|---|
| 首页列表、顶部广告 | ☑ |
| 用户输入文字搜索、热门搜索、历史记录 | ☑ |
| 根据类别显示项目列表 | ☑ |
| 广场、每日一问、体系、导航 | ☑ |
| 公众号文章列表 | ☑ |
| 文章详情 | ☑ |
| 文章详情加入收藏、分享 | ☑ |
| 我的、 我的收藏 | ☑ |
| 换皮肤 | ☑ |
架构
项目采用基于单向数据流和唯一数据源的MVI架构
- 以数据库数据作为唯一数据源
- 以用户
intent作为数据流起点进行单向流动- 用户操作以
Intent的形式通知Model -
Model基于Intent更新UiState -
View接收到UiState变化刷新UI
- 用户操作以
遵循Android Architecture Components
-
界面层(UI Layer)
- APP内实现:视图(Activity/Fragment等) + 数据驱动及处理逻辑的状态容器(ViewModel等)
-
网域层(Domain Layer) 可选项,用于处理复杂逻辑或支持可重用性吗,当你需要从不同数据源获取数据时如需要同时从数据库和接口请求数据时,推荐使用UseCase进行组合。
- App内实现:组合或复用数据源(UseCase)
-
数据层(Data Layer)
- App内实现:数据源(Repository)
简介
- 网络层采用
Retrofit + 协程的方式获取来自网络的数据 - 图片加载采用
coil框架,其使用简便且轻量。加载图片只需调用其拓展函数imageView.load("https://www.example.com/image.jpg") - 用户数据缓存采用腾讯的
MMKV - 界面采用
jetpack navigation 的单activity + 多fragment - 列表数据加载采用
jetpack paging3 - ...