MVP+Retrofit+dagger2+RxAndroid框架整合项目配置 [复制链接]

2017-9-4 15:56
kengsirLi 阅读:1686 评论:1 赞:1
Tag:  

说明

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




分享到:
我来说两句
facelist
您需要登录后才可以评论 登录 | 立即注册
所有评论(1)
kengsirLi 2017-9-7 14:43
沙发自己坐
回复

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )