mvp android 官方demo,轻量级的Android MVP快速开发框架

Demo 效果

37956a2f915acd324e127f933cac3758.png

091aa4d624b7dbd89b324e4fad343450.png

XDroidMvp是XDroidAndroid 快速开发框架的 MVP 版本,其使用方式类似于XDroid,大部分源码也来自XDroid。

XDroidMvp主要会有这些特性:

无需写Contract! 无需写Present接口! 无需写View接口!

新增:

Mvp 实现

RxJava & RxAndroid

权限适配 RxPermission

事件订阅默认采用 RxBus

网络交互:

Retrofit + rx

Https

统一异常处理

缓存

。。。。

无需担心 rx 内存泄漏

保留:

提供XActivity、XFragment、SimpleRecAdapter、SimpleListAdapter等基类,可快速进行开发

完整封装XRecyclerView,可实现绝大部分需求

QTContentLayout、XRecyclerContentLayout实现 loading、error、empty、content 四种状态的自由切换

实现了Memory、Disk、SharedPreferences三种方式的缓存,可自由扩展

内置了RxBus,可自由切换到其他事件订阅库

内置Glide,可自由切换其他图片加载库

可输出漂亮的Log,支持Json、Xml、Throwable等,蝇量级实现

内置链式路由

内置常用工具类:package、random、file...,提供的都是非常常用的方法

内置加密工具类 XCodec,你想要的加密姿势都有

d8f7c9565777b6543757684e4e21bd9b.png

先睹为快

你可以这么使用:

BasePagerFragment

public abstract class BasePagerFragment extends XFragment{

@Override

public void initData(Bundle savedInstanceState) {

getP().loadData(getType(), 1); //调用 P 方法

}

public void showData(int page, GankResults model) {

if (page > 1) {

getAdapter().addData(model.getResults());

} else {

getAdapter().setData(model.getResults());

}

contentLayout.getRecyclerView().setPage(page, MAX_PAGE);

if (getAdapter().getItemCount() < 1) {

contentLayout.showEmpty();

return;

}

}

@Override

public PBasePager newP() {

return new PBasePager();

}}

@Override

public int getLayoutId() {

return R.layout.fragment_base_pager;

}

PBasePager

public class PBasePager extends XPresent {

protected static final int PAGE_SIZE = 10;

public void loadData(String type, final int page) {

Api.getGankService().getGankData(type, PAGE_SIZE, page)

.compose(XApi.getApiTransformer())

.compose(XApi.getScheduler())

.subscribe(new ApiSubcriber() {

@Override

protected void onFail(NetError error) {

getV().showError(error); //调用 V 方法

}

@Override

public void onNext(GankResults gankResults) {

getV().showData(page, gankResults);

}

});

}

}

Get Started

使用,仅需四步:

step1

clone 'XDroid'库到本地:

git clone https://github.com/limedroid/XDroidMvp.git

step2

将mvp作为依赖库,在您的 app module 中 添加如下依赖:

compile project(':mvp')

step3

拷贝conf.gradle到您的项目根目录,并修改项目 gradle 文件下引入:

apply from: "conf.gradle"

并添加:

allprojects {

repositories {

jcenter()

maven { url "https://jitpack.io" }

}

}

step4

修改XDroidConf配置类,主要针对 log、cache、router、imageloader。若采用默认配置,此步骤可略过.

重要说明

ButterKnife使用的是 8.4.0 版本,重点是 @BindView,可以去项目官网查看。

Rxlifecycle使用的是 1.0 版本,具体如何使用可以查看官网。

RxPermissions使用的是 0.9.1 版本,具体如何使用可以查看官网。

retrofit,具体如何使用可以查看官网。

更新日志

2016-12-23,新增 mvp、base、cache、event、imageloader、log、router

2016-12-25,新增 rxJava、rxAndroid、rxlifecycle、rxpermission、rxbus、net(retrofit)

2016-12-26,新增网络异常统一处理

2016-12-28,重构 MVP

2016-12-30,重构网络层

2016-12-31,新增Demo

TODO

[x] rx

[x] retrofit

[x] rxpermission

[x] rxbus

[ ] cache

[ ] wiki

[x] demo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值