iT邦幫忙

鐵人檔案

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

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

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

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

達標好文 days[0] = "為什麼你應該現在開始學習Flutter?"

總之先上個圖。雖然這系列的定位主要是針對正在學習或已經有些經驗的Flutter開發者,深入探討一些開發過程中,大家可能比較「知其然而不知其所以然」的問題。但在一...

2020-09-01 ‧ 由 Joshua 分享
DAY 2

days[1] = "為什麼build()在State裡?"

首先讓我們回顧一下可愛的StatelessWidget: class Foo extends StatelessWidget { @override W...

2020-09-02 ‧ 由 Joshua 分享
DAY 3

days[2] = "為什麼選擇Dart?"

這應該也是很多人剛開始接觸Flutter時心裡會有的疑問,而對於當年逃離Java的魔掌,和Kotlin墜入愛河,度過兩年纏綿悱惻如膠似漆的生活的我來說,看到Da...

2020-09-03 ‧ 由 Joshua 分享
DAY 4

days[3] = "為什麼需要狀態管理?"

狀態管理是Flutter長久以來最熱門的話題之一,事實上這在Flutter社群已經火熱/渾沌到一個荒謬的境界了,幾乎每幾週就會有新的狀態管理套件出現...然後就...

2020-09-04 ‧ 由 Joshua 分享
DAY 5

days[4] = "三顆渲染樹是如何運作的?"

Widget Tree,Element Tree,RenderObject Tree,稍微接觸過Flutter一段時間的朋友應該或多或少都聽過這三顆鼎鼎大名的渲...

2020-09-05 ‧ 由 Joshua 分享
DAY 6

days[5] = "三顆渲染樹是如何運作的?(二)"

上次我們從RichText出發,一步步摸索出了Widget, Element, RenderObject各自的責任,和彼此之間的相互關係。我們也看到RichTe...

2020-09-06 ‧ 由 Joshua 分享
DAY 7

days[6] = "三顆渲染樹是如何運作的?(三)"

接下來我們就要來實際走訪一次整個渲染流程,看看Flutter App是怎麼啟動,三顆渲染樹是怎麼從無到有被建立起來,又是怎麼更新的。 首先介紹一下這次要使用的範...

2020-09-07 ‧ 由 Joshua 分享
DAY 8

days[7] = "三顆渲染樹是如何運作的?(四)"

我保證這是渲染樹系列最後一篇了,我們將走訪完MyTimer的渲染和更新,看完你就會成為全台灣少數幾個真正瞭解三顆渲染樹運作方式的人了。還在看的人撐下去啊,終點就...

2020-09-08 ‧ 由 Joshua 分享
DAY 9

days[8] = "為什麼需要依賴注入?(上)"

總之,依賴注入就是為了使程式更有彈性,把class A需要的class B從外面傳入。好的講完了,可以收工了。什麼?還不到300字?好吧,繼續來混一些字數......

2020-09-09 ‧ 由 Joshua 分享
DAY 10

days[9] = "為什麼需要依賴注入?(下)"

或:為什麼你以為的依賴注入可能不是依賴注入,如果你是從Flutter社群學到這個詞的話... 上一篇我們以MusicRecommender為例,說明了若在類別...

2020-09-10 ‧ 由 Joshua 分享