← Blog

Chi Project

Chi Project

🗺️ 第一步:產品藍圖與使用者故事(Product Roadmap & User Stories)

🎯 鎖定核心使用族群(Persona)

核心人格痛點
1. 熱愛旅行的數位背包客 (Digital Backpacker)痛點: * 傳統的實體地圖或紙本紀錄容易遺失或不便攜帶。 * 缺乏視覺化、遊戲化的方式來展現自己的足跡和成就。 * 飛行紀錄匯入/出操作複雜,難以與地圖探索結合。
2. 城市深度探索者 (Urban Explorer)痛點: * 雖然經常在城市中活動,但缺乏動力去探索熟悉的區域以外的新地點。 * 錯過城市中短期活動或合作商家的集章機會。 * 希望能快速「點亮」大型公共空間 (如車站、大型商場) 的整個區域,而非慢慢走。
3. 每日通勤與出差族 (Daily Commuter & Business Traveler)痛點: * 每天路線固定,缺乏探索的樂趣。 * 在機場、火車站等大型交通樞紐,希望可以一鍵完成「打卡」和「集章」動作。 * 需要一個簡單的方式追蹤出差或通勤所覆蓋的地理範圍,作為個人里程碑。

📝 拆解目標情境:關鍵 User Story (As a … I want … so that …)

核心人格關鍵 User Story (使用者故事)
數位背包客As a 熱愛旅行的背包客,
I want離線訊號不佳的偏遠地區時,APP 仍能準確追蹤並儲存我的足跡以解鎖視野,
So that 我能在旅途結束後,回顧並確保我的地圖足跡是完整的。
數位背包客As a 經常跨國飛行的背包客,
I want 能夠匯入主流格式(如 GPX 或 GeoJSON)的飛行軌跡,
So that 我可以一次性點亮所有飛過的路徑,完整記錄我的「世界迷霧」覆蓋範圍。
城市深度探索者As an 城市探索者,
I want 在抵達合作商家指定地標時,能透過 NFC 輕觸立即完成「集章」與「成就解鎖」,
So that 收集過程快速且具儀式感,鼓勵我前往更多地方。
城市深度探索者As an 城市探索者,
I want大型特殊區域(如主題樂園、機場航廈、國家公園)的指定入口處打卡後,就能立即點亮整個區域,
So that 我可以將精力集中在探索內部景點,而不是在地圖上慢慢行走覆蓋。
通勤與出差族As a 每日通勤族,
I want 我的通勤路徑能自動被記錄,並納入我的里程碑成就系統(如「XX區通勤達人」),
So that 我能將日常的移動轉化為有意義的數據和獎勵。

🚀 圈定 MVP 功能組合(Minimum Viable Product)

✅ 必做功能組合 (MVP 範圍 - 首波開發重點)

⏳ 延後功能組合 (迭代開發重點)


📊 確認價值與驗證方式

MVP User Story核心價值成功指標 (驗證方式)
離線視野解鎖數據的完整性與可靠性 (核心價值)進行 3 次模擬離線移動測試,100% 準確還原解鎖視野。
基礎集章 (NFC)互動的便捷性與儀式感90% 的測試使用者能在10 秒內成功完成一次集章(從開啟 APP 到感應成功)。
基礎成就遊戲化的激勵效果首次登入後 7 天內30% 的使用者解鎖至少一個基礎成就。
資料匯出數據的擁有權與通用性測試使用者能將匯出的 KML 檔案,成功匯入到 Google Earth 或其他地圖工具中。

📖 建立共同語彙

詞彙定義
視野 (Fog)透過實地行走移動(GPS 軌跡)來解鎖地圖上覆蓋的迷霧區域
集章 (Stamp)透過 NFC 輕觸感應(在合作點、車站等),完成數位收集的行為,並記錄在 APP 中。
大型區域 (Mega Zone)佔地廣大且邊界清晰的特殊地點,如:機場、樂園、大型校區、國家公園等,可透過特殊機制一次點亮。
一次點亮 (Mass Unlock)針對大型區域,透過特定條件(如 GPS 抵達、NFC 驗證、門票掃描)即可瞬間解除該區域的視野迷霧
飛行紀錄 (Flight Log)從外部檔案匯入高空移動軌跡數據,用於批量解鎖地圖上長途飛行的視野。
圖資 Mac App用於後台維護與管理大型區域邊界資料、集章點位置、成就條件等數據的獨立 macOS 應用程式。

🏗️ 步驟 2:建立系統架構草圖與模組界線定義

這個步驟的目標是確立 APP 各元件的職責以及資料流向,確保 APP 具備您強調的模組化特性,方便未來擴充與維護。

1. 系統架構草圖(高層次總覽)

整個系統可分為三個核心層級,並以 API 和 CloudKit 作為溝通橋樑:層級核心元件主要職責前端應用層iOS App (主 App)處理 UI 渲染、使用者互動、GPS 追蹤、NFC 感應、數據本地緩存。後端服務層雲端 API 服務 / CloudKit處理帳戶管理、數據同步、成就進度計算、集章點資料(GeoJSON/GeoFence)、大型區域定義、圖資 Mac App 資料交換。資料管理層圖資 Mac App (未來)專門用於編輯、驗證和上傳大型區域邊界、集章點位置、成就條件等結構化數據。

2. 核心模組化界線定義(iOS App 內部)

為了實現高可維護性與低耦合性,iOS App 應被拆分為以下幾個獨立的 Feature 模組:

🥇 地圖核心與視野 (The Map & Fog Module)

職責: ◦ 負責 Apple MapKit 的初始化、配置與地圖呈現。 ◦ 接收來自 CoreLocation 的 GPS 數據。 ◦ 核心: 實現「視野」(Fog of World)的繪製、更新與本地儲存邏輯。 • 界線: 僅處理地理數據(經緯度、路徑、Polygon),不參與成就、集章或帳號的邏輯。

🥈 成就與任務 (Achievement & Quest Module)

職責: ◦ 監聽來自其他模組的事件(例如:「視野更新事件」、「NFC 集章事件」、「飛行紀錄匯入事件」)。 ◦ 根據預設的條件引擎,判斷是否滿足成就或任務的解鎖條件。 ◦ 管理使用者的成就進度與狀態。 • 界線: 核心是邏輯判斷。不直接操作地圖,不直接呼叫 NFC 介面。

🥉 NFC 集章與站點 (NFC & Station Module)

職責: ◦ 透過 Core NFC 框架,處理與 NFC 標籤的通訊與資料讀取。 ◦ 驗證讀取到的 NFC ID 與後端(或本地緩存)的集章點資料是否匹配。 ◦ 觸發「集章成功事件」給 成就與任務模組。 • 界線: 專注於 NFC 讀寫驗證流程,不負責地圖繪製或成就計算。

✈️ 資料同步與長程旅行 (Sync & Log Module)

職責: ◦ 負責處理本地數據(視野、集章紀錄、成就進度)與雲端服務(CloudKit 或自建 API)之間的同步衝突與版本控制。 ◦ 處理 GPX/KML 檔案的解析與匯入/匯出,並將解析後的軌跡數據傳遞給 地圖核心模組 進行點亮。 • 界線: 專注於數據的 I/O 與傳輸,不負責數據的繪製或邏輯判斷。

👤 帳號與雲端備份 (Account & Backup Module)

職責: ◦ 處理使用者身份驗證、權限管理(例如:大型區域一次點亮的授權)。 ◦ 管理使用者的訂閱狀態、偏好設定等基礎資料。 ◦ 核心: 處理 CloudKit 或 API 的資料讀寫權限。 • 界線: 這是其他所有模組的前置模組,確保使用者身份有效。

💡 關鍵設計決策:模組間的溝通

為了保持低耦合性,應採用 Event-Driven Architecture (事件驅動架構)範例:

  1. 地圖核心模組 發現使用者移動並解鎖了新區域 $\rightarrow$ 發出視野更新完成事件」。
  2. 成就與任務模組 監聽到此事件 $\rightarrow$ 檢查行走距離覆蓋面積相關成就 $\rightarrow$ 更新使用者成就進度。
  3. 資料同步模組監聽到此事件 $\rightarrow$ 將新的視野數據排入雲端同步隊列