Android 开发框架
Android运用框架的目的不外乎是实现代码的代码解耦、逻辑分类、快速集成 便于维护等目的;Android 开发架构从早期的MVC ,到近年到MVP 架构,到最近流行到MVVM 架构。不断到对业务逻辑、代码结构进行分层,便于快速开发和维护。
快速开发框架主要是整合常用的工具栏,网络、注解等相关库,搭好手脚架实现快速开发等目的。
目前在设计一个比较轻量级的快速开发框架,主要设计基于以下几点:
- 架构: MVP 目前运用的比较多,开源相关资料也比较多; MVVM 架构在Android 目前比较少,但是更符合我们业务上的特点, 不用构造太多的中间类, 在比较MVP、MVC、MVVM 架构各自的特点,我们考虑MVVM架构,并考虑 官方的机构库;用LiveData+ViewModel开发过一个小模块,整体体验还不错;
- 考虑快速上手,尽量用普及度较高的开源库;
- 引入RxJava 、RxAndroid等响应式编程;
- 框架能够支持扩展组件化开发,模块能够高度解耦;
- 集成通用的网络请求、缓存、日志管理等功能;
初步选定整合以下开源库:
-
响应式编程库 : RxJava 、RxAndroid
-
网络请求库: OKHttp Retrofit
-
框架组件库: Android 官方架构组件库(LifeCycle LiveData ViewMode ROOM )
-
常用工具类库: AndroidUtilCode
-
事件总线 LiveDataBus /EventBus
-
路由: 阿里ARouter
-
日志: Timmer
虽然RxAndroid 本身和LiveData 本质上都是基于观察者模式,有人说二者有冲突,二选一即可;但我不这么认为, Rx只是一种编程方式的工具,我们只会在模块中用,LiveData ViewMode 来承担MVVM 架构 的桥梁;