简介
本我的项目是一个学习类型的我的项目,次要是为了学习一些 Android 最新的思路和开发思维,工程依照模块化、组件化的开发思路进行开发,我的项目整体构造如下图。
我的项目代码整洁标准,构造清晰,应用 Android 最新的开发思维和技术,同时集成 React-Native 跨平台,次要是为了试验热更性能,波及到的技术有如下一些:
- 应用 kotlin 语言开发,我的项目应用模块化开发,升高了耦合性;
- 网络应用 retrofit2 + okhttp3 形式,进行了高度的封装;
- leakcanary 内存透露检测
- 基于 MVI 架构 airbnb 的 Mavericks
- 本地 mock
- alibaba ARouter
- 集成 RN 热更性能,用户须要关上 rn 加载页面,rn 工程请见
体验
- Apk 下载链接:Apk 下载链接
-
Apk 二维码
局部成果如下:
MVI 架构
因为没有明确的状态治理规范,随着应用程序的增长或增加性能或当时没有打算的性能,视图渲染和业务逻辑可能会变得有点凌乱,并且这种状况常常产生在 Android 利用开发过程中。可能你常常遇到状态治理导致业务逻辑和 UI 渲染的分工不明确,最终导致利用架构的凌乱。而新提出的 MVI 架构,提倡一种单向数据流的设计思维,非常适合数据驱动型的 UI 展现我的项目。MVI 的架构思维来源于前端,因为 Model、View 和 Intent 三局部组成。
- Model:与其余 MVVM 中的 Model 不同的是,MVI 的 Model 次要指 UI 状态(State)。以后界面展现的内容无非就是 UI 状态的一个快照:例如数据加载过程、控件地位等都是一种 UI 状态
- View:与其余 MVX 中的 View 统一,可能是一个 Activity、Fragment 或者任意 UI 承载单元。MVI 中的 View 通过订阅 Intent 的变动实现界面刷新(不是 Activity 的 Intent、前面介绍)
- Intent:此 Intent 不是 Activity 的 Intent,用户的任何操作都被包装成 Intent 后发送给 Model 进行数据申请
用到的第三方库
库 | 性能 |
---|---|
retrofit2 | 网络 |
okHttp3 | 网络 |
mavericks | MVI 框架 |
BaseRecyclerViewAdapterHelper | 万能适配器 |
PhotoView | 图片预览 |
ARouter | 组件化路由 |
coil | 图片加载 |
XPopup | 弹窗组件 |
banner | 滚动图 |
SmartRefreshLayout | 智能下拉刷新框架 |
gson | json 解析 |
leakcanary | 内存透露检测库 |
附件:https://github.com/GuoguoDad/jd_mall