MVP项目

搭建自己的框架之2:MVP+Rxjava2,封装自己的mvp框架

2017-09-14  本文已影响1126人  曾经的你呀

说到MVP,Android 开发者肯定会参考Google 的基础实现:android-architecture;大体的框架如下:

mvp.png

当然大家也应该关注正在成熟的:android-architecture-components,还是对开发有较大的变更。
其实这么久来Android 开发中就没有什么很官方的框架,我觉得大家可以根据自己App 的业务情况和团队情况,参考android-architecture(暂时并没有加入android-architecture-components)然后再封装定制属于自己的框架;虽然业务可能千变万化,但是基本的一个App 的框架可以由mvp+db+http+Base 抽象+rxjava(处理异步等真的方便)实现自己的代码结构、整体架构、可测试性、可维护性的项目。

本文主要是记录自己参考todo‑mvp‑rxjava 结合Rxjava2 抽象BaseAct,BasePresenter,BaseView 等实现的简单项目框架的过程。(写作记录让人再次思考反省)

项目框架简介(Demo:Android-MVP-Rxjava2

代码的自动生成

大家也发现了,使用MVP 抽象封装后虽然有那么多的好处,但是代码的量增加了不少,而且习惯MVC后入门有点难,刚开始写起来有点吃力;我们也从来不干重复性的劳动,使用插件进行代码自动生成吧。
根据自己封装的MVP模式,比如你要做等录,输入Login,会自动生成login文件夹和LoginActivity,LoginPresenter,LoginModel等,并且这些类的范型,继承关系接口实现都按照规则自动生成了代码。

最后github demo 地址,仅供交流

mvp.png

这个项目简单的演示了MVP得封装使用,主要是抽象出基类,结合rxjava2。

包含基类的presenter,model,view ,甚至某个功能你觉得一点没有必要mvp 你可以直接继承BaseAcvtivity,否则继承BaseMVPActivity.

登陆功能比较简单,model 层的数据都是来源于网络;
在文件夹mvp_more 演示的功能下稍微复杂一点,model 层有local(db)+remote(http).其中读取db 流程用rxjava2 包装了一下,不是在主线程完成的,不然如果查询数据库比较耗时UI会明显卡一下,在读取数据的代码打一个断点你会发现调试到断点处不进行下一步UI依然可以随意操作,如果是主线程肯定不行。

为什么一定要引入Rxjava(2)

筛选.jpeg

快速链接: 搭建自己的框架之2:MVP+Rxjava2

Demo on github:AndroidAppFrameWork(代码估计能加快理解)

上一篇下一篇

猜你喜欢

热点阅读