项目里一直用的 MVP,最近出去面试,很多面试官问了 MVVM 相关问题,看来很多公司已经开始用上了 MVVM ?于是周末看了一下 MVVM,上来 DataBinding,ViewModel,LiveData 一套给我搞晕了,又害怕 Jetpack 这一套不是国内互联网的主流方案,所以来 V 站请教一下大佬们,Android MVVM 的主流方案,或者能丢给我几个开源项目学习一下,感激不尽
![]() | 1 0DBBFF 2020-08-17 15:58:11 +08:00 |
![]() | 2 windplume 2020-08-17 17:10:31 +08:00 ![]() B 站搜索 longway777 |
![]() | 3 coolmint 2020-08-17 17:12:15 +08:00 ![]() 有个专栏叫重学安卓,可以订阅一个看看,里面不少干货,现在小团队开发新产品用 jetpack 这一套挺快的,面试也是重要知识点,确实可以好好看看。 |
![]() | 4 wobuhuicode 2020-08-17 17:19:14 +08:00 flutter …… 感觉原生安卓的 MVVM 搞出来单纯就为了 KPI,内置的 API 经过这几年的布局 MVP 已经很成熟了。新 API 能没坑? 毕竟都是新 API,还不如直接用 flutter 算了。踩坑不如踩一个成熟点的 |
5 rebounce 2020-08-17 17:24:53 +08:00 ![]() @wobuhuicode MVVM 很成熟也能解决很多问题,Flutter 才是那个可能有坑的。跨平台就其源头就不会做大,举个例子,Flutter 一旦做大到影响 iOS 原来的开发生态,就会被苹果拒之门外。 |
![]() | 6 xiaoliu926 2020-08-17 17:30:56 +08:00 |
![]() | 7 azhangbing 2020-08-17 17:58:23 +08:00 我一直在想有没有必要搞这么复杂 |
![]() | 8 hongch 2020-08-17 18:17:24 +08:00 1.到底项目多大才需要 mvvm 2.上 mvvm 的目的是啥?单纯为了架构而架构? 3.别人在用不一定适合当前项目 4.livedata 的 demo,google 官方不是有吗 |
![]() | 9 xuanbg 2020-08-17 19:04:42 +08:00 MVVM 已经被实践证明是一种优秀的设计模式。能很好地将 UI 、交互逻辑、业务逻辑和数据解耦。MVVM 模式的运用,无非就是把代码分门别类写对地方而已,实际上也是封装思想的一种体现。 |
![]() | 10 zhuangzhuang1988 2020-08-17 20:45:07 +08:00 要不看看 xamarin 的 mvvm?? |
![]() | 11 Xusually 2020-08-17 23:54:54 +08:00 MVVM 反而新手友好。。。老手看不上也正常 手动狗头.gif |
![]() | 12 Habsburg 2020-08-18 00:12:48 +08:00 你不会看 github 的吗 |
![]() | 13 WebKit 2020-08-18 09:30:35 +08:00 @wobuhuicode #4 flutter 现在坑还是太多,复杂页面也有点卡。。 |
![]() | 14 WebKit 2020-08-18 09:32:10 +08:00 MVVM 一般只用 ViewModel,LiveData,DataBinding 刚出来那阵用了一段时间,就放弃了。编译起来坑太多,还不能复用 layout |
15 gam2046 2020-08-18 09:53:28 +08:00 大多数场景下,个人感觉自带的数据绑定就足够了,还避免了很多 NPE 的坑。但我没有写过很大型的 Android 应用 |
![]() | 16 devfeng OP @WebKit 是的,我觉得 DataBinding 污染 xml 不太好,LiveData+ViewModel 已经可以很好工作了 |
![]() | 17 krystal9527 2020-08-18 14:08:06 +08:00 @devfeng 可以看看 ViewBinding,是 DataBinding 功能弱化版本 |
![]() | 19 fansangg 2020-08-18 16:30:05 +08:00 建议了解一下 bindadapter |
20 mx8Y3o5w3M70LC4y 2020-08-20 13:26:22 +08:00 via iPhone 2020 年了,任何新的安卓项目,无论什么复杂程度,我觉得都该用 mvvm+jetpack 。btw 我现在这个公司,还在用敲厉害的 mvc,封装的敲完美,代码看起来敲赏心悦目。 |
21 Bens0n 2020-08-20 15:03:12 +08:00 首先 mvvm mvp 都只是一些架构模式,你问的问题没有意义的,你需要了解 mvp 和 mvvm 的区别。 什么时候用 mvp 什么时候用 mvvm,还有怎么实现 个人感觉直接使用 jetpack ( databinding 、livedata 、viewModel 、lifecycle )上手快,代码比较稳定,内存泄漏很少,写着也快 |