优点
官网引导下的Android开发的方向
官网介绍
https://developer.android.com/jetpack
简单入坑
传统的MVC架构
传统的MVC,一般是一个View对应一个Activity,这样一来model数据逻辑和Controller控制器代码都在Activity里。导致Activity代码过多,缺点就很明显不利于维护而且耦合度大。
ViewModel
ViewModel是单独管理数据,将View里的数据独立出来,使控制器更加简单。负责管理数据,防止数据丢失(比如切换系统语言,旋转屏幕)。还可以和LiveData配合,监听数据来改变UI 的数据。这时候ViewModel只是将数据独立出来,刷新UI还是在控制器的references里进行,下面LiveData的出现就是解决这一问题的。
LiveData
观察者模式自动刷新数据,ViewModel采用LiveData来管理数据。ViewModel结合LiveData一起就可以直接观察数据的变化,如果数据变化就刷新UI。这样就架空了控制器和UI之间的联系,将数据刷新的功能直接赋能给ViewModel。
DataBinding
当然在数据绑定中,我们发现有控制器里有很多重复的findViewById(当然用黄油刀可以改善)。这里JetPack也帮我们解决了这个问题,DataBinding的诞生就是实现UI界面直接绑定数据,然后在ViewModel中实现数据的逻辑,控制器进行控制。
Navigation
Navigation的作用想当如路由route,我们可以在主Activity的UI布局中添加fragment的子UI布局,然后子fragment之间的跳转和数据传递都可以利用Navigation完成。Navigation的使用是创建一个navigation布局的xml实现可拖动效果,然后设置对应的action等等属性。
个人心得
因为我自己是从传统架构MVC一直走到MVVM的,再到现在的JetPack,所以没少走弯路。JetPack肯定能规范开发,并且避免一些不必要的问题,比如生命周期的控制。但是万事都有利弊,JetPack把代码脱的一件都不剩,这样不利于阅读代码和理清业务逻辑。所以对于Android初学者和小白,不建议一上来就JetPack,万丈高楼平地起,我们知道了传统架构存在的问题,有了一定的经验积累自然就能很快的接收和理解JetPack的设计思想。