Android MVP+Retrofit+dagger2+RxA

作者: hwj3747 | 来源:发表于2016-12-14 16:25 被阅读1454次

    作者:hwj3747
    转载请注明

    目录

    说明

    Android MVP+Retrofit+dagger2+RxAndroid这是目前比较流行的一套Android开发框架,我所使用的这个框架还结合了,lambda,icepick,以及butterknife下面简要介绍一下这些东西。

    MVP模式:主要实在传统的MVC模式上新增了一层presenter,作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。
    Retrofit:是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的。
    dagger2:简而言之就是一套Android上使用的依赖注入框架。
    RxAndroid:RxJava的Android版,是一套实现异步的框架。
    lambd表达式:用来代替匿名的内部类,让代码变的简单、而且可读、最重要的是代码量也随之减少很多。
    icepick:对activity以及fragment 的状态的保存和恢复。
    butterknife:这个开源库可以让我们从大量的findViewById()和setonclicktListener()解放出来,并且使用Android Butterknife Zelezny插件可以快速生成XML文件的各种控件对应java代码。

    下面是对整个框架的配置

    首先在工程目录下的build.gradle文件下配置lambda与dagger2的classpath

    buildscript {    
    repositories {      
      jcenter()    
    }    
    dependencies {     
       classpath 'com.android.tools.build:gradle:1.3.0'     
       classpath 'me.tatarka:gradle-retrolambda:3.2.2'//lambda配置  
       classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'//dagger2远程工具地址配置     }
    }
    

    然后配置icepick的仓库位置,其中https://jitpack.io 是个人的依赖库仓库位置

    allprojects {   
     repositories {       
     jcenter()       
     mavenCentral()        
     maven { url "https://clojars.org/repo/" }//icepick配置       
     maven { url "https://jitpack.io" }  
      }
    }
    

    在app目录下的build.gradle下,在顶部配置lambda,以及dagger2配置。

    apply plugin: 'com.android.application'
    apply plugin: 'me.tatarka.retrolambda'//lambda
    apply plugin: 'com.neenbedankt.android-apt'//dagger2
    

    然后是lambda java8的配置,电脑的java开发环境必须是java JDK8.0版本以上。

    android { 
       compileOptions {       
     sourceCompatibility JavaVersion.VERSION_1_8      
      targetCompatibility JavaVersion.VERSION_1_8    }//lambda
    }
    

    最后是对所有使用到的框架的依赖引入

    dependencies {    
    
    apt 'com.google.dagger:dagger-compiler:2.0'//使用apt build dagger-compiler编译器    
    provided 'org.glassfish:javax.annotation:10.0-b28'//必须配置,dagger缺少 javax.annotation包   
    compile 'com.google.dagger:dagger:2.0'//dagger2配置,依赖注入,实现单例模式,解耦MVP架构  
    
    compile 'io.reactivex:rxjava:1.0.14'    
    compile 'io.reactivex:rxandroid:1.0.1'//rxandroid 配置,实现异步操作    
    
    // compile 'com.squareup.retrofit:retrofit:1.9.0'//retrofit配置,链接网络的库 
    compile 'com.squareup.retrofit2:retrofit:2.0.2' 
    compile 'com.squareup.retrofit2:converter-gson:2.0.2' 
    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2' 
    compile 'com.squareup.okhttp3:logging-interceptor:3.2.0' 
     
    compile 'frankiesardo:icepick:3.1.0'    
    apt 'frankiesardo:icepick-processor:3.1.0'//icepick配置,用来保存和恢复状态    
    
    compile 'com.jakewharton:butterknife:6.1.0'//butterknife配置,使用Android Butterknife Zelezny插件,简化findViewById()和setonclicktListener()}
    

    github地址:这里

    相关文章

      网友评论

      • yunhen:依赖的都不是新版啊😅
        hwj3747:@追风917 写了个简易测试版上去了,可以看一下
        妙法莲花1234:不是最新版,我的强迫症啊啊啊, 没有开源吗?GitHub地址?
        hwj3747:@yunhen 以前项目的配置直接拿过来的~ 还没有做升级 :smile:

      本文标题:Android MVP+Retrofit+dagger2+RxA

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