iT邦幫忙

鐵人檔案

第 12 屆 iThome 鐵人賽
回列表
Mobile Development

Why Flutter why? 從表層到底層,從如何到為何。 系列

Flutter這一年來也開始在台灣逐漸熱門起來了,中文的各種教學資源也越來越豐富,但就我所見大多數的文章,大部分的篇幅還是集中在表層的各種Widget, Library如何使用上,比較少觸碰到框架內部如Render Tree, Flutter Engine,或是有各種狀態管理如何使用的文章,但比較少解釋到底為什麼要這樣設計?要解決什麼問題?總之這系列計畫是寫給已經有接觸過Flutter,但想要瞭解的更深入,更清楚自己到底在做什麼的人。至於完全沒接觸過Flutter的人,雖然這系列不會手把手教你如何寫Flutter,但如果你在學習過程中遇到一些不知道為什麼要這樣做的時刻,也許你能在這裡找到答案。

鐵人鍊成 | 共 30 篇文章 | 48 人訂閱 訂閱系列文 RSS系列文
DAY 21

days[20] = "Render Pipeline是怎麼運作的?"

我們在之前的文章中已經花了不少的篇幅來探索Flutter的三顆渲染樹是怎麼運作的,不過其實這也只是整個Flutter Render Pipeline的一部分而已...

2020-09-21 ‧ 由 Joshua 分享
DAY 22

days[21] = "Layout是怎麼運作的?"

我們在上一篇提到在Flutter整個Render Pipeline中,光是Layout這個步驟就值得獨立一篇出來討論,因此今天我們就繼續來深入研究整個Layou...

2020-09-22 ‧ 由 Joshua 分享
DAY 23

days[22] = "如何做一個Pacman遊戲?"

雖然說這個系列到目前為止的主軸是介紹一些Flutter底層實作,或是一些設計模式、觀念、函式庫的分析等等,其實最初的目標就是只希望可以寫一些沒有被寫過一百遍的東...

2020-09-23 ‧ 由 Joshua 分享
DAY 24

days[23] = "Flutter Web是怎麼運作的?(上)"

就和之前提的狀態管理一樣,Web的支援在Flutter社群也是一個熱門到有點好笑的話題,幾乎每一兩週就會有人問「現在stable了嗎?」「可以上producti...

2020-09-24 ‧ 由 Joshua 分享
DAY 25

days[24] = "Flutter Web是怎麼運作的?(下)"

上一篇我們談到整個Flutter App+Framework在Web上可以直接編譯成Javascript來執行,而Flutter Framework在最終產出L...

2020-09-25 ‧ 由 Joshua 分享
DAY 26

days[25] = "為什麼動畫需要Ticker?"

類似之前的為什麼build()在State裡?,這也是我剛開始學Flutter的時候,心裡曾經出現的小小疑問。如果你有在看這系列,應該會常常看到我使用Timer...

2020-09-26 ‧ 由 Joshua 分享
DAY 27

days[26] = "為什麼Flutter的渲染樹這麼複雜?(上)"

如果你有在Follow這系列的話,應該會注意到我們每次談到關於三顆渲染樹中的細節時,事情總是會變得非常有趣。具體上來說,我指的是這幾篇的內容: days[4...

2020-09-27 ‧ 由 Joshua 分享
DAY 28

days[27] = "為什麼Flutter的渲染樹這麼複雜?(中)"

我們在上一篇提到,Flutter之所以有三顆渲染樹,而其中的各種演算法和機制之所以如此複雜,一切都是為了支援Flutter激進式複合的設計理念,讓我們可以在開發...

2020-09-28 ‧ 由 Joshua 分享
DAY 29

days[28] = "為什麼Flutter的渲染樹這麼複雜?(下)"

上一篇我們講到RenderObject layout和Widget/Element build的演算法是如何幫助Flutter迅速的處理節點數量龐大的渲染樹,以...

2020-09-29 ‧ 由 Joshua 分享
DAY 30

days[29] = "為什麼要瞭解底層實作?為什麼要問為什麼?"

雖然作為結尾也還算切題,但仔細想想或許更應該把它放在這系列的開頭?我想這可能是個雞生蛋蛋生雞的問題。如果不先討論我們為什麼要瞭解Flutter這麼多的實作細節和...

2020-09-30 ‧ 由 Joshua 分享