android mvp开发框架,GitHub - aion2013tian/XDroidMvp: 轻量级的Android MVP快速开发框架

#XDroidMvp 轻量级的Android MVP快速开发框架

概述

2ac1405abbfffe9834f86794bd98be84.png

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

68747470733a2f2f6a69747061636b2e696f2f762f6c696d6564726f69642f5844726f69644d76702e737667

XdroidMvp_total.png

XDroidMvp主要会有这些特性:

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

新增:

Mvp实现

RxJava & RxAndroid

权限适配 RxPermission

事件订阅默认采用 RxBus

网络交互:

Retrofit + rx

Https

统一异常处理

缓存

支持多个baseUrl

。。。。

无需担心rx内存泄漏

保留:

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

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

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

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

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

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

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

内置链式路由

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

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

6cc43aca66cea3d401a69b18f6285c8f.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。若采用默认配置,此步骤可略过.

第二种方式,通过JitPack引入

step1 在根目录的gradle文件中配置:

allprojects {

repositories {

jcenter()

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

}

}

step2 添加依赖:

dependencies {

compile 'com.github.limedroid:XDroidMvp:v1.8.1'

}

Demo效果

9a8eedc54447b86d90829b1919764a77.png

snapshot_1.png

重要说明

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

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

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

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

更新日志

2017-04-23,新增proguard rules,upgrade to rx2

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

rx

retrofit

rxpermission

rxbus

cache

wiki

demo

About Me

XDroid交流群:153569290

XDroid MVC版本:XDroid

若您在使用过程中遇到任何问题,欢迎加入 153569290 群或者是邮件反馈,谢谢您的关注。XDroidMvp会持续维护,如果喜欢,记得star fork。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值