Closed ExplodedJelly closed 5 years ago
@ExplodedJelly
最新的代码中,我已经将ViewDelegate删掉了,Google的方式肯定是非常正确的,因为它试图将对UI组件的通知事件转换为了Event(或者叫做状态,事件本身也是状态的一部分),这些Event在View层渲染和处理前,都是可测试的(即纯Java的)。
为什么现在一些新的Mvvm项目都使用MutableLiveData而不使用Observeable(ObservableBoolean这些)来绑定数据了呢?
因为LiveData确实好用呀,我个人猜测,其实也就是Google想要推动LiveData
及相关的jetpack组件把,因为我确实觉得它和RxJava
相比,其功能性实在太弱了,于我而言,如果不是LiveData原生支持DataBinding
,我不会用它,因为它能做的rx都能做,并且做的更好。
其实我也是在不断的探索中,有些地方的实现肯定是值得商榷的,欢迎互相交流探讨。 🤝
对于View层和ViewModel层,UI事件比如Snackbar、页面导航,之前我们公司项目一直参考Google使用SingleLiveEvent(现在切换为Event包装),最近在学习您项目发现这一块您使用的是ViewDelagate来处理的,想请问一下您对Mvvm中这块的想法,关于这几种方式的优缺点。
另外想问一下,DataBinding做数据绑定,为什么现在一些新的Mvvm项目都使用MutableLiveData而不使用Observeable(ObservableBoolean这些)来绑定数据了呢?
非常感谢~