iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Mobile Development

關於 Flutter 開發的一些設計雜談 系列

過去我們多多少少聽過一些設計原則,例如:消除 Code Smell、SOLID,甚至是一些設計模式,在這個主題中,我會分享如何把這些設計想法融入 Flutter 的開發中,建構容易維護的程式。

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

Day 1 - 大家都喜歡簡單的程式碼,但是簡單卻不容易

只要給足夠的時間,我們都可以正確地完成功能,但過段時間再回頭來看,未經適當重構與設計的程式碼,早已滿目瘡痍,想改也改不動,只能一直 Workaround。如何在...

2022-09-15 ‧ 由 保羅 分享
DAY 2

Day 2 - 使用適合的 Widget,省時又省力

Flutter 是一個可以建構跨平台應用程式的框架,在開發的過程中,我們會透過組合各式各樣 Widget 來實現各式各樣的畫面。隨著需求越來越複雜,View 的...

2022-09-16 ‧ 由 保羅 分享
DAY 3

Day 3 - Widget 你已經長大了,是該獨立自主了

昨天我們提到一個狀況:有些情況是 Flutter 提供的 Widget 並不符合設計要求,而第三方套件中也沒有符合需求的套件,所以我們得自己實作。我們依照設計師...

2022-09-17 ‧ 由 保羅 分享
DAY 4

Day 4 - 把 Widget 作為參數,增加設計彈性

在前兩天的文章中,我們討論到使用抽取方法,或者抽取 Widget 處理 Large Class 的壞味道。在昨天的 Chat Room 例子中,原本過大的 Ch...

2022-09-18 ‧ 由 保羅 分享
DAY 5

Day 5 - 令人煩躁的按鈕事件傳遞

開發 UI 畫面的過程中,常見的功能開發情境有很多,除了顯示資訊以外,另外一個常見的情境是提供一個按鈕,讓使用者執行特定功能了。在 Flutter 中,如果要製...

2022-09-19 ‧ 由 保羅 分享
DAY 6

Day 6 - 用 NotificationListener 處理按鈕事件

在昨天的文章中,我們討論了兩種實現按鈕行為的方法。大多數的情況下,我們可以直接透過傳遞 onTap 參數解決。但是軟體會隨著需求不斷地演進,在昨天的例子中,假設...

2022-09-20 ‧ 由 保羅 分享
DAY 7

Day 7 - 跨元件分享狀態,橫跨數代的共同秘密

在前幾天的 Game List 的例子中,我們消除了 onTap 層層傳遞的問題。但是,如果我們仔細觀察的話,會發現 Game 也是同樣的情況,只要底層的哪個...

2022-09-21 ‧ 由 保羅 分享
DAY 8

Day 8 - 當狀態遇上複雜的操作邏輯

當我們在開發 Flutter 時,有些時候我們會需要不斷的改變狀態,並把改變後的狀態渲染至畫面上。當隨著需求越來越複雜,改變狀態的邏輯也會開始變得複雜。假設今天...

2022-09-22 ‧ 由 保羅 分享
DAY 9

Day 9 - 跨頁面共享狀態

在昨天的文章中,我們提到了可以使用狀態管理套件,把複雜的狀態感變邏輯放到裡頭。今天我們來聊聊狀態管理套件的另一個用途:共享狀態。假設今天 App 有一個 Hom...

2022-09-23 ‧ 由 保羅 分享
DAY 10

Day 10 - 暫存狀態 vs 程式狀態

當我們使用狀態管理之後,可能會思考,是否再也不需要使用 StatefulWidget 了?今天我們就來談談這個問題。首先,我們先看一個例子,假設今天畫設計師設計...

2022-09-24 ‧ 由 保羅 分享