简介

本我的项目是一个学习类型的我的项目,次要是为了学习一些Android最新的思路和开发思维,工程依照模块化、组件化的开发思路进行开发,我的项目整体构造如下图。

我的项目代码整洁标准,构造清晰,应用Android最新的开发思维和技术,同时集成React-Native跨平台,次要是为了试验热更性能,波及到的技术有如下一些:

  1. 应用kotlin语言开发,我的项目应用模块化开发,升高了耦合性;
  2. 网络应用 retrofit2 + okhttp3形式,进行了高度的封装;
  3. leakcanary 内存透露检测
  4. 基于MVI架构airbnb的Mavericks
  5. 本地mock
  6. alibaba ARouter
  7. 集成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网络
mavericksMVI框架
BaseRecyclerViewAdapterHelper万能适配器
PhotoView图片预览
ARouter组件化路由
coil图片加载
XPopup弹窗组件
banner滚动图
SmartRefreshLayout智能下拉刷新框架
gsonjson解析
leakcanary内存透露检测库

附件:https://github.com/GuoguoDad/jd_mall