第一次写文章,不好之处还请谅解。2015最值得android程序猿去学习的就是rxjava了,关于rxjava就不再多描述了。本文是介绍怎么使用mvp+rxjava+retrofit来构建一个新的项目,项目采用mvp的方式,参考了google的官方mvp项目。Hot是关于微信头条分享的app,项目地址
项目介绍
BaseActivity的设计:
|
|
最主要的设置了presenter的泛型,并且提供了初始化的函数 protected abstract T getPresenter();。
BasePresenter的设计
|
|
也采用了范型来绑定view,使用了CompositeSubscription来进行避免内存的泄漏。
Api的设计
在实际情况中每个公司的api的设计都是不一样的,我采用如下的设计形式。
|
|
你们可以根据自己公司的实际情况修改返回的成功码。
Rxjava的一些设计:
大家都知道rxjava就是能灵活的在线程之间进行切换,在使用的时候我使用了Transformer操作符。
|
|
在数据处理的时候,
|
|
在这里你可以根据自己的实际情况来添加,大部分app都是有token一说,你可以在这里判断当token过期的时候可以跳到登录界面。
在项目中的时候就是
|
|
是不是觉得使用起来非常的爽啊,还有一个就是在实际情况中很多一部分请求要设置一些数据好比来自android的还是ios的,或者添加一些token在请求中,本项目没有使用token,但是有个apikey代码如下:
|
|
你可以在获取本地token的时候,当有的时候加上即可。
7月13日更新:DataManager
网上有很多在mvp的时候关于数据层的设计,我这边是添加了DataManager来管理app数据,在p层是不关心数据的来源,无论是网络的还是本地缓存的数据,这个设计参考了别的大神的实现。
|
|
记得在app的时候初始化
|
|
这样在p中的使用如下
|
|
结束
通过这次的实践加深了我对mvp的认知,本人对rxjava认识不够深入,还在不断的学习中,要是有什么错误之处还望指正。