前面说了RxJava 与Retrofit的基本用法,但是没用做优化的处理.本篇先做一个优化处理,然后再结合前面的MVP 设计模式,把这些知识贯穿到一个Demo 之中,方便大家理解....onFailure(Throwable e, String errorMsg) { } }); 接下来我要说的 就是MVP...设计模式 下 请求网络获取商品列表并展示的过程了 这个是效果图 就是请求网络并获取商品列表的功能 根据之前 MVP 设计模式,外加RxJava+Retrofit 网络请求 整合在一起 mvp 接口管理类....client(client) .baseUrl(Constant.IP) .addCallAdapterFactory(RxJava2CallAdapterFactory.create
最近做项目都是接别人的二手项目,发现都是MVP设计模式,感觉自己欠下了2017年的技术债,所以有必要写一篇关于MVP设计模式的博客了,在写这篇博客之前,我想了挺久的,MVP这种文章一百度一大堆,也不知道自己写的怎么样...说道MVP 那必须先说一下MVC MVC设计模式 在 MVC 架构中,View 产生事件,通知到 Controller,Controller 中进行一系列逻辑处理,之后通知给 Model 去更新数据,Model...MVP设计模式 不知道为啥很多人都在用MVP ,具体这东西哪里香 各有各的道理.个人觉得它的优势并不明显. 优点: 结构清晰,职责划分清晰,模块间充分解耦,有利于组件的重用....增大代码结构复杂性 MVP 和 MVC 最大的不同,就是 View 和 Model 不相互持有,都通过 Presenter 做中转。...如果嫌手动写model Presenter contract(MVP管理类) 麻烦可以借助工具去实现,这里推荐一个插件MVP Helper 非常好用 使用的时候也很简单 然后直接生成目录 介绍完这插件该说一下
说道RxJava+Retrofit 的组合 大家基本不陌生,先介绍一下Retrofit Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp...Retrofit的使用 先简单介绍一个网络请求的例子,注解之类的放在后面去说 (1) 添加Retrofit库的依赖 implementation "io.reactivex.rxjava2:rxjava...关于文件 我采用的是 @Part MultipartBody.Part public interface IInfo { @Multipart @POST("android...(RxJava2CallAdapterFactory.create() 这个是用来决定你的返回值是Observable还是Call 如果返回为Call那么可以不添加这个配置。...} } ); 跟上面的相比感觉也没差多少,剩下的就是封装以及优化处理了,再把前面的MVP
最近出去面试,总会被问到我们项目现在采用的什么开发框架,不过据我的经验网络框架(volley)+图片缓存(uIl)+数据库(orm)+mvp,不过现在这套框架比较好了,现在采用什么呢?...Rxjava + retrofit + dagger2 + mvp。好,那我们接下来说说由这几种库来组成我们一个常用的开发框架(当然其他的还有一些什么推送什么的我们另当别论)。...借用google的一个MVP的说明图 项目总览 ?...与常规的 MVP 不同的是,在 modle 层和 view 层通过EventBus 连接,当数据发生变化时,发出对应的 event,注册了这个 event 的 view会采取对应的措施。
刚好后台有很多朋友想学习MVP+Retrofit+RxJava的一些组合,这里给大家找了一些文章,比较适合目前还不太了解的同学: 带你高效学习MVP+RxJava+Retrofit http://www.jianshu.com.../p/c81c48144029 Android 教你一步步搭建MVP+Retrofit+RxJava网络请求框架http://www.jianshu.com/p/7b839b7c5884 MVP+Retrofit.../p/426864584518 MVP+Retrofit+Rxjava在项目中实战解析https://juejin.im/post/596eb0faf265da6c322e0e3d MVP + Retrofit...+ RxJava 优雅的实现http://lovehaodong.cn/2017/04/12/Android%20%E6%9E%B6%E6%9E%84/ Retrofit+Rxjava+Okhttp+...MVP搭建Android开发框架一 http://t.cn/RYe617d Retrofit-Rxjava-Okhttp-MVP搭建Android开发框架二 http://t.cn/RYe6gRA 刚好是周五
整合了Rxjava +retrofit+mvp,写完了迫不及待的分享出来了,打算以后的开发都用这个,太强大了,另外OKhTTP用了网络缓存,非常的方便,以后写缓存都不需要写本地数据库了。...在工程中build.GRADLE导入: dependencies { classpath 'com.android.tools.build:gradle:2.1.0'...JavaVersion.VERSION_1_8 } } 这样就可以在android下使用拉姆达表达式。...关于Rxjava的用法, 翻译的Rxjava中文文档 本文是一个整理好的RxJava+retrofit+Mvp的例子。...", "public, only-if-cached, max-stale=" + maxStale) .build(); } }; 在MVP
Android使用RxJava+Retrofit2+Okhttp+MVP练习的APP 项目截图 这是我的目录结构 五步使用RxJava+Retrofit2+Okhttp+RxCache...Android中也可以说采用了当前比较流行的MVC框架,在Android中: 1) 视图层(View):一般采用XML文件进行界面的描述,使用的时候可以非常方便的引入,但是用xml编写了,又需要在...2) 控制层(Controller):Android的控制层的重任通常落在了众多的Acitvity的肩上,要通过Activity交割Model业务逻辑层处理,这样做的另外一个原因是Android中的Acitivity...MVP MVP 就是基于MVC 的模式上的一个演化版本。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了View,同时也包含一些Controller的东西在里面。...如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试) 首页是Model层:业务逻辑和实体模型,所以Model层我只放业务逻辑 public class HomeFragmentModel
Android使用RxJava+Retrofit2+Okhttp+MVP练习的APP 项目截图 这是我的目录结构 五步使用RxJava+Retrofit2+Okhttp+RxCache 第一步:导包...Android中也可以说采用了当前比较流行的MVC框架,在Android中: 1) 视图层(View):一般采用XML文件进行界面的描述,使用的时候可以非常方便的引入,但是用xml编写了,又需要在...2) 控制层(Controller):Android的控制层的重任通常落在了众多的Acitvity的肩上,要通过Activity交割Model业务逻辑层处理,这样做的另外一个原因是Android中的Acitivity...MVP MVP 就是基于MVC 的模式上的一个演化版本。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了View,同时也包含一些Controller的东西在里面。...如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试) 首页是Model层:业务逻辑和实体模型,所以Model层我只放业务逻辑 public class HomeFragmentModel
MVP 简化Activity,以接口的方式实现M层和V层的交互,所以在定义接口前一定要先想好业务逻辑,这样接口写起来也比较便捷,不然的话就是写着写着,诶少个接口啊,然后回来又写个接口,这样的情况一次还好...Retrofit 其实是对OkHttp的封装,官网是这样介绍的:A type-safe HTTP client for Android and Java。...一个类型安全的用于Android和Java网络请求的客户端。 RxJava 异步、简洁,链式的写法使逻辑看起来更加清晰。...Demo地址:https://github.com/yechaoa/RxJavaRetrofitMVPDemo 相关资料 MVP:Android MVP模式实战 Retrofit:Retrofit2.0...使用详解 RxJava: RxJava图文详解,可以说是很全了。
此博文根据前面两篇文章 Android MVP 架构初试 Android MVP 架构封装 再结合主流框架Retrofit2+Rxjava来个实践(实现聚合网周公解梦) 源码地址RxMVP 项目截图...Retrofit2+Rxjava 封装 JuHeService 数据请求接口 /** * 请求示例: * http://v.juhe.cn/dream/query * q:梦境关键字,如:黄金 需要...MVP 架构封装 Retrofit2+Rxjava+MVP实践 MvpView public interface MvpView extends BaseView { //ListView的初始化...> android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com.../tools" android:layout_width="match_parent" android:layout_height="match_parent" android:
适合团队的框架才是好的框架 1.项目简介 本项目是基于kotlin + Mvp + Rxjava + Retrofit 封装的轻量级模板项目。项目没有过多冗余的依赖, 适用于快速开发以及新手练手。...│ ├── glide 图片加载框架 │ ├── net 网络请求框架配置 │ ├── rx rxjava...配置 │ ├── mvp │ │ └── contract view和presenter实现方法接口 │ │ └── model 数据加载层 │...├── gradle ├── build.gradle ├── settings.gradle 3.图解 4.技术选型 MvpArms KotlinMvpTemplate Mvp...+Rxjava+Retrofit+Dagger+组件化 Kotlin+Mvp+Rxjava+Retrofit 使用方便,还有一键生成工具,冗余代码过多,不适合快速开发 使用方便
为了准备春招,整理了some流行技术,大概是去年5,6月份开始在知乎上看到,后面了解到google早在github上开源了Android开发三种开发模式:MVC ,MVP,MVVM,其中关于这三种对于具体需求来说有不同变体...(吼吼~~有不对的地方请指出==) 现在要介绍的是MVP+RxJava+Retrofit这种开发模式,那进入正题前,需要了解下前面的三个技术。别着急,一个一个来说? ...MVP模式介绍: 很明显它与MVC模式只有一字之差,如果想快速了解一样东西,比较其特征是最好的方式了。...在应用角度上看:MVC侧重业务逻辑简单,小项目,搭建项目比较快速,但不利于分层测试;而MVP的话侧重大中型的项目,业务逻辑复杂,搭建项目也快,业务逻辑清晰,利于测试。 RxJava是啥? ...OnClickListener 来说, View 是被观察者, OnClickListener 是观察者,二者通过 setOnClickListener() 方法达成订阅关系,订阅之后用户点击按钮的瞬间,Android
本期,我们邀请了腾讯IEG Android 开发工程师——戴俊,为大家分享《基于RxJava的一种MVP实现》。...MVP则通常用来将View业务层与Model层分离开来,两者结合起来可轻松实现业务解耦、线程控制、单元测试等等强大功能 内容大体框架: Android开发框架的选择 如何一步步搭建MVP分层框架 使用RxJava...这里我想提到之前讨论过的单元测试问题,很多同学反馈项目开发过程中没有做过,或者没有时间精力去做单元测试,或者因为业务变化太大导致无法做单元测试。...在Android中使用RxJava需要加入下面两个依赖。...使用场景小结 4.How To Use RxJava 结语 至此为止,通过MVP+RxJava的组合,我们已经构建出一个比MVC更灵活的Android项目开发框架,好处大概有以下几点: 每层各自独立,
RxJava Operators By Category Creating Observables 创建 Operators that originate new Observables.
Android默认采用的是MVC: View:对应于布局文件 Model:业务逻辑和实体模型 Controllor:对应于Activity 但是却存在很多问题: 1.这个View对应于布局文件,其实能做的事情特别少...MVP模式的核心思想: MVP把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类还是原来的Model。...这就是MVP模式,现在这样的话,Activity的工作的简单了,只用来响应生命周期,其他工作都丢到Presenter中去完成。...上面一张简单的MVP模式的UML图,从图中可以看出,使用MVP,至少需要经历以下步骤: 创建IPresenter接口,把所有业务逻辑的接口都放在这里,并创建它的实现PresenterCompl(在这里可以方便地查看业务功能...,由于接口可以有多种实现所以也方便写单元测试) 创建IView接口,把所有视图逻辑的接口都放在这里,其实现类是当前的Activity/Fragment 由UML图可以看出,Activity里包含了一个
网上有很多关于MVP架构的文章和示例,并且有很多不同的实现。...让View变得被动和无知 Android中最大的一个问题就是view(Activities、Fragments等)不是那么容易被测试因为Android框架很复杂。...使presenter与框架无关 为了提高代码的可测试性,那么就要确保presenter不能依赖Android类文件。...因此我们可以非常容易的通过创建一个mock view来进行单元测试。 The presenter contract 等等,我们真的需要一个Presenter接口吗? 事实上不需要,但我认为还是要的。...结论 以上是我对应用于Android的MVP架构的看法,希望通过不断的尝试可以找到最佳实践。 最后,分享一下 D.T. 总统的新指令:
MVP Google对Android APP开发第一次结构设计的尝试 ?...MVP是对MVC的改进,让Model和View完全解耦 优点 Model与View不存在直接关系 Presenter与View、Model的交互使用接口定义交互操作进一步达到松耦合也可以通过接口更加方便地进行单元测试...缺点 仅仅是一种编程方式,对Android而言,没有生命周期概念,需要自己维护管理 agera(Reactive Programming for Android) Google实现的类似RxJava的函数式编程...RxJava agera仅仅是一种编程方式的改变,但这种方式对手机应用开发来说非常合适,鉴于以上架构的演变,原始架构基本不会有人再使用了,MVC在移动端也是不太适合,MVP MVVM都是Google自家推出的...,个人实践中尝试的RxJava+MVP组合使用,MVVM个人感觉用着不爽,涉及xml和代码两处容易出问题。
在开发Android应用时,相信很多同学遇到和我一样的情况,虽然项目刚开始构架时自认为MVC层级分的特别明确,但最终往往是一个Activity有好几百行代码,而且逻辑和UI显示完全混杂在一起,导致后续项目的维护成本巨大...MVP模式将分为两篇博客进行总结: (一)Android开发MVP模式解析 (二)Android开发MVP模式实践 一、MVP简介 我理解的MVP是由MVC优化衍生出来的一种模式,MVP将MVC...Android开发MVP模式实践中的示例将APP分为以下四层。 ? Entities:APP中的业务类。 Use Cases:负责从将Entities中的数据进行处理和包装。...四、总结 MVP将会为你的代码带来如下好处: View和Model之间的耦合度降低,使其更关注自身业务逻辑; 便于单元测试; 代码复用率提高; 代码框架更适用于快速迭代开发; 参考资料: Android...Architecting Android...The Clean way?
本项目采用了 MVP 的架构,使用了 Retrofit、RxJava、Dagger、EventBus 等框架进行开发和解耦,利用 MaterialDesign 进行UI上的布局设计。...<provider android:name="android.support.v4.content.FileProvider" android:authorities...="com.chaochaowu.facedetect.provider" android:exported="false" android:grantUriPermissions...="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS"...传照片获取数据 传照片获取数据,主要是运用了 Retrofit 和 RxJava 的封装。请求的参数可以参考 Face++ 的官方文档。
领取专属 10元无门槛券
手把手带您无忧上云