1
bccoder 2019-09-07 00:51:33 +08:00 via iPhone
其他还好,我觉得 dagger 这种东西就增加了很多复杂度而且繁琐。可能是我太菜了。
|
2
HarryQu 2019-09-07 00:55:16 +08:00 via Android
很多页面业务都不复杂。mvc 就搞定了。
有些简单的页面,代码全写在 activity 都行。 优化是一步步来的,你使用的框架越多,出问题的时候越难排查 bug。 双向绑定,就用回调就可以啦,或者用 eventbus。 |
3
KunMinX 2019-09-07 01:01:16 +08:00 3
DataBinding 的存在,是为了解决视图的一致性问题。
LifeCycler 的存在,是为了解决生命周期处理的一致性问题。 LiveData 的存在,是为了让新手老手都能 不假思索地形成 通过唯一可信源分发状态 的开发模式。 ViewModel 的存在,是为了建立起作用域可控的、可共享的状态管理。 Navigation 的存在,是为了通过声明式编程来解决应用内导航的一致性问题。 · 综上,它们的存在,大都是通过解决一致性问题,来规避开发过程中 90% 的不可预期的错误。 不可预期的错误是十分耗费时间的,标准化开发模式的确立,能够让开发者不假思索地在开发时按部就班、效率倍增。 · 如果这样说还不理解的话,详见: https://xiaozhuanlan.com/topic/3684721950 |
4
axlecho 2019-09-07 02:58:54 +08:00 via Android
边写边学不建议用框架跟 kotlin
|
5
winterbells 2019-09-07 06:57:17 +08:00 via Android
|
6
winterbells 2019-09-07 07:02:44 +08:00 via Android
@winterbells #5
代码写在 activity 不就行了,new 一个 thread 什么都能跑。 viewmodel 怎么通知 activity,fragment 怎么传消息。一个 eventbus 解决所有。 这种代码最后写出来还是人看的吗? 还有双向绑定用回调?什么回调? databinding 给你什么接口回调了? |
7
Lin0936 2019-09-07 07:10:00 +08:00 via Android
其它还好,dagger2 这个东西谁用谁歇逼
|
8
winterbells 2019-09-07 07:13:12 +08:00 via Android 1
“而且 Android 的双向绑定真不像前端那么易用,不但代码量大增,还有无数的坑。”
双向绑定代码是减少的,至少少了一步走 view 层的代码。model 处理完之后页面自动就刷新了。 难用是真的,主要报错太难找。但有个方法可以看到具体报错信息。 在 AS 右边有个 gradle 选项卡,点开后选择一个项目或模块,然后选 other,往下一直翻,有个叫 kaptXXXdebug 或者 kaptXXXrelease ( xxx 为当前 build ),双击跑一下就能看到 xml 里哪一行的 databinding 报错了 |
9
kx5d62Jn1J9MjoXP 2019-09-07 07:13:48 +08:00 via Android
databinding 不是必用的,谷歌的文档里也是“if you use data binding,那么可以怎么怎么的”
|
10
HarryQu 2019-09-07 09:34:46 +08:00 via Android
|
11
seagull007 2019-09-07 09:50:36 +08:00 via iPhone
@KunMinX 理解到位
|
12
hyyou2010 2019-09-07 09:53:01 +08:00
说得是 jetpack 那一套吗?
|
14
arrow2015 2019-09-07 11:09:02 +08:00
待了 2 家公司 a 和 b,a 2 年,b 1 年半。a 公司的架构和楼主差不多,啥都用上了。b 公司用的很少,只用了 okhttp,eventbus,和一个图片加载库。都体验过后,我更喜欢 b 公司的代码结构。少用框架对提升编程水平有很大的帮助。楼主说的这些库里面,dagger 和 databinding 对编译超级不友好,编译出错后很难定位问题。另外这 2 个库用了之后我感觉写起代码很不自由。我觉得 @HarryQu 说的对,mvc 很好用,简单页面全写在 activity 没有任何问题。如果是简单页面,用 mvp,livedata,viewmodel 的话,代码量比全写在 activity 里多很多,也没啥优势,一个简单点击事件的处理分散在好几个文件里,来回跳转跟踪代码很麻烦。
|
15
arrow2015 2019-09-07 11:19:30 +08:00
“而且 Android 的双向绑定真不像前端那么易用,不但代码量大增,还有无数的坑。目前还是边写边熟悉的阶段,开发效率低下。我有时候觉得未免太过度设计了。说了这么多,可能是我自己太菜了。”
建议楼主不用继续研究 databinding 了。我用过 1 年多 databinding。现在我写新的应用,我是不会用它了。 |
16
loshine1992 2019-09-07 11:24:58 +08:00
最近用 LiveData + ViewModel + Kotlin + Koin + Navigation + coroutines 写
一个 Activity 搞定,Dagger 和 Databinding 这俩完全可以放弃了,不建议再学习 |
17
leopku 2019-09-07 11:43:00 +08:00 via Android
主要报错信息太难看,还有传值,代码清晰了
|
18
momocraft 2019-09-07 11:55:03 +08:00
不笑不足以爲道
|
19
crayygy 2019-09-07 13:47:27 +08:00 via iPhone
我们最近一个新项目把这里面提到的能用的几乎都给用了,Data binding,ViewModel,LiveData,Lifecycle,navigation,实话说整体学习曲线较高,不熟悉的人刚进来会很累,熟悉了以后成本比较低。
依赖注入用的是 Koin,没用过 dagger2 不评价,Koin 还是很好用的,可以尝试一下 |
20
maokabc 2019-09-07 14:37:15 +08:00 via Android 1
之前就是直接写 activity 里只用了 eventbus,greendao 这类东西,后面看着 activity 里一大坨实在受不了。重构换 aac 了,双向绑定用着是真舒服,虽然报错蛋疼,但比以前代码里更新 view 状态爽太多。
|
21
mxalbert1996 2019-09-08 01:13:34 +08:00 via Android
关于 Data Binding 的报错,Android Studio 3.5 里改进了很多了,基本只通过正常 Build 的错误信息就能找到哪里错了。
|