[討論] 專家也跟不上Android生態系的變化?

看板Soft_Job (軟體人)作者 (達)時間3年前 (2021/03/04 20:42), 編輯推噓23(24195)
留言120則, 25人參與, 3年前最新討論串1/2 (看更多)
網路上看到一篇文章 講的很辛酸的感覺 請問這是文章作者本身不夠強 還是Android開發者真的就是這樣的慘狀 thanks (全文頗長,節錄內文如下) https://www.jianshu.com/p/ee0ed95b9a01 請允許我用 Android 開發者的背景,描述一下我這兩年所經歷的事情: 在過去的兩年裏,我啓動了三個項目,我一直爭取,至少參與其中一個項目的開發工作。 我回過頭來看這些已經存在的項目,並分析這些項目前期所做的技術決定對整個項目的影 響。我寫了這篇文章,也製作了很多 Android 開發的高級課程,也花了很多時間在互聯 網上討論 Android 相關的主題。 即使這樣,我今天依然感覺跟不上 Android 整個生態系統的變化。可想而知,對於那些 經驗不足,需要指導的 Android 開發者而言,是多麼地絕望。我現在已經無法想像,現 在從頭開始學習 Android 的感覺。當你好不容易學會了某個框架或者工具,覺得它很好 用的時候,它或許就要過時了。現在也許是加入 Android 開發大家庭最壞的時候。 Google 正爲他們的“包容性”沾沾自喜,但這一切,對初學者來說,都是極其痛苦的。 Google 在 Android 框架中所做的事情,會導致大量的時間浪費。我們需要花費數小時的 時間才能讀完所有更改的內容,更別說在項目中應用它們了。我寧願花時間來創造價值, 而不是捨本逐末。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 107.161.88.23 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1614861768.A.1DA.html

03/04 21:14, 3年前 , 1F
邊開火邊移動
03/04 21:14, 1F

03/04 21:30, 3年前 , 2F
框架 引擎 平台 => 軍備競賽
03/04 21:30, 2F

03/04 21:31, 3年前 , 3F
開發者 := 平台競爭之下被打出去的子彈跟砲灰.
03/04 21:31, 3F

03/04 21:40, 3年前 , 4F
要怪就怪甲骨文衝康導致谷哥轉向Kotlin,以後有新科技
03/04 21:40, 4F

03/04 21:40, 3年前 , 5F
出來,要決定開發語言時,一定不會選Java
03/04 21:40, 5F

03/04 21:43, 3年前 , 6F
2019 kotlin編譯時間最好的情況增加50%?2020有改善嗎?
03/04 21:43, 6F

03/04 21:52, 3年前 , 7F

03/04 21:52, 3年前 , 8F
ndroid-development-december-2020/ 看看2020的比對xd
03/04 21:52, 8F

03/04 21:53, 3年前 , 9F
03/04 21:53, 9F

03/04 22:00, 3年前 , 10F
是 現在光跑背景就有這麼多選項 http://i.imgur.com/M
03/04 22:00, 10F

03/04 22:00, 3年前 , 11F
HEEDHJ.jpg
03/04 22:00, 11F

03/04 22:00, 3年前 , 12F

03/04 22:01, 3年前 , 13F
然後workmanager裡面還包了他們以前宣稱的幾種“完美
03/04 22:01, 13F

03/04 22:01, 3年前 , 14F
的解決方法”
03/04 22:01, 14F

03/04 22:02, 3年前 , 15F

03/04 22:46, 3年前 , 16F
真的r
03/04 22:46, 16F

03/04 23:38, 3年前 , 17F
幹我隔壁的同事也常常在幹醮每年八九月都要重新弄一次
03/04 23:38, 17F

03/04 23:38, 3年前 , 18F
Android 的東西,不然一堆套件都不能用惹
03/04 23:38, 18F

03/04 23:42, 3年前 , 19F
所以才不找寫Android的工作
03/04 23:42, 19F

03/05 00:11, 3年前 , 20F
Android 真的沒事不要隨便進來
03/05 00:11, 20F

03/05 02:17, 3年前 , 21F
kotlin爽爽
03/05 02:17, 21F

03/05 05:47, 3年前 , 22F
一個框架或工具的過時 必有他的原因 像Eventbus, Asyncta
03/05 05:47, 22F

03/05 05:47, 3年前 , 23F
sk都是因為有著問題 才有人提出更好的方式
03/05 05:47, 23F

03/05 05:48, 3年前 , 24F
kotlin的出現也並不是單純的複製Java而已 也帶來很多好處
03/05 05:48, 24F

03/05 05:49, 3年前 , 25F
如果都不追求更好更完美的框架或工具 那就乾脆WebApp弄一
03/05 05:49, 25F

03/05 05:49, 3年前 , 26F
弄 跟眾多銀行的App一樣 能跑就好
03/05 05:49, 26F

03/05 06:26, 3年前 , 27F
也沒到每年要重用這麼誇張吧 並不需要全都追新的
03/05 06:26, 27F

03/05 06:27, 3年前 , 28F
例如dagger2都已經好幾年了 最近公司才想導入..
03/05 06:27, 28F

03/05 07:30, 3年前 , 29F
難怪被os壟斷 從pc時代開始
03/05 07:30, 29F

03/05 07:55, 3年前 , 30F
dragger也是很麻煩到一個極致,所以才改良出2和hilt,
03/05 07:55, 30F

03/05 07:55, 3年前 , 31F
結果就是要你繼續學吧
03/05 07:55, 31F

03/05 07:57, 3年前 , 32F
推 baobomb
03/05 07:57, 32F

03/05 08:12, 3年前 , 33F
Flutter2也來囉,歡迎學Dart
03/05 08:12, 33F

03/05 08:20, 3年前 , 34F
持續學習,了解新框架和工具能帶來的好處才是基本的吧
03/05 08:20, 34F

03/05 08:21, 3年前 , 35F
碎片化很真的很痛苦,安卓真的比蘋果難寫很多
03/05 08:21, 35F

03/05 10:11, 3年前 , 36F
非走Native App不可嗎?轉Web app是否可行?
03/05 10:11, 36F

03/05 10:26, 3年前 , 37F
WebApp能做到的事 Native都能做到 但Native能做的事 WebA
03/05 10:26, 37F

03/05 10:26, 3年前 , 38F
pp很多做不到 光是Local Database WebApp就一堆問題了
03/05 10:26, 38F

03/05 10:32, 3年前 , 39F
再來Dagger2 其實真的是好東西 在大型專案中 可以很有效
03/05 10:32, 39F
還有 41 則推文
03/05 15:39, 3年前 , 81F
沒有RxJava 以往就是create一大堆的callback listener.
03/05 15:39, 81F

03/05 15:39, 3年前 , 82F
而且很難處理buffer. 但React programming很好的處理了
03/05 15:39, 82F

03/05 15:39, 3年前 , 83F
這問題. Coroutine有Flow 可以做到一樣的效果, 但還不Sta
03/05 15:39, 83F

03/05 15:39, 3年前 , 84F
ble 我自己用起來覺得還是RxJava更直接.
03/05 15:39, 84F

03/05 15:43, 3年前 , 85F
而且CoroutineScope在多線程的情況下需要一直重複切換Con
03/05 15:43, 85F

03/05 15:43, 3年前 , 86F
text 用起來會導致function變很冗長. 但我自己也是樂觀
03/05 15:43, 86F

03/05 15:43, 3年前 , 87F
看待 畢竟很多人誤用RxJava(不懂得復用Subscription,Stre
03/05 15:43, 87F

03/05 15:43, 3年前 , 88F
am,而是每次有需求就subscribe一次 最後也沒有好好Dispos
03/05 15:43, 88F

03/05 15:43, 3年前 , 89F
e導致memory leak) Coroutine看起來可以解決這問題 但希
03/05 15:43, 89F

03/05 15:43, 3年前 , 90F
望可以寫起來更優美
03/05 15:43, 90F

03/05 15:59, 3年前 , 91F
我自己用Flow是沒遇到什麼問題,當然RxJava release那
03/05 15:59, 91F

03/05 16:00, 3年前 , 92F
麽久了,你說Flow相較起來不stable是沒錯,但是我不知
03/05 16:00, 92F

03/05 16:00, 3年前 , 93F
道你說用RxJava更直接是什麼意思,有什麼功能Rx做得到
03/05 16:00, 93F

03/05 16:01, 3年前 , 94F
Flow做不到的嗎?然後CoroutineScope在多線程的情況下
03/05 16:01, 94F

03/05 16:02, 3年前 , 95F
需要一直重複切換Context,難道Rx不需要嗎?會需要頻繁
03/05 16:02, 95F

03/05 16:03, 3年前 , 96F
切換大多都是background thread處理資料後需要更新UI
03/05 16:03, 96F

03/05 16:04, 3年前 , 97F
Rx也一定需要吧?滿好奇你的case
03/05 16:04, 97F

03/05 16:14, 3年前 , 98F
細節也可以去AndroidDev版討論,我可不想被哈哈人噓
03/05 16:14, 98F

03/05 16:14, 3年前 , 99F
其實我也很喜歡Flow啦哈哈 只是很多工程師只是為了方便
03/05 16:14, 99F

03/05 16:14, 3年前 , 100F
切換線程而用coroutine function內withContext寫的到處
03/05 16:14, 100F

03/05 16:14, 3年前 , 101F
都是 看的真的很頭痛....
03/05 16:14, 101F

03/05 16:14, 3年前 , 102F
RxJava寫起來更有chain的感覺 可以在streams之間直接stre
03/05 16:14, 102F

03/05 16:14, 3年前 , 103F
am.subscribeOn/observeOn. 對我來說更能有效的強制工程
03/05 16:14, 103F

03/05 16:14, 3年前 , 104F
師去細分function從而達到unit test更好寫
03/05 16:14, 104F

03/05 16:14, 3年前 , 105F
但Coroutine 的withContext這東西... 很容易讓很多工程師
03/05 16:14, 105F

03/05 16:14, 3年前 , 106F
濫用... 不是說不好 而是太方便了-.-
03/05 16:14, 106F

03/05 16:17, 3年前 , 107F
Flow有個flowOn(),應該可以達到你要的效果,至於到處
03/05 16:17, 107F

03/05 16:17, 3年前 , 108F
寫withContext()是能保證那個function的內容是用特定的
03/05 16:17, 108F

03/05 16:18, 3年前 , 109F
Dispatcher去執行,這就看你們團隊的討論了
03/05 16:18, 109F

03/05 18:13, 3年前 , 110F
我覺得Coroutine比RxJava直覺多了耶!可能是我是先學前
03/05 18:13, 110F

03/05 18:13, 3年前 , 111F
面再學後面
03/05 18:13, 111F

03/06 11:26, 3年前 , 112F
Android Studio 每次按下更新鈕,都要禱告
03/06 11:26, 112F

03/06 12:48, 3年前 , 113F
禱告?沒有啊每次更新都沒什麼事
03/06 12:48, 113F

03/07 00:57, 3年前 , 114F
android studio 4之後的版本bug超多的好嗎
03/07 00:57, 114F

03/07 13:35, 3年前 , 115F
我自己是習慣等個一陣子在更新android studio 讓同事幫忙
03/07 13:35, 115F

03/07 13:35, 3年前 , 116F
除雷XD
03/07 13:35, 116F

03/07 13:41, 3年前 , 117F
全吃一定是吃不完
03/07 13:41, 117F

03/07 13:42, 3年前 , 118F
主要還是要做取捨 像上面講到coroutine and RxJava
03/07 13:42, 118F

03/07 13:45, 3年前 , 119F
先選一種學 另一種有需要再看 不過Google現在選的是corouti
03/07 13:45, 119F

03/07 13:46, 3年前 , 120F
ne了吧? 範例都改coroutine+flow了
03/07 13:46, 120F
文章代碼(AID): #1WGDN87Q (Soft_Job)
文章代碼(AID): #1WGDN87Q (Soft_Job)