View Code? Open in Web Editor
NEW
This project forked from dingjiaxing/ecommall
EComMall/ECom商城是一个基于MVP+dagger+arouter实现的android商城
ecommall's Introduction
- ECom商城是一个基于MVP+dagger+arouter实现的android商城,开发模式采用了MVP+dagger,组件间路由采用arouter,
网络通信使用了okhttp+retrofit+rxJava2,配置存储采用MMKV,数据传递采用EventBus,图片加载使用glide,
可用于android中级及以上学习此架构、android团队直接参考此架构进行开发。
- 架构设计文档
- 项目特点
- 组件化:层次清晰,模块间耦合度较低,易于管理的维护
- MVP:功能清晰,添加或修改功能方便,将model和view层完全分离
- dagger:更好地依赖管理、规范代码、提高解偶能力
- webview独立进程:更优秀的性能
- rxJava2: 异步和链式操作
![arch](/doc/img/arch.jpg)
- 通用组件,又称业务无关组件,根据来源分为开源库和基础组件库,开源库是我们在项目中经常会用到的第三方库,比如okhttp、rxJava等,基础组件库是我们自己定义的和业务无关的组件,主要包括BaseMvp、工具类、自定义的Widget、http等
- 业务组件,和业务相关的组件
- lib_push: 推送组件,负责推送服务
- lib_share: 第三方分享
- lib_im: 即时聊天的服务
- lib_webview: 独立进程webview,用于和h5之间进行交互
- 业务模块,根据业务的联系紧密程度来拆分
- module_main: 首页模块,包括启动页、欢迎页、首页等;
- module_goods: 商品模块,包括商品分类、商品详情、商品搜索等;
- module_user: 用户模块,包括个人中心、登录等;
- module_order:订单模块,包括订单确认、订单列表等;
- module_msg: 消息模块,包括客服消息等;
- APP壳,是app的入口模块,包括manifest配置、加载各个模块、打包配置等,基于应用安全考虑,通过调用C层的加密方法将业务模块加密
- 独立进程webview;
- im;
- UI: 购物车、首页;
- lib_push;
- 知乎 Android 客户端组件化实践
- 浅谈项目架构重构之路——组件化与MVP
- 架构师的思维,聊一聊APP组件化的那些事儿 备用
- WanAndroid架构源码
- 仿京东app
- MVPArms
- Android WebView独立进程解决方案 github地址
ecommall's People
Watchers