简介
本我的项目是一个学习类型的我的项目,次要是为了学习一些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