1 Star 0 Fork 0

张芃/JetpackMvvmExample

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

JetpackMvvmExample

An android mvvm app Example with jetpack.

这是一个使用了Jetpack的 组件化/模块化 的APP快速搭建框架。

主要使用到的依赖 :

#arouter 路由框架 各个模块之间的路由
AROUTER_API=com.alibaba:arouter-api:1.3.1
AROUTER_COMPILER=com.alibaba:arouter-compiler:1.1.4
#retrofit 网络请求框架
Retrofit=com.squareup.retrofit2:retrofit:2.5.0
Retrofit_Gson=com.squareup.retrofit2:converter-gson:2.5.0
room_version=2.2.5
#XLog 用于日志
XLOG=com.elvishew:xlog:1.6.1
#Glide 
GLIDE=com.github.bumptech.glide:glide:4.8.0
GLIDE_ANN=com.github.bumptech.glide:compiler:4.8.0
#Gson
#BaseQuickAdapter
#...

模块化

app模块作为最重要的模块包含了启动和基本业务逻辑的控制功能。其他的模块被app模块引用,其他的模块只需要考虑自己单独的业务,这样做到业务逻辑和代码的分离。

在AS中,module的引用是单向的。如果A module引用了B module,那么对A来讲,B是可见的,B的所有公开功方法理论上都可以在A中使用,但是对B来说,A是不可见的。所以,相面这样的结构出现的问题就是我们有大量的底层通用方法都放在app模块中,对于子模块来讲是不可见的,子模块无法引用封装好的底层方法,例如网络请求,图片加载,文件拷贝等。

按照module单向引用的原则,我们可以把公共底层通用方法单独分出来作为一个moduleBase,同时这个moduleBase也是最底层的module,保证对于其他module来说它都是可见的。这样还有一个好处就是这个moduleBase中的方法和配置大部分都是可以高度复用的。在新开其他项目的时候这个模块可以直接迁移到新项目中,而不用在为代码分离和剔除浪费时间。所以,项目的结构进一步细化成了如下的结构:

img

作者:RunningBun 链接:https://www.jianshu.com/p/748bf621a9a0 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

空文件

简介

An android mvvm app Example with jetpack 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/zhangpeng_git/JetpackMvvmExample.git
git@gitee.com:zhangpeng_git/JetpackMvvmExample.git
zhangpeng_git
JetpackMvvmExample
JetpackMvvmExample
main

搜索帮助