Android技术分享交流区开源项目Android技术知识

Android MVP+Retrofit+dagger2+RxA

2016-12-14  本文已影响1454人  hwj3747

作者: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地址:这里

上一篇下一篇

猜你喜欢

热点阅读