美文网首页Android架构_组件化Android技术项目
android快速开发框架(MVP+RxJava + Retro

android快速开发框架(MVP+RxJava + Retro

作者: 成玉春 | 来源:发表于2017-03-20 15:48 被阅读936次

    本框架采用MVP+RxJava + Retrofit+Glide,都是目前最流行的技术,适用中小团队快速进行项目开发, 目录结构清晰易懂,非常适合项目后期管理、迭代、重构等。且看具体介绍:


    一、使用技术及特点

    开发模式:MVP

    网络请求:RxJava+Retrofit

    图片加载:Glide

    下拉刷新:XRecyclerView

    支持带COOKIE网络请求

    支持HTTPS访问

    支持JSON数据自动解析

    支持protobuf数据自动解析

    统一错误预处理

    多种机型屏幕适配


    二、使用说明及范例

    1、TheMvp

    传统的MVC模式(android应用开发因其结构的特殊性,并不是严格意义上的MVC模式),随着界面及其逻辑的复杂度不断提升,Activity类的职责不断增加,变得庞大臃肿,以致需求变更改起来尤其费劲,对于动辄几百行乃至上千行代码的activity类,代码可读性随着时间推移逐渐降低,而修改所带来的bug风险与日俱增,在这种情况下,MVP开发模式迅速在android技术圈火爆起来。

    MVP模式结构清晰,代码好维护的道理大家都懂,然而事实上不是特大型项目,一般中小型项目很少使用MVP模式,开发一个页面所需要新增的接口,新增的类太多了!!严重影响开发效率。

    经过对比比较,TheMvp框架很适合中小型项目,是轻量级解决MVP方案,使用activity作为presenter,View层分离出去,没有数不清的接口,而且支付宝android客户端也在使用

    关于TheMvp框架更多详细内容请看作者介绍:

    https://www.kymjs.com/code/2015/11/09/01/

    2、网络请求RxJava + Retrofit

    RxJava的链式访问利落清晰,在页面中进行网络请求所需要做的工作只需两步,

    *在接口类中声明接口,如下图

    *使用JsonApiWrapper或ProtoApiWrapper调用接口

    声明接口

    调用接口

    其中compose函数中的参数DefaultTransformer是线程切换的实现,之前考虑对线程切换封装在上层,但影响了RxJava的链式调用,故使用compose实现之。

    2、图片加载Glide

    使用GlideUtil,一行代码显示。

    3、下拉刷新XRecyclerView

    比起ListView, RecyclerView拥有更多的灵活性,更容易适应多变的需求,而XRecyclerView是基于RecyclerView扩展的库,直接继承于RecyclerView,代码侵入不高,支付宝android客户端也在使用。

    为减少重复代码,抽象出BaseListFragment,写列表页时可以直接继承它,并实现如下4个方法,即可完成一个列表页的编写,具体请参考DemoListFragment.java

    3、错误预处理

    在访问网络接口时,对服务端返回的错误信息有时并不符合需求,ApiException中,可以对返回的错误码进行预处理。

    4、新增tab业务模块

    新增tab业务模块时,只需add一个即可动态新增,不需改布局文件。

    5、目录结构

    采用模块化结构区分,所有模块的activity不再放在一个文件夹中,新增模块需求时,新增目录编写,如下:

    布局文件也按模块化分类

    7、项目代码

    https://github.com/chengyuchun/androidRapid

    欢迎star和fork

    另写了一篇详细的框架使用说明:https://www.jianshu.com/p/d3bc38c31fe3,供阅读参考

    项目效果图:

    最后,本项目使用到了很多优秀的库和控件,非常感谢 kymjsstayhongyang等等这些作者。

    相关文章

      网友评论

      • andriod小学徒:后续还维护吗?
        成玉春:@andriod小学徒 维护
      • 逗你玩222:支持!!!!!!下班回去怎么样最近也在看这些技术搭建的项目框架。。感觉没有几个讲的好的,前面只有看到蛇发女妖的那篇文章还不错!通俗易懂!
      • JingBeibei:为什么浏览这么少呀 还有github
        JingBeibei: @成玉春 而且你GitHub也挺少的,你开发多久了呀?
        成玉春:@JingBeibei 才上传
      • 巴黎没有摩天轮Li:这种都是因人而异,自己用的顺手才是最好的

      本文标题:android快速开发框架(MVP+RxJava + Retro

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