iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 30
0

I did it!

沒想到自己可以堅持 30 天不中斷的完成「Android 十全大補」系列文章,身為一個要工作的爸爸,雖然必須每天焦頭爛額地擠出時間,但同時也是真心覺得開心可以把時間投入自己有興趣的領域,感謝幫忙照顧小孩的老婆,感謝颱風假、不用補班的工作、國慶連假,以及所有的讀者。

很開心能有這次的機會重新全面的檢視自己這十年來的在 Android 上的心得,可以重新把整個 Android 開發所需要的知識、工具,都再一次的回顧、學習感覺非常的好。

回顧

在 30 天的篇幅裡,我們大家一起從基本的 IDE 安裝、Hello World,到了解 View/Activity/Fragment 機制,學會使用特殊的 View 諸如 RecyclerView 呈現列表式資料或是 ConstraintLayout 來平坦地描述各個 View 之間的關係。

中期我們學會了如何用 Retrofit 從 api 獲取資料並使用 Room 存在 DB 裡,使用 RxJava 輕鬆的切換在多個不同的 thread 間切換觀察資料的流動,探討 Annotation 的定義以及 Annotation Processing 是如何在 compile 的時候幫我們建立程式碼。

慢慢進階到討論了 SOLIDClean ArchitectureMVVMModularization 等架構問題,學會如何使用 Daggerkoin 從外部注入 dependency。

緊接著是測試三部曲,Unit Test 執行單元測試、Mockito 模擬外部依賴、Espresso 來運行 UI 測試,Jenkins 的基本介紹與 hook ,以及最後的 App Bundle 來打包我們所有程式碼讓 Google play 動態產生最終使用的 apk。

希望這樣的編排與內容能讓你可以循序漸進地熟悉整個 Android 開發的流程,Android 還有很多有趣的內容是我們沒能在 30 天的內容裡提到的,希望我們提供給你很好的起點繼續探索 Android 的世界。
如果你發現錯過了可能有興趣的內容,歡迎回 Android 十全大補首頁查詢:https://ithelp.ithome.com.tw/users/20120419/ironman/2641

當這個系列越來越多人看的時候,內心非常開心,卻也十分煩惱,要是哪裡寫錯了,或是寫到一半因為任何因素放棄,或是文章品質不佳,感覺對各位讀者以及背後支持我參賽的人們很抱歉,所以憑著意志力,雖然有幾天拖到快寫不完,最後還是在時限內擠出來了。

身為一個工作超過十年的 Android 工程師,從參賽一開始自詡要分享自己十年來的經驗給讀者,慢慢的發現自己其實還有很多地方需要學習,一天一天的累積下來,最後我相信自己學到的可能比所有讀者都多,也鼓勵大家如果有其他類似機會、或明年的 iT 邦幫忙鐵人賽,可以把握這種鞭策自己的機會。

展望

這是 Android 的第一個十年,希望還能看到下個十年,但會不會有呢?
Google 是著名的左右互搏高手,後起之秀 Flutter 崛起速度很快,同時能開發好幾個平台加上效能幾乎沒有差異,實在是令人眼睛一亮,但二個親兒子間的對決到底鹿死誰手,或許還要讓子彈飛一會兒。

https://ithelp.ithome.com.tw/upload/images/20191014/20120419M05AKIWxha.jpg

資料來源:
https://twitter.com/leftoblique/status/1179476277549400064

更多 Google 砍掉的服務:
https://github.com/codyogden/killedbygoogle

但不管如何可以確定的是最近幾年、甚至接下來十年都將會是開發者的黃金時代,筆者剛開始寫程式第一份工作月薪不到三萬,但現在可能整個台北都找不到月薪不到三萬的 Android 開發者了吧,而學 Android 跟其他領域比起來有什麼好處呢?筆者覺得:

  • vs Backend:
    Backend 跟 Android 同樣程度薪水可能略高,但通常需要 on call,壓力可能稍微大些。
    但以工程師生涯來說,擁有 Backend 的經歷是蠻重要的,比較有規模的公司很少看到 CTO 是純 Mobile/Web 出身的,通常是純 Backend 經歷或是混合多種技能居多。
  • vs iOS:
    iOS 的開發限制比起 Android 多了些,Android 相對自由些。
    但 iOS 開發者通常感覺比較潮,私底下跟朋友開玩笑討論過一個話題,怎麼分辨身處 Android 開發者聚會或 iOS 開發者聚會呢?主要差別在於下雨天時,腳臭味的程度。
  • vs Web:
    Web 技術應該是演化最快的一個領域了,而且相較於 mobile,擁有更多工程師與更高的關注度,看 iT 邦幫忙鐵人賽的參賽人數就可以略知一二,不過筆者對 JavaScript 實在是說不上喜歡。

以上比較心得純屬個人好惡與個人觀點,不一定真正反映現實世界,只要有心人人都可以在各自的領域成為高手,也歡迎分享你們的心得呦~

最後不敢說 30 天內完成了一份曠世巨作,但希望我的心得與分享能讓各位順利的入門或是進到 Android 開發的下一個境界,再次感謝照顧小孩的老婆,感謝颱風假、不用補班的工作、國慶連假,以及所有的讀者。


上一篇
[Android 十全大補] App Bundle
系列文
Android 十全大補30

1 則留言

1
kalok1989
iT邦新手 5 級 ‧ 2019-10-22 01:06:43

感謝分享, 你的系列文章很全面

我要留言

立即登入留言