EatNow 是一款解決「吃什麼」選擇障礙的 iOS 應用程式,透過隨機推薦功能幫助使用者快速決定用餐選擇,同時提供店家管理和統計功能。
- 程式語言:Swift 5
- 框架:SwiftUI
- 資料儲存:JSON 檔案儲存 (FileManager)
- 最低支援系統:iOS 15.0+
EatNow/
├── Core/ - 核心模型和工具
│ ├── Models/ - 數據模型定義
│ │ └── Models.swift - 包含所有應用程式使用的數據模型
│ └── Utilities/ - 工具類和擴展
│ ├── DataStore.swift - 資料儲存和管理 (Model層)
│ ├── Extensions.swift - Swift 擴展
│ └── CSVHandler.swift - CSV 檔案處理
│
├── Features/ - 功能模組 (採用MVVM架構)
│ ├── Home/ - 主畫面和隨機推薦
│ │ ├── HomeView.swift - 主頁面UI (View層)
│ │ ├── HomeViewModel.swift - 業務邏輯和狀態管理 (ViewModel層)
│ │ └── HomeEffects.swift - 視覺特效控制器
│ ├── Shop/ - 店家管理
│ │ ├── ShopViews.swift - 店家列表和菜單管理UI
│ │ └── CSVImportView.swift - CSV 匯入功能
│ ├── Stats/ - 數據統計和成就系統
│ │ ├── StatsView.swift - 使用統計分析UI
│ │ └── AchievementView.swift - 成就系統UI
│ └── Settings/ - 設定和資料管理
│ ├── SettingsView.swift - 使用者設定頁面
│ ├── LicenseView.swift - License查看介面
│ ├── CSVExportView.swift - CSV 匯出功能
│ └── GitHubService.swift - GitHub API 服務
│
├── Resources/ - 資源文件
│ ├── ExampleCSV.txt - CSV 範例檔案
│ └── DataStructureAnalysis.md - 資料結構分析文件
│
├── ContentView.swift - 主要內容視圖
├── Item.swift - 項目模型
└── EatNowApp.swift - 應用程式入口點
- 食物模式:從所有店家中隨機選擇一道菜品
- 店家模式:隨機選擇一家餐廳,方便團體決策
- 決策記錄:記錄使用者的決策行為,提供統計資訊
- 店家管理:新增、編輯和刪除店家
- 菜單管理:為每家店家添加、編輯和刪除菜單項目
- 價格標記:記錄每個菜單項目的價格
- CSV 匯入:支援透過 CSV 檔案批量匯入店家和菜單
- CSV 匯出:匯出所有店家和菜單資料為 CSV 檔案
- 示範資料:內建示範資料,方便新使用者快速上手
- 使用統計:記錄使用者的使用習慣和決策模式
- 食物偏好:分析使用者最常選擇的食物類型
- 店家偏好:統計最常光顧的店家
- 解鎖成就:透過使用應用程式達成特定目標解鎖成就
- 里程碑記錄:記錄使用者的使用歷程和成長
- 成就徽章:收集獨特的成就徽章展示在個人檔案
食物模式
- 在首頁選擇「食物」模式
- 點擊「戳下去 推薦食物給你!」按鈕
- 查看隨機推薦的食物和價格
- 滿意選擇後點擊「吃!」按鈕記錄決策
店家模式
- 在首頁切換至「店家」模式
- 點擊「戳下去!」隨機選擇一家店
- 確認推薦店家後點「吃!」完成決策
- 系統會記錄您的選擇用於統計分析
管理店家
- 切換到「店家」標籤頁瀏覽所有店家
- 點擊右上角「+」按鈕手動添加店家
- 點擊「匯入」按鈕批量導入店家資料
- 向左滑動店家項目可刪除或編輯
管理菜單
- 點擊任一店家進入該店菜單管理頁面
- 點擊「+」添加新菜品及價格
- 向左滑動菜單項目可刪除或修改
- 菜單內容會自動保存並用於隨機推薦
- 切換到「統計」標籤頁查看數據分析
- 「總覽」部分顯示使用頻率和決策數據
- 「排行榜」查看您最常選擇的店家和食物
- 統計數據會隨著使用自動更新
- 在「設定」頁可修改個人化偏好
- 點擊「匯出店家資料」分享給朋友
- 支援CSV格式匯入/匯出店家與菜單
- 使用「重設資料」可清除現有資料並重新開始
- 添加位置標記,記錄店家位置
- 支援導出為更多格式,如 Excel 或 PDF
- 整合社群分享功能,分享推薦結果
- 增加團體點餐系統,可統整多人點餐後的結果
- 開發者:Elvis Lo
- 聯絡郵箱:help@elvislo.tw
- 版本:1.1.2