[讨论] 专家也跟不上Android生态系的变化?

楼主: dharma (達)   2021-03-04 20:42:44
网络上看到一篇文章
讲的很辛酸的感觉
请问这是文章作者本身不够强
还是Android开发者真的就是这样的惨状
thanks
(全文颇长,节录内文如下)
https://www.jianshu.com/p/ee0ed95b9a01
请允许我用 Android 开发者的背景,描述一下我这两年所经历的事情:
在过去的两年里,我启动了三个项目,我一直争取,至少参与其中一个项目的开发工作。
我回过头来看这些已经存在的项目,并分析这些项目前期所做的技术决定对整个项目的影
响。我写了这篇文章,也制作了很多 Android 开发的高级课程,也花了很多时间在互联
网上讨论 Android 相关的主题。
即使这样,我今天依然感觉跟不上 Android 整个生态系统的变化。可想而知,对于那些
经验不足,需要指导的 Android 开发者而言,是多么地绝望。我现在已经无法想像,现
在从头开始学习 Android 的感觉。当你好不容易学会了某个框架或者工具,觉得它很好
用的时候,它或许就要过时了。现在也许是加入 Android 开发大家庭最坏的时候。
Google 正为他们的“包容性”沾沾自喜,但这一切,对初学者来说,都是极其痛苦的。
Google 在 Android 框架中所做的事情,会导致大量的时间浪费。我们需要花费数小时的
时间才能读完所有更改的内容,更别说在项目中应用它们了。我宁愿花时间来创造价值,
而不是舍本逐末。
作者: NDark (溺于黑暗)   2021-03-04 21:14:00
边开火边移动框架 引擎 平台 => 军备竞赛开发者 := 平台竞争之下被打出去的子弹跟砲灰.
作者: tom77588 (叶天)   2021-03-04 21:40:00
要怪就怪甲骨文冲康导致谷哥转向Kotlin,以后有新科技出来,要决定开发语言时,一定不会选Java
作者: wulouise (在线上!=在电脑前)   2021-03-04 21:43:00
2019 kotlin编译时间最好的情况增加50%?2020有改善吗?https://www.techyourchance.com/the-state-of-native-android-development-december-2020/ 看看2020的比对xd缩 https://bit.ly/3rlJhbW
作者: officeyuli (yuli)   2021-03-04 22:00:00
是 现在光跑背景就有这么多选项 http://i.imgur.com/MHEEDHJ.jpghttp://i.imgur.com/HOLssjl.jpg然后workmanager里面还包了他们以前宣称的几种“完美的解决方法”http://i.imgur.com/S2wrFgB.jpg
作者: NTULioner (LionsHeart)   2021-03-04 22:46:00
真的r
作者: lee457088   2021-03-04 23:38:00
干我隔壁的同事也常常在干醮每年八九月都要重新弄一次Android 的东西,不然一堆套件都不能用惹
作者: kaibaemon (海马卫门)   2021-03-04 23:42:00
所以才不找写Android的工作
作者: scorpion (蝎)   2021-03-05 00:11:00
Android 真的没事不要随便进来
作者: netburst (133 134 592)   2021-03-05 02:17:00
kotlin爽爽
作者: baobomb (baobomb)   2021-03-05 05:47:00
一个框架或工具的过时 必有他的原因 像Eventbus, Asynctask都是因为有着问题 才有人提出更好的方式kotlin的出现也并不是单纯的复制Java而已 也带来很多好处如果都不追求更好更完美的框架或工具 那就干脆WebApp弄一弄 跟众多银行的App一样 能跑就好
作者: qweqweqweqwe (4qwe)   2021-03-05 06:26:00
也没到每年要重用这么夸张吧 并不需要全都追新的例如dagger2都已经好几年了 最近公司才想导入..
作者: rewqasdf ( )   2021-03-05 07:30:00
难怪被os垄断 从pc时代开始
作者: jknm0510a (Kang)   2021-03-05 07:55:00
dragger也是很麻烦到一个极致,所以才改良出2和hilt,结果就是要你继续学吧
作者: siriusu (かがみは俺の嫁。)   2021-03-05 07:57:00
推 baobomb
作者: LordCHTsai (我饿了)   2021-03-05 08:12:00
Flutter2也来囉,欢迎学Dart
作者: sharek (...)   2021-03-05 08:20:00
持续学习,了解新框架和工具能带来的好处才是基本的吧
作者: doranako (真爱无限)   2021-03-05 08:21:00
碎片化很真的很痛苦,安卓真的比苹果难写很多
作者: jobintan (Robin Artemstein)   2021-03-05 10:11:00
非走Native App不可吗?转Web app是否可行?
作者: baobomb (baobomb)   2021-03-05 10:26:00
WebApp能做到的事 Native都能做到 但Native能做的事 WebApp很多做不到 光是Local Database WebApp就一堆问题了再来Dagger2 其实真的是好东西 在大型专案中 可以很有效的做到Module split 可以加快Multiple modules的编译速度还有解藕 (不过kapt是另一个造成编译变慢的问题)只是学习曲线很高 而且很容易错用(很多工程师把Dagger components当成Static object来用 大错特错)但一旦学会了几乎就等同于没学九阳神功跟有学九阳神功的差别碎片化的好处在于方便你做Composition 如同碎片化的好的话 你应该不会觉得痛苦反而会觉得碎片复用容易而且要Deprecating的时候很方便 会觉得很痛苦 那很大机率是碎片化的不好 可以仔细看看是不是用太多inheritance....我常常看到很多工程师很爱 inheritance 继承的到处都是结果就是要scale或是拔功能的时候世界毁灭
作者: robber1234 (超痛恨嘴炮)   2021-03-05 12:34:00
Android更新是很快,但没有表示什么都要用最新的原文写的很多都能认同,是很资深的工程师,但不代表入门就会很困难.哪个平台哪个框架不是一直改而且我真的很讨厌RxJava, 这我最能认同原作XD
作者: aids61517 (奇欧巴肯)   2021-03-05 13:00:00
写Android 7年了,我觉得最近几年进步速度满大的首先是宣布Kotlin成为一级语言后,Kotlin使用率极速上升,然后推出了Jetpack Architecture,推出了开发上常用的解决方案,MVVM用的ViewModel、有生命周期概念的LiveData、数据库Room、RecyclerView用的Paging(虽然我没用XD)...等,还有Kotlin正式推出的Coroutine,我在某个社群说过这东西以后可以取代掉RxJava还一堆人惊讶当然缺点也是有,我有点不喜欢那个WorkManager,然后一些基于安全性或隐私权考量的一些api调整,但整体我觉得利仍大于弊,反而我觉得现在新手比过往更好上手,虽然要学的Library很多,但是有比较完整的解决方案和教学总比新手自己胡搞瞎搞来得好,最后想说的是,databinding是拉机XD
作者: robber1234 (超痛恨嘴炮)   2021-03-05 13:14:00
data binding真的拉机,从没学过.谁要在xml上写code
作者: meowyih (meowyih)   2021-03-05 14:04:00
拿win平台来说,win32->MFC->WinForm->WPF->UWP好像也是学不完,但是大部分的东西反正最后都会没人用的,还是win32 api最稳当XD 什么?不用UWP写不能上MS Store? 反正UWP推不动MS自己就会转弯了~ (笑)
作者: LordCHTsai (我饿了)   2021-03-05 14:20:00
xml写code、databinding,这些web已经写了十年了XD
作者: baobomb (baobomb)   2021-03-05 15:36:00
不知道大家对RxJava的看法是什么??我很常看到工程师认为RxJava是用来处理multi thread, 所以会被coroutine取代但其实RxJava是用来处理Stream layer separating的. 试想在一个App启动时 如果有一大堆的critical path服务需要在background thread init. 然后其他的usecase需要等待这些服务完成后马上接续其他的动作没有RxJava 以往就是create一大堆的callback listener.而且很难处理buffer. 但React programming很好的处理了这问题. Coroutine有Flow 可以做到一样的效果, 但还不Stable 我自己用起来觉得还是RxJava更直接.而且CoroutineScope在多线程的情况下需要一直重复切换Context 用起来会导致function变很冗长. 但我自己也是乐观看待 毕竟很多人误用RxJava(不懂得复用Subscription,Stream,而是每次有需求就subscribe一次 最后也没有好好Dispose导致memory leak) Coroutine看起来可以解决这问题 但希望可以写起来更优美
作者: aids61517 (奇欧巴肯)   2021-03-05 15:59:00
我自己用Flow是没遇到什么问题,当然RxJava release那麽久了,你说Flow相较起来不stable是没错,但是我不知道你说用RxJava更直接是什么意思,有什么功能Rx做得到Flow做不到的吗?然后CoroutineScope在多线程的情况下需要一直重复切换Context,难道Rx不需要吗?会需要频繁切换大多都是background thread处理资料后需要更新UIRx也一定需要吧?满好奇你的case细节也可以去AndroidDev版讨论,我可不想被哈哈人嘘
作者: baobomb (baobomb)   2021-03-05 16:14:00
其实我也很喜欢Flow啦哈哈 只是很多工程师只是为了方便切换线程而用coroutine function内withContext写的到处都是 看的真的很头痛....RxJava写起来更有chain的感觉 可以在streams之间直接stream.subscribeOn/observeOn. 对我来说更能有效的强制工程师去细分function从而达到unit test更好写但Coroutine 的withContext这东西... 很容易让很多工程师滥用... 不是说不好 而是太方便了-.-
作者: aids61517 (奇欧巴肯)   2021-03-05 16:17:00
Flow有个flowOn(),应该可以达到你要的效果,至于到处写withContext()是能保证那个function的内容是用特定的Dispatcher去执行,这就看你们团队的讨论了
作者: jknm0510a (Kang)   2021-03-05 18:13:00
我觉得Coroutine比RxJava直觉多了耶!可能是我是先学前面再学后面
作者: iiiii (I take 5)   2021-03-06 11:26:00
Android Studio 每次按下更新钮,都要祷告
作者: angusyu (〒△〒)   2021-03-06 12:48:00
祷告?没有啊每次更新都没什么事
作者: u07f08 (放孩子的风筝)   2021-03-07 00:57:00
android studio 4之后的版本bug超多的好吗
作者: hicoy   2021-03-07 13:35:00
我自己是习惯等个一阵子在更新android studio 让同事帮忙除雷XD全吃一定是吃不完主要还是要做取舍 像上面讲到coroutine and RxJava先选一种学 另一种有需要再看 不过Google现在选的是coroutine了吧? 范例都改coroutine+flow了
作者: ginnyhuang (ginnyhuang)   2021-03-10 23:50:00
我倒觉得databinding超好用的耶,不用一堆 init,至于在xml编辑,大概因为习惯直接在xml coding 元件内容所以还蛮习惯的真的不用什么都用最新 lib XD,只有在开发新产品才会使用当下最新最稳定的 lib 版本。这部分 ios 比较惨吧,常常新版本都有不兼容的 function,直接给你停用出现 bug(同情地望向 ios 同事),android 至少不会让你旧的 function 不能用(或是功能有非常大落差),版本更新主要看新的调整有没有影响到自己的 app 再做调整就好是可以感受到对开发者的限制增多,但我觉得是让使用者的安全性和隐私提高,这是好事,而且统一的规范总比各厂牌手机魔改系统要好(对,我说的就是大部分陆厂手机以及少部分他国品牌,虽然个人认为这也是部分开发者种下的恶果),当你按照官方 sdk 开发却发现在某几个手机上表现不如预期才真令人抓狂...为了这几个例外又要再想办法额外 coding 让这些例外可以正常运行(晕)

Links booklink

Contact Us: admin [ a t ] ucptt.com