iT邦幫忙

2025 iThome 鐵人賽

DAY 6
1

接下來是開發之旅的全新篇~過去的一週裡,主要全心投入在n8n的世界,從無到有,打造了一個由AI驅動的自動化內容後端,現在準備就緒,將從後端的伺服器,走向前端的使用者介面。

是時候親手為「日更靈感App」建立初始化Flutter專案,並規劃一個能支撐未來所有功能的穩固架構。

一、flutter create我們的專案

請確保已經根據Flutter官方文件安裝並設定好Flutter SDK,可以透過在終端機執行flutter doctor來確認環境是否準備就緒。

在本地終端機安裝,可以使用Homebrew(macOS的套件管理器),若你希望未來可以不依賴第三方工具,路徑清楚簡單,之後更新直接cd ~/development/flutter && git pull,就跳過,我則是直接使用下方自己習慣的IDE。

  • Step1. 開啟你的終端機 (Terminal):
    cd到你希望存放專案的資料夾,執行創世指令:Bash!

  • Step2. flutter create 3xinspire:
    這個指令會自動產生一個名為3xinspire的資料夾,裡面包含了Flutter專案所需的所有基本檔案和一個經典的計數器範例 App。

或者像我一樣,直接在VScode上安裝使用~可以用幾喜歡的IDE,推薦VS Code或 Android Studio!

https://ithelp.ithome.com.tw/upload/images/20250908/20177971topP7tLOB3.png

二、建築藍圖 —— 可擴展的資料夾結構

如果我們把所有的程式碼都丟在lib(核心程式碼與函式庫)資料夾底下,專案很快就會變得像一團糾纏的毛線,難以維護。因此,在寫下第一行功能程式碼之前,我們先來當一次「架構師」,規劃好我們整個工廠的格局。

我將試著使用乾淨架構 (Clean Architecture) 的分層結構,將專案的職責清晰地劃分開來。在lib資料夾底下,建立以下三個核心資料夾:

lib/
├── data/(models / datasources / repositories) # 數據層:負責所有與數據相關的事務
├── presentation/(pages / widgets / providers) # 表現層:使用者看得到、摸得到的 UI 與狀態
└── core/(utils / errors) # 核心層:整個 App 共用的工具與核心功能

三、中樞神經 —— 選擇狀態管理方案:Riverpod

什麼是狀態 (State)?簡單來說,就是任何可能隨時間變化的數據,例如使用者收藏了哪些靈感、當前顯示的是第幾張卡片等等。而「狀態管理」就是我們用來控制這些數據變化的中樞神經系統。

Flutter 社群有許多優秀的狀態管理方案,如BLoC、Provider、GetX等。對於這個專案,我們將選擇 Riverpod。在pubspec.yaml檔案裡,dependencies區塊下加入Riverpod的套件:

https://ithelp.ithome.com.tw/upload/images/20250908/20177971OWWRiGbfbZ.png

為什麼是 Riverpod?

  • 編譯時安全 (Compile-safe):大部分錯誤在寫程式的時候就會被發現,而不是等到 App 執行時才崩潰。

  • 不依賴BuildContext:你可以在專案的任何地方(包括data層的Repository)存取Provider,這讓程式碼的組織更靈活、更解耦(decoupling)。

  • 簡潔且強大 (Simple yet Powerful):它的語法非常直觀,容易上手,同時也提供了強大的功能來應對複雜的狀態場景,完美符合我們 MVP 的開發理念。

  • 可測試性高 (Highly Testable):Riverpod 的設計讓依賴注入和單元測試變得非常簡單。

明日預告:打造資料模型與Repository

不再面對n8n的節點與連線,而是擁有了一個真實、可運行的Flutter App空殼。我們為它規劃了清晰、可擴展的建築藍圖,並選擇了Riverpod作為其中樞神經系統。

地基已經打好,鋼筋骨架也已就位。從明天開始,我們就要往這個骨架裡填充血肉了。第一步,就是讓我們的 App 學會如何與我們在前幾天建立的API對話,真正地將前後端連接起來~Day 7見!


【哈囉你好:)感謝你的閱讀!其他我會常出沒的地方:Threads


上一篇
30 天做一個極簡App:工作流的最後一哩路~Webhook API
下一篇
30 天做一個極簡App:打造資料模型與 Repository
系列文
Mobile Dev|日更靈感來源 App:Flutter × LLM × n8n,每天只推 3 則!8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言