Android框架搭建Retrofit2+RxJava+Glide+MVP

github地址:点击跳转到Github

原因

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

如何使用And图片

下载下来改个包名直接当新项目就可以啦

这里写图片描述
这里写图片描述
这里写图片描述
本来不太需要上传图片 ,但不知道为什么就想传点。
数据来源是showapi 官网地址:ShowAPi

搭建过程

先介绍下用到的各种第三方库的版本号吧

都在一个.build文件中

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()
}

调用上代码的方法的代码

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.project"
        minSdkVersion 17
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    buildToolsVersion '26.0.2'
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //官方库
    implementation rootProject.ext.supportLibs
    //解析库
    implementation 'com.google.code.gson:gson:2.6.2'
    //RxJava
    implementation rootProject.ext.rxJavaLibs
    //Retrofit
    implementation rootProject.ext.retrofitLibs
    //Glide
    implementation rootProject.ext.glideLibs
    //SmartRefresh
    implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-1'
    //Leakcanary
    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
    //Log日志打印
    implementation 'com.orhanobut:logger:2.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    implementation project(':utilcode')
}

详细的东西可以在git上clone下来项目自己看看,

SmartRefreshLayout
很火的一个第三方下拉刷新上拉加载的第三方依赖库,
地址:SmartRefreshLayout

然后就是核心类

  • ApiService: 存放接口的类
  • RetrofitManager: 看名字就知道了 不多bb
    使用这个类方式也简单 :
RetrofitManager.getApiService()
                .getShowApiGifData(page,max_Results)
                .compose(new IoToMainTransformer());
  • MVP的三大基类(位于base包下)
    • IBasePresenter
    • IBaseView
    • BasePresenter
      使用方式在mvp包下。网上好多关于这方面文章 不太理解的自行google.

工具类

最后说下工具类,这个项目搭建的这么快主要就是工具类这个东东,很是发愁,本着死马活马医的本性在github上找到了一个依赖库,贼鸡儿全面的一个util工具类的库基本你能想到的都有,当我找到这个工具库的时候,ne脑海浮现的画面是一个抖音小哥的短视频,大家可以看看 :点我点我
github地址:AndroidUtil类
但是推荐大家下载下来代码放到项目里用,有什么自己的奇葩相关需求可以直接在代码里加,
比如什么Sp存登录信息,然后一键清空功能之类的。

尾语

该介绍的都介绍完毕了。项目现在只是初步搭建完毕,以后如果什么技术比较新,比较好的话我还是会替换现在的东西的,大家喜欢的话就star下我的项目噢,接下来的计划就是:

  • 写一个Progress的工具类,比较好多网络清请求都是点击按钮进行的。
  • 封装一个Glide加载图片的进度条
  • 选一个比较好的第三方RecyclerViewAdapter的工具库
  • 等等等等

当然大家也可以fork一起维护,或者给一些什么建议,为的就是能过实现快速上手写项目吗。人多力量大,毕竟博主的脑容量就这个,ne 也不是 爱因斯坦,思考的还是不够全面滴。

最后再发一遍项目地址:点ne(三声)点ne(三声)

猜你喜欢

转载自blog.csdn.net/a940659387/article/details/79700897