第一個 iOS App:需求卡、AI 交辦與驗收紀錄 版本:2026-09-26 來源:https://course.ray-realms.com/blog/vibe-coding-ios-app#first-app-scope 本站原創教學範本;示例為虛構練習,不是已完成 App 或已驗證商機。 所有驗收預設「未測」。建置成功、實機操作、他人試用與付款是不同證據。 一、先填你自己的需求卡 作品暫名: 誰會用: 在什麼情境打開: 要完成的一件事: 操作流程(起點 → 操作 → 可看到的結果): 需要輸入哪些資料: 每個欄位可接受/不可接受的值: 資料存在哪裡: 關閉再開、離線、換裝置時預期如何: 新增/修改/刪除哪些操作包含在本輪: 第一版保留: 暫不做(寫進待辦,避免 AI 自動加入): 尚未決定、需要先釐清的問題: 本輪:1 流程/2 保存/3 操作修正(擇一) 上一個可回復版本的位置或 commit: 二、完整示例:自己的閱讀紀錄 使用者:我自己。 情境:睡前讀完紙本書,要記住這次讀到哪一頁。 流程:打開列表 → 填書名與頁碼 → 儲存 → 回到列表看到剛才的紀錄。 資料規則:書名去掉前後空白後不可為空;頁碼必須是正整數。 每次儲存新增一筆;同一本書可以有多筆紀錄。 資料只存這台裝置;結束 App 再開仍保留。 不承諾換手機或刪除 App 後還原。 本版先不做:帳號、書籍搜尋、封面、社群、同步、付費、編輯與刪除。 這是從空專案出發的練習,與網站的 SmallSteps「一件小事」ZIP 不同。 若自己的核心價值是多人合作,請重新定義最小合作流程,不要直接排除同步。 三、三輪 AI 交辦(先附上需求卡,每次只選一輪) 共同要求: 請先重述本輪流程與驗收方式;缺少會影響資料或操作的決定時先列出來。 只實作指定輪次,保留既有可用功能。不要自行加入待辦功能。 完成後列出修改檔案、實際執行的檢查、結果與未測項目。 未操作過的畫面不要寫成已驗收;無法完成時說明卡在哪一步。 第 1 輪:流程 建立列表與新增畫面,暫用記憶體資料。 檢查首次開啟的空白狀態、正常新增、書名空白與非法頁碼。 本輪不含永久保存,關閉後資料消失要明確記為尚未實作。 驗收後保留可回復版本,再進下一輪。 第 2 輪:保存 在不改變第 1 輪操作規則的前提下,把紀錄存到裝置。 確認結束 App 再開仍有紀錄;模擬儲存失敗,不可顯示成功或清空輸入。 無法模擬的情況要標為未測,說明還缺什麼,不要冒充通過。 重新跑第 1 輪檢查;不加入雲端同步或帳號。 第 3 輪:修正 我會在 iPhone 操作完整新增流程,提供實際結果、裝置與版本。 針對鍵盤遮擋、文字可讀性或其他實際阻塞逐項修正。 每次修正後重新執行前兩輪檢查,不藉機重寫整個 App。 四、驗收表(下列皆為預期,請自己執行) 共用測試資訊: 日期: App 版本/commit: iOS 版本與裝置: 環境:模擬器/實機/程式測試 01 首次開啟 前提:沒有紀錄。 操作:開啟 App。 預期:顯示「還沒有閱讀紀錄」,可開始新增。 狀態:未測 實際結果與證據: 02 正常新增 操作:輸入「練習用書」及 12,按儲存。 預期:列表出現書名與「第 12 頁」。 狀態:未測 實際結果與證據: 03 書名空白 操作:書名只輸入空格,頁碼 12,按儲存。 預期:不新增紀錄,說明需要書名。 狀態:未測 實際結果與證據: 04 頁碼錯誤(四種值分別執行) 操作:書名有效,頁碼依序測空白、0、-1、1.5。 預期:每種均不新增紀錄,提示正整數。若介面不能輸入該值,記錄限制;資料驗證另用程式測試確認。 空白:未測;0:未測;-1:未測;1.5:未測 實際結果與證據: 05 關閉再開 前提:第 2 輪完成,已有正常儲存紀錄。 操作:結束 App 後重新開啟。 預期:書名與頁碼保留,沒有重複新增。 狀態:未測 實際結果與證據: 06 儲存失敗 操作:以測試模擬儲存失敗(請 AI 說明實際使用的方法)。 預期:不顯示成功、不清空輸入,能重試;既有紀錄保留。 狀態:未測 模擬方法與實際證據: 若未測,原因與下一步: 五、下一輪接續 本輪完成: 本輪失敗/未測: 下一輪只做哪一件事: 可回復版本: 先修失敗項目,再加功能。走通後自己使用幾次,再找人試用。 試用流程:https://course.ray-realms.com/blog/testflight-ios-beta-testing 完整學習路線:https://course.ray-realms.com/courses/vibe-coding-for-ios-app