ViewModel
看似不起眼,實際上是個深藏不露的厲害角色,對於保存數據做了優化,程式碼也相當簡潔,而且跟其他的組件都做了很多整合,必學!
Data Binding
很炫炮的東西,把大部分對 UI 的操作移到 xml 去做,但是也因為程式碼都在 xml 檔裡面,坑很多,除錯也很不容易。
LiveData
一下就能上手,最簡單的就是反正不管什麼數據全部用 MutableLiveData
包起來就好,可以跟著生命週期的變化接收數據的更新,好像數據是有生命的一樣。
Room
用了之後完全回不去原生的 SQLite,把 CRUD 的操作都用註解的方式來寫,大幅提升可讀性和維護性,除錯也更確實迅速。
Paging
不只可以用來處理分頁的功能,一般的列表也能使用,對於效能和使用者體驗優化了很多,缺點是蠻複雜的,如果沒有特殊需求,其實還是用原生的 RecyclerView 就夠了。
Navigation
切換 Fragments 的神器!一行代碼搞定換頁、返回、丟參數、動畫。
缺點是切換 Fragment 的動作是用 replace,要改成 show、hide 很麻煩,比較不彈性。
WorkManager
執行背景任務的首選,把各項職責清楚分成不同類別,可讀性很高,並解決了不同 API 版本兼容的問題。
今年是第一次參賽,在八月初的時候開始查資料跟寫 sample,等於提前了一個月 + 兩個禮拜準備,
(鐵人賽 9/2 開始,但我 9/16 才開賽),時間其實非常充裕,再加上七月的時候跟女朋友分手,
對鐵人賽的準備是一大利多,更讓我能心無旁騖的準備文章跟寫 code,大概在還有十幾天的時候就寫完了,
後面幾乎都是躺著等過十二點把庫存拿出來發而已,算是很沒有壓力的完賽了。
一開始其實會擔心很多東西,像是會不會寫到十篇就沒東西了、寫錯會不會被嘴、
每天膽戰心驚的訂了好幾個鬧鐘怕自己漏發就斷了紀錄等等的...
在不斷催眠自己,反正我的文章應該也沒什麼人看吧,也不是什麼教學文章,只是心得筆記而已,
秉持這種厚臉皮的精神,終究是堅持下來了。
套句之前聽到 Android Taipei 的講者說過的一段話:
不管講的是好是壞,只要你敢站上台分享,收穫最多的一定是你自己
期許未來有更多人,當然還有自己,能夠更踴躍的分享所見所聞,
把學到的知識傳出去,分享的喜悅收進來,大家一起發大財 ^_^