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

Demo 效果

mvp android 官方demo,轻量级的Android MVP快速开发框架_第1张图片

mvp android 官方demo,轻量级的Android MVP快速开发框架_第2张图片

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,你想要的加密姿势都有

mvp android 官方demo,轻量级的Android MVP快速开发框架_第3张图片

先睹为快

你可以这么使用:

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

你可能感兴趣的:(mvp,android,官方demo)