iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
生成式 AI

30 天 Vibe Coding:全端 × 機器學習的實作挑戰系列 第 10

Day 10|30 天 Vibe Coding:帳本一匯出,全是我不想承認的事實

  • 分享至 

  • xImage
  •  

昨天我們把備註加上去了,今天的最後一個基礎功能就是「匯出」。
畢竟一個帳本,總是會有需要備份或分享的時候。
不過對我來說,匯出檔案的意義更像是:把這十天做出來的東西,來一個總整理,順便檢討哪些地方踩雷了、還能怎麼優化。


今日目標

  1. 支援資料匯出
  2. 使用者可以匯出支出紀錄成 CSV / JSON
  3. 檔案內容包含金額、日期、類別、備註
  4. 儲存到 iCloud / Files / 分享給其他 App

專案小結

  1. 回顧這 10 天的功能演進
  2. 紀錄踩過的雷
  3. 想到的優化方向

給 Cursor 的 Prompt(僅供參考)

幫我在 SwiftUI 記帳 App(已經有 Firestore 與分類、備註功能)加上「匯出」功能。

=== 功能需求 ===
1. 匯出格式:
   - CSV:欄位順序 date, category, amount, note
   - JSON:支出陣列

2. 匯出流程:
   - 點擊「匯出」按鈕 → 產生檔案 → 使用 UIActivityViewController 分享

3. Firestore 讀取:
   - 匯出全部支出(依日期排序)

4. UI:
   - 「匯出」按鈕放在清單上方工具列
   - 點擊後跳出系統分享選單

今日驗收 ✅

  1. 點擊「匯出」後,能生成正確的 CSV / JSON 檔案
  2. 檔案可分享到 iCloud / AirDrop / 傳給朋友
  3. 檔案內容正確,格式清楚
    https://ithelp.ithome.com.tw/upload/images/20250905/20140998JUBq8nQLgw.pnghttps://ithelp.ithome.com.tw/upload/images/20250905/20140998fJMkDnBCO4.pnghttps://ithelp.ithome.com.tw/upload/images/20250905/20140998P5J93QDwkC.pnghttps://ithelp.ithome.com.tw/upload/images/20250905/20140998pzmLydHTbe.png

專案小結

到目前為止,記帳 App 經歷了 10 天的演進:

Day 3:最小可行版本(MVP),用 UserDefaults 存資料
Day 4:搬上雲端,Google 登入 + Firestore
Day 5:加入分類/標籤管理
Day 6:用 Swift Charts 畫出支出統計圖
Day 7:預算與超支提醒
Day 8:搜尋與篩選(日期區間 + 分類)
Day 9:新增備註欄位
Day 10:匯出功能 + 小結

需要注意的點

  • Firebase 設定最花時間,需要設定Bundle ID、URL Scheme、Google 登入都容易漏,其實我本來以為很簡單(也確實不難),因為我已經用過firebase好幾次,不過都不是我負責初始設定的
  • Cursor 常常會自己加戲,我跟他說要功能 A,它可能會幫你做 A 又做了 B ,甚至在微調的時候也會幫你亂改其他部分的程式碼,而且我覺得很恐怖的是,以前用 gpt 生成好歹自己會知道哪個function在哪裡或是對整個專案的架構比較清楚,但一用上 cursor 可以說是完全對此專案失去掌控,且有時候它很笨總是聽不懂我想要改什麼,就要跟他對話比較多次才可以達成,甚至我會去找 gpt 問程式碼再直接餵給 cursor 。對小專案來說確實是很方便的工具,不過目前對於中大型專案還是效果很有限
  • SwiftUI 預覽(Canvas)有時會當掉,必須切換模擬器跑才比較穩,而且在 canvas 中紀錄任何資料都不會真的跑到資料庫中,所以我還是比較常直接跑模擬器
  • 跑模擬器雖然方便,但我一開始的目的是想要真的裝到我的手機中,真的來使用它,不過就遇到 Apple 的開發者政策問題:如果用免費的 Apple ID,可以簽發的測試憑證只有 7 天有效期,到期後就得重簽一次,表示我每七天要重新下載一次,非常麻煩;要是想正式發佈或長期測試,就得加入 Apple Developer Program,一年 99 美元,才能取得正式的簽署憑證,才能把 App 上架到 App Store。
  • 雖然我每天文章裡都有提供「給 Cursor 的 Prompt」,但實際上並不是只要這一段就能直接完成功能。如同上面說的 Cursor 很容易「超額演出」或誤解需求,所以每次生完程式碼後,我都要再跟它不斷對話、微調,甚至拿 GPT 幫我重寫一段程式碼再餵回去。Prompt 只是起點,真正的過程是我丟想法,它產出一版,我再回饋、修正,循環好多次才會得到理想的結果。

優化方向

  • 目前的 UI/UX 超陽春,未來可以加上更美觀的介面,不過其實我本人是比較喜歡簡潔的畫面,最好是只有必須功能,所以這點就慢慢考慮
  • 還想在報表功能加上長條圖或折線圖,搭配預算與趨勢,直觀地看我每個月花費的趨勢,蠻酷的而且感覺不難,不過我想先留時間給我之後的專案~
  • Firestore 規則還是測試階段,之後要更安全或是真的要上架就必須寫更嚴格的存取權限

這點應該是這 10 天最大的體會:AI 幫得了忙,但要真的完成一個專案,還是要保持掌控感。


上一篇
Day 9|30 天 Vibe Coding:只看數字,完全想不起來我在幹嘛
下一篇
Day 11|30 天 Vibe Coding:情緒日記 Web MVP
系列文
30 天 Vibe Coding:全端 × 機器學習的實作挑戰14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言