# XDroidMvp **Repository Path**: stringcode/Android ## Basic Information - **Project Name**: XDroidMvp - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-06 - **Last Updated**: 2021-03-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #XDroidMvp 轻量级的Android MVP快速开发框架 ## 概述

**XDroidMvp**是[XDroid](https://github.com/limedroid/XDroid)Android快速开发框架的MVP版本,其使用方式类似于`XDroid`,大部分源码也来自`XDroid`。 **XDroidMvp全新文档**:[https://github.com/limedroid/XDroidMvp/wiki](https://github.com/limedroid/XDroidMvp/wiki) [![](https://jitpack.io/v/limedroid/XDroidMvp.svg)](https://jitpack.io/#limedroid/XDroidMvp)

`XDroidMvp`主要会有这些特性: **无需写`Contract`! 无需写`Present`接口! 无需写`View`接口!** 新增: * Mvp实现 * `RxJava` & `RxAndroid` * 权限适配 `RxPermission` * 事件订阅默认采用 `RxBus` * 网络交互: * `Retrofit` + `rx` * `Https` * **统一异常处理** * 缓存 * **支持多个baseUrl** * 。。。。 * 无需担心rx内存泄漏 * 适配AndroidX,请前往`android-x`分支 保留: * 提供`XActivity`、`XFragment`、`SimpleRecAdapter`、`SimpleListAdapter`等基类,可快速进行开发 * 完整封装`XRecyclerView`,可实现绝大部分需求 * `XStateController`、`XRecyclerContentLayout`实现loading、error、empty、content四种状态的自由切换 * 实现了`Memory`、`Disk`、`SharedPreferences`三种方式的缓存,可自由扩展 * 内置了`RxBus`,可自由切换到其他事件订阅库 * 内置`Glide`,可自由切换其他图片加载库 * 可输出漂亮的`Log`,支持`Json`、`Xml`、`Throwable`等,蝇量级实现 * 内置链式路由 * 内置常用工具类:`package`、`random`、`file`...,提供的都是非常常用的方法 * 内置加密工具类 `XCodec`,你想要的加密姿势都有

**先睹为快** 你可以这么使用: BasePagerFragment ```java 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 ```java 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'库到本地: ```groovy git clone https://github.com/limedroid/XDroidMvp.git ``` ### step2 将`mvp`作为依赖库,在您的app module 中 添加如下依赖: ```groovy compile project(':mvp') ``` ### step3 拷贝`conf.gradle`到您的项目根目录,并修改项目gradle文件下引入: ```groovy apply from: "conf.gradle" ``` 并添加: ```groovy allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } } ``` ### step4 修改`XDroidConf`配置类,主要针对log、cache、router、imageloader。若采用默认配置,此步骤可略过. ## 第二种方式,通过JitPack引入 ### step1 在根目录的gradle文件中配置: ```groovy allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } } ``` ### step2 添加依赖: ```groovy dependencies { implementation 'com.github.limedroid:XDroidMvp:v2.0.1' } ``` ## Demo效果

## 重要说明 * [ButterKnife](https://github.com/JakeWharton/butterknife)使用的是8.4.0版本,重点是 `@BindView`,可以去项目官网查看。 * [Rxlifecycle](https://github.com/trello/RxLifecycle)使用的是1.0版本,具体如何使用可以查看官网。 * [RxPermissions](https://github.com/tbruyelle/RxPermissions)使用的是0.9.1版本,具体如何使用可以查看官网。 * [retrofit](https://github.com/square/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](https://github.com/limedroid/XDroidMvp/tree/master/app) ## TODO * [x] rx * [x] retrofit * [x] rxpermission * [x] rxbus * [x] cache * [x] wiki * [x] demo ## About Me **Email** : droidlover@126.com **XDroid交流群**:153569290 **XDroid MVC版本**:[XDroid](https://github.com/limedroid/XDroid) 若您在使用过程中遇到任何问题,欢迎加入 **153569290** 群或者是邮件反馈,谢谢您的关注。**XDroidMvp**会持续维护,如果喜欢,记得star fork。