Android框架

By | 五月 17, 2019

github地址:点击跳转到Github

原因

  • 为了方便以后项目的使用
  • 项目中用的都还是比较古老的东西,mvc,volley等,搭建的过程中也学习一下新技术.

组成

  • 采用MVP模式
  • 集成butterknife(推荐跟Butterknife Zelezny 配合使用)
  • BRAVH(点我查看具体使用方式
  • RxJAVA+Retrofit2+Glide
  • SmartRefreshLayout(点我查看使用) 个人比较喜欢用SwipeRefresh
  • Material Dialog(点我查看使用) 推荐以model方式导入
  • Gson 解析(推荐配合GsonFormat使用)
  • 屏幕适配采用Smallest Width(最小宽度)

使用

下载下来改个包名直接当新项目就可以啦
这里写图片描述
这里写图片描述
这里写图片描述
时间太长了 现在可能已经没有图片跟这个笑话了 应该是申请的key过期了

详细介绍

主要依赖

ext{

    dependVersion = [
            rxJava          : "2.1.11",
            rxAndroid       : "2.0.1",
            retrofit        :  "2.4.0",
            glide           : "4.6.1",
            support_version : "27.0.2"
    ]
    supportLib=[
            v7              : "com.android.support:appcompat-v7:$dependVersion.support_version",
            design          : "com.android.support:design:$dependVersion.support_version",
            recyclerview    : "com.android.support:recyclerview-v7:$dependVersion.support_version",
            cardview        : "com.android.support:cardview-v7:$dependVersion.support_version",
            annotations     : "com.android.support:support-annotations:$dependVersion.support_version"
    ]

    rxJava = [
            rxJava          : "io.reactivex.rxjava2:rxjava:$dependVersion.rxJava",
            rxAndroid       : "io.reactivex.rxjava2:rxandroid:$dependVersion.rxAndroid"
    ]
    retrofit=[
            retrofit        : "com.squareup.retrofit2:retrofit:$dependVersion.retrofit",
            retrofit_gson   : "com.squareup.retrofit2:converter-gson:$dependVersion.retrofit",
            retrofit_rxjava : "com.squareup.retrofit2:adapter-rxjava2:$dependVersion.retrofit",
            retrofit_log    : "com.squareup.okhttp3:logging-interceptor:3.4.1"
    ]
    glide=[
            glide           :"com.github.bumptech.glide:glide:$dependVersion.glide",
            glide_ok        :"com.github.bumptech.glide:okhttp3-integration:$dependVersion.glide",
    ]
    glideCompiler ="com.github.bumptech.glide:compiler:$dependVersion.glide"//没什么必要  只写上不引用

    rxJavaLibs = rxJava.values()
    retrofitLibs = retrofit.values()
    glideLibs = glide.values()
    supportLibs = supportLib.values()
}

MVP的三大基类(位于base包下)

  - IBasePresenter 
  - IBaseView
  - BasePresenter

使用方式在mvp包下。网上好多关于这方面文章 不太理解的自行google.(对于mvp 每个技术人的理解都不一样,只要能达到完美解耦就可以,不用过于追求同步)

Util类介绍

  • DisplayUtils: 获取屏幕尺寸 dp2sp 等;
  • EncodeUtils: 编码类。utf-8的转码解码等
  • GlideUtils: 把图片加载封装起来。
  • MaterialDesignDialogUtils: 把几个比较通用的弹窗封装起来;
  • SPUtils: 顾名思义 sp存储类;
  • StatusBarUtil:状态栏的设置类;
  • ToastManager: 封装了toast跟snackBar;
  • 其他后续添加。

尾语

时代再进步,现在的时代已经不是一个人单干的时代了,要紧跟时代的步伐,能站在巨人的肩膀上就站在巨人的肩膀上,所以很多这个很多都是将各种最实用的第三方库搭建到一起,对于变动比较大的,推荐以model方式集成到项目中,如:material-dialogs 或者相册选择之类的。

项目会继续更新的 伴随google的io大会新技术同步更新。

最后再发一遍项目地址:点我直达

Github下载地址