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 2] Leetcode 206. Reverse Linked List (C++)

>>:  Day07. 想练成 Blue Prism太极拳吗? 忘记所有的招式吧!-从Excel Worksheet读取表格资料

鼠年全马铁人挑战 WEEK 40:最终章

               Photo by Markus Spiske on Unsplash...

第 24 集:Bootstrap 客制化 Container 容器

此篇会教学如何将 Bootstrap container 容器,自干一个出来。 若是使用 Wrap...

使用ssh 的方式使用git

第一步:电脑生成ssh的公密匙,并存放好; 第二步:在git中打开项目之後,按下面的菜单栏,然後把共...

D12: 工程师太师了: 第6.5话

工程师太师了: 第6.5话 杂记: 串列链结是一种资料结构,可用来存取一连串有顺序的资料,读取较慢,...

[Day1] 一切从0开始

起点 因为痛过,所以改变 故事是这样开始的,2019年在炎热的7月,我正式加入一个新创团队,一个热腾...