第十七屆 佳作

mobile-development
《30 天 Flutter:跨平台 AI 行程規劃 App》
yenyen0318

系列文章

DAY 11

Day 11 - 從填空題到選擇題:Flutter 輸入元件技術拆解

在 Flutter 開發中,表單輸入幾乎是每個 App 都會遇到的需求,但不同的輸入欄位如果用同一種元件,很容易造成操作不便或樣式混亂。今天目標是實作「新增行程...

DAY 12

Day 12 - 從靜態畫面到功能實現:核心行程 UI 宣告完成

今天的重點是把 資料模型 跟 狀態管理 串起來,然後透過 UI 驗證 時間區塊防呆設計,確認資料流與使用流程是否順暢。今天主要目標頁面: 添加行程頁 行程總覽...

DAY 13

Day 13 - 行程拖曳功能開發:LongPressDraggable 與 DragTarget 的選擇與實作

今天的開發重點是讓使用者可以拖曳行程項目快速調整順序,提升操作直覺性與流暢度。從需求出發,分析不同原生實作方式,並分享我最終選擇 LongPressDragga...

DAY 14

Day 14 - 從 Prompt 到程式碼:API 串接前的測試與準備

前幾天把 UI 畫面大致刻完了,今天正式進入後端串接的階段!在真正接上 API 之前,會先用假資料(Fake Repository)來測試,確認資料流跟狀態管理...

DAY 15

Day 15 - AI 可以幫我排行程了!從假資料到真實情境完整演練

昨天先用假資料跑流程,今天重點放在撰寫單元測試,確保資料能正確取得,也能捕捉各種錯誤。程式不只是能跑,還能透過測試驗證不同情境,未來換 API 或調整資料結構時...

DAY 16

Day 16 - 選擇 Flutter 本地儲存:為何我擁抱 Drift

在開發我的 AI 行程 App 時,我面臨了一個關鍵的決策:該如何選擇本地資料庫?市面上有許多優秀的套件,從輕量級的 shared_preferences、高效...

DAY 17

Day 17 - Drift CRUD 入門:跟著 Gemini 玩轉資料庫

今天我持續透過 Gemini 職涯導師模式,學習資料模型與 CRUD 操作。將統整我今日的學習內容,並簡要分享 Gemini 職涯導師在引導學習全新套件時的實際...

DAY 18

Day 18 - Drift 實戰:從 UI 介面到 DB Migration 的跌跌撞撞

在實作行程、活動及子活動的 CRUD 功能時,我發現了一個資料庫設計的潛在問題。為了確保資料的一致性,我決定重構 ActivitiesTable 並進行版本遷移...

DAY 19

Day 19 - Drift 效能實戰:結合 Transaction 與 Batch,打造高效的批次寫入

前一天,我處理了行程的 CRUD 功能,這一切看起來都很順利。但當我動手實作 Day 13 的行程的拖曳排序 及 Day 15 AI 行程生成批次存入 時,才發...

DAY 20

Day 20 - Drift 實戰:結合 StreamProvider,從手動更新到 UI 自動同步

前幾天在處理資料庫時,每當新增、更新或刪除資料後,我都得手動呼叫 ref.invalidateSelf(),讓 Riverpod 重新計算 provider,進...