美文网首页
Android框架搭建Retrofit2+RxJava+Glid

Android框架搭建Retrofit2+RxJava+Glid

作者: 小于先森 | 来源:发表于2018-03-26 18:40 被阅读140次

    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(三声)

    相关文章

      网友评论

          本文标题:Android框架搭建Retrofit2+RxJava+Glid

          本文链接:https://www.haomeiwen.com/subject/pkzrcftx.html