2021 鐵人賽 一天一腳步,30天學會 Android Compose UI!
嗨!大家好,我是Teng:
今年的疫情蠻嚴重的,希望大家都過得安好,希望疫情快點過去,能回到一些線下技術聚會的時光~
不知不覺又到了鐵人賽的時間,經Kotlin讀書會的鼓舞,想試著藉由鐵人賽讓自己學會一些新的技術且分享給各位。
昨天我提到的三個問題,分別如下:
- 為什麼要學 Compose UI?
- Compose UI有什麼好處?
- 不學會怎樣嗎?
這幾個問題,我想先回朔到當時的時空背景來看,當然你也可以拉到最下面直接看我的想法。
- 歷史沿革
我一開始看到 Compose UI 的時候,第一個想法是原本的 xml UI 用得好好的,為什麼要推出學新的 UI 撰寫方式呢?而且當初剛入門學 Android 的時候,看到的一些技術文章都會提倡 Android 的優秀之處就是強制 UI(xml) 跟程式碼分離,現在怎麼反而要把UI跟程式混在一起了呢?
- 但這邊要停一下,回頭想想 Android 這個語言從誕生到了現在有多久了?一查之下發現,快要20年了!所以當時的一些好處,因為現在時空背景的不同,已經不一樣了,譬如:
- xml 用來標示 UI 所有的 Android 工程師都很熟悉了,但是到底好不好用?
- 我們每天都用得到Android的View,可以猜測一下目前View有多少行了? 可以看下圖,已經有三萬多行。
- 近年來也有了 Flutter 宣告式 UI 語言成功經驗在前面。
- 軟體開發測試的需求越來越多。 (要怎麼測試xml與程式碼的互動? )
假設一下,你是要負責重構 View 的工程師,你會怎麼規劃重構 View 這個Class,需要多久時間?
- Compose UI 有哪些優缺點?
整理一下我目前了解到的優點:
- 已學過宣告式語言的人來學很快。
- 內建了比較現代的 Android UI Design。
- UI 設計比以前方便使用。
- 寫測試比較直覺。
- 向下相容。
- Compose UI 包含哪些內容?
已涵蓋目前所有的基礎UI元件,包括Raw, Cow, Graphics, Grad layout等等。 也有Android UI元件讓你繼續使用現有的UI 元件。
- 小結
我認為這是一個短期內不學不會怎樣,學了會具備更多開發手段的技術。
同時我也相信接下來 Google 應該會盡量把資源都放在 Compose UI 的發展上,就像以前的 Relative Layout ,在現在的 IDE 上已經慢慢的不支援了一樣。
說完這些,有沒有人有不同的想法?歡迎提出,哈哈!
沒有問題的話,明天就開始進入實作囉!
本文同步發表在 iT邦幫忙 上 文章連結
參考資料: