iT邦幫忙

2021 iThome 鐵人賽

DAY 2
0
Mobile Development

一天一腳步,30天學會 Android Compose UI!系列 第 2

Day 2 為什麼要學Compose UI?

嗨!大家好,我是Teng:

今年的疫情蠻嚴重的,希望大家都過得安好,
希望疫情快點過去,能回到一些線下技術聚會的時光~

不知不覺又到了鐵人賽的時間,經Kotlin讀書會的鼓舞,
想試著藉由鐵人賽讓自己學會一些新的技術且分享給各位。

昨天我提到的三個問題,分別如下:

  1. 為什麼要學 Compose UI?
  2. Compose UI有什麼好處?
  3. 不學會怎樣嗎?

這幾個問題,我想先回朔到當時的時空背景來看,
當然你也可以拉到最下面直接看我的想法。

  • 歷史沿革

    我一開始看到 Compose UI 的時候,第一個想法是原本的 xml UI 用得好好的,為什麼要推出學新的 UI 撰寫方式呢?而且當初剛入門學 Android 的時候,看到的一些技術文章都會提倡 Android 的優秀之處就是強制 UI(xml) 跟程式碼分離,現在怎麼反而要把UI跟程式混在一起了呢?

    但這邊要停一下,回頭想想 Android 這個語言從誕生到了現在有多久了?
    一查之下發現,快要20年了!所以當時的一些好處,因為現在時空背景的不同,已經不一樣了,譬如:

  1. xml 用來標示 UI 所有的 Android 工程師都很熟悉了,但是到底好不好用?
  2. 我們每天都用得到Android的View,可以猜測一下目前View有多少行了?
    不用偷看答案,已經有三萬多行。
  3. 近年來也有了 Flutter 宣告式 UI 語言成功經驗在前面。
  4. 軟體開發測試的需求越來越多。 (要怎麼測試xml與程式的互動?)
    打開View.java檔,看看精美的3萬多行 code

假設一下,你是要負責重構 View 的工程師,你會怎麼規劃重構 View 這個Class,需要多久時間?


  • Compose UI 有哪些優缺點?

整理一下我目前了解到的優點:

  1. 已學過宣告式語言的人來學很快。
  2. 內建了比較現代的 Android UI Design。
  3. UI 設計比以前方便使用。
  4. 寫測試比較直覺。
  5. 向下相容。

  • Compose UI 包含哪些內容?

已涵蓋目前所有的基礎UI元件,包括Raw, Cow, Graphics, Grad layout等等。
也有Android UI元件讓你繼續使用現有的UI 元件。

  • 小結

我認為這是一個短期內不學不會怎樣,學了會具備更多開發手段的技術。

同時我也相信接下來 Google 應該會盡量把資源都放在 Compose UI 的發展上,就像以前的 Relative Layout ,在現在的 IDE 上已經慢慢的不支援了一樣。

說完這些,有沒有人有不同的想法?歡迎提出,哈哈!
沒有問題的話,明天就開始進入實作囉!

本文同步發表在 medium 上 文章連結

參考資料:


上一篇
Day 1 前言
下一篇
Day 3 Compose UI Hello World
系列文
一天一腳步,30天學會 Android Compose UI!30

尚未有邦友留言

立即登入留言