盖一栋楼房,得从地基开始
楼房的用处决定使用的材料
这里我就不用特定场景去选择了使用哪些“材料”了,直接上图吧:
一、基础组件
这里选择使用Jetpack全家桶,当然还有一些东西没有归纳进来。利用Kotlin与Jetpack完美组合来建立一个MVVM结构的快速开发框架,使用协程来替代RxJava/RxAndroid等
二、网络请求
网络请求选用Retrofit(Retrofit其实是基于OkHttp3封装的),后续会对Retrofit以及OkHttp的使用以及原理进行刨析
三、图片加载
图片加载框架挺多的,这里选用Glide,后续会将几个图片加载框架做一个比较、Glide使用及原理解析
四、通信方面
采用阿里的ARouter路由框架以及EventBus进行页面跳转,数据通知等进行APP内通信
五、数据持久化
使用腾讯MMKV来替代传统的SP,数据库采用Jetpack组件之一Room数据库,数据库这里主要是用来存储上一次加载数据,下次打开APP不需要请求网络获取数据,刷新时才重新刷新数据,让APP可以打开时更加快速展现内容(类似今日头条的做法)
六、UI
这里主要考虑屏幕适配,Android五花八门的屏幕太多了,所以要做好屏幕适配。市场上主要适配方案现在应该是有两种吧,第一种是:最小限定符适配方案,这种方案侵入性较低,灵活使用,但是比较麻烦,适配不完全。第二种是:今日头条是配方案,侵入性较高,但是使用方便,适配率较高。这里就选用今日头条适配方案,后续会详情讲解头条适配方案的实现原理。
文章目录:(后续文章目录同步更新在这里)
从零到一预热篇,没什么内容,同时这只是目前想法,这个框架的搭建工作也从今天开始,后半年除了工作、看书、喝茶、光合作用以及旅行外大部分时间都将花在这里了。希望通过这些,能让自己更加强大起来,将来不局限于这些框架的使用,要能够举一反三!
Jetpack系列