还记得15年那个时候,好像Android就是解析数据,列表展示,了解下四大组件生命周期,已经可以干活了,还记得当年一个View只要能滑动,就大呼自定义控件牛逼。
不过,近几年的变化颇大。
为了丰富大家日常开发的UI效果效果: Material Design进入大家的视野,后面陆陆续续涌现出一大批UI组件:DrawerLayout,AppbarLayout,CoordinateLayout,ToolBar,NestedScrollView,FlexBoxLayout等...
在UI组件日益完善的同时,也开始出现了RecyclerView、ConstraintLayout、MotionLayout等一些可以辅助大家写出更加符合性能要求的界面效果。
在UI控件日益满足需求的同时,系统的安全与稳定性、用户隐私也越来越被重视,所以每个版本都出现了一些大的适配工作,例如运行时权限,FileProvider适配,限制后台服务、广播,限制反射SDK 私有API,引导使用HTTPS,甚至去除SDCard访问权限等...
用一张图来表示大家的学习历程,就像:
在这些基础能力完善后, Google终于开始对架构下手了。
大家都知道后端一般的项目大多数都是MVC架构,而且大多数后端写出来的代码很自然就遵守了这个架构。
为什么呢?并不是说后端开发人员架构思想就比我们强很多, 而是后端的框架相对成熟,由框架引导架构的落地。比如现在Java后端非常火的Spring框架,他会引导你去做ioc,aop,分层,Controller、Service、Dao一应俱全,你只要按照框架的指引,写出来的基本都符合MVC了。
但是在Android上,由于很多业务非常简单,简单到只需要发个请求、解析结果就完事了,这种情况下,很难让去划分业务层、控制层等等,并且Android也有自己的特殊的平台特性,比如组件生命周期、页面重建与恢复等等。
所以需要一