背景
目前 App 已具備 7 級單字、搜尋、收藏、快取與學習進度,已能作為 MVP 使用;但現行版本仍偏向「單字瀏覽器」,且正式上架可靠性、簽章安全、資料來源與可測試性仍有風險。
本 Issue 的目標是在不過度擴張第一版範圍的前提下,完成一個可正式發布、可離線使用,並具有實際學習循環的版本。
產品目標
讓使用者可以完成以下核心流程:
- 選擇程度
- 瀏覽或搜尋單字
- 查看完整解釋並播放發音
- 使用翻卡進行快速複習
- 透過「不熟/學習中/已掌握」記錄真實進度
- 離線時仍可正常學習
本期成功標準
- 首次開啟即使沒有網路也能看到單字。
- Android release 版能正常載入線上更新。
- 使用者可以播放單字發音。
- 使用者可以完成一輪翻卡學習並記錄結果。
- 「已掌握」不再只因點開詳細頁就自動成立。
- 收藏、學習狀態與進度在重新啟動後仍保留。
- 核心資料與狀態邏輯具備自動化測試。
P0:上架可靠性與安全
P0:離線優先資料策略
目前首次載入依賴第三方 GitHub Raw JSON;來源改名、刪除或格式變更都可能使 App 無法使用。
P1:建立可維護的 Flutter 架構
建議先使用 Flutter SDK 原生工具完成,不為此版本引入大型架構框架。
建議目錄:
lib/
├── main.dart
├── models/
│ └── vocabulary_word.dart
├── services/
│ ├── vocabulary_data_source.dart
│ └── learning_storage.dart
├── repositories/
│ └── vocabulary_repository.dart
├── screens/
│ ├── level_selection_screen.dart
│ ├── vocabulary_list_screen.dart
│ ├── word_detail_screen.dart
│ └── flashcard_screen.dart
└── widgets/
├── level_card.dart
└── vocabulary_card.dart
P1:核心學習體驗
單字詳情
學習狀態
現行行為是「點開單字即標為已學習」,無法反映真實掌握程度。
翻卡模式(本期主要新功能)
P1:UI/UX 與無障礙
測試與品質門檻
不納入本期
為控制開發量,本 Issue 暫不包含:
- 登入與跨裝置雲端同步
- 排行榜或社交功能
- AI 自動產生例句
- 完整 SM-2/FSRS 排程
- 訂閱或廣告
- 大型後端服務
建議實作順序
- P0 簽章安全、Manifest 與網路錯誤處理
- assets 離線資料與 repository
- 強型別 model 與程式拆分
- 三態學習紀錄
- TTS、完整 definitions、上一個/下一個
- 翻卡模式
- UI/無障礙調整
- 測試、CI 與 release 實機驗收
Definition of Done
背景
目前 App 已具備 7 級單字、搜尋、收藏、快取與學習進度,已能作為 MVP 使用;但現行版本仍偏向「單字瀏覽器」,且正式上架可靠性、簽章安全、資料來源與可測試性仍有風險。
本 Issue 的目標是在不過度擴張第一版範圍的前提下,完成一個可正式發布、可離線使用,並具有實際學習循環的版本。
產品目標
讓使用者可以完成以下核心流程:
本期成功標準
P0:上架可靠性與安全
<uses-permission android:name="android.permission.INTERNET" />android/app/build.gradle內硬編碼的 keystore 密碼。key.properties或 CI secrets 注入簽章資訊。key.properties、*.jks、*.keystore加入.gitignore。mounted。P0:離線優先資料策略
目前首次載入依賴第三方 GitHub Raw JSON;來源改名、刪除或格式變更都可能使 App 無法使用。
P1:建立可維護的 Flutter 架構
建議先使用 Flutter SDK 原生工具完成,不為此版本引入大型架構框架。
VocabularyWord、Definitionmodel,移除 UI 中的List<dynamic>與零散 Map 解析。models/:資料模型與 JSON parsingservices/:HTTP、assets、SharedPreferencesrepositories/:整合本地與遠端資料screens/:頁面widgets/:共用 UI 元件建議目錄:
P1:核心學習體驗
單字詳情
學習狀態
現行行為是「點開單字即標為已學習」,無法反映真實掌握程度。
未學習、學習中、已掌握。翻卡模式(本期主要新功能)
P1:UI/UX 與無障礙
測試與品質門檻
flutter pub getflutter analyzeflutter testflutter analyze無 error,所有測試通過。不納入本期
為控制開發量,本 Issue 暫不包含:
建議實作順序
Definition of Done