[003] 【定位】為什麼這個 App 必須「用完即丟」?長期追蹤是我們刻意不做的功能
在設計《FollowMe8》的初期,我們面臨一個核心的價值觀挑戰:App 既要能提供成員即時位置,確保車隊不走散,又必須同時保障使用者對個人隱私的高度需求。尤其在戶外活動結束後,多數使用者對位置資訊的長期儲存抱持警惕。我們清楚,這不是一個提供「歷史足跡回顧」或「家庭成員長期監控」的工具,而是專為短期、一次性活動設計的「防走失」助手。

在構思資料儲存策略時,主要有兩種選項浮現腦海。其一是儲存所有成員在活動期間的完整連續位置軌跡,這樣未來可以回放路線、分析停留點;其二是只儲存當前必要的「最後已知位置」,並且在活動結束後將其清除。我們認真評估了前者,雖然它能提供更多功能,但其弊端顯而易見。
最終,我們堅定地選擇了後者,即「用完即丟」的資料處理模式。這個決策的核心考量有三:首先是隱私優先。我們堅信一個防走失工具不應淪為追蹤器,長期儲存位置資料將會帶來潛在的隱私風險與信任問題。其次是資源與維護成本。作為單人開發的專案,若要儲存並維護大量的歷史軌跡資料,將大幅增加伺服器儲存空間、資料庫維護的複雜度,以及後續資料安全與合規性的壓力。這與我們「精簡架構、務實開發」的原則相悖。最後,也是最關鍵的,是功能聚焦。我們的設計意圖是解決「當下」不走失的問題,而非提供「事後」回顧。
技術上,我們透過以下方式實現了這種「用完即丟」:Redis 快取中,每個成員的位置資料會以 `loc:{activity_id}:{member_id}` 的 Key 格式儲存,並設定 2 分鐘的 TTL (Time-To-Live)。這表示只要成員超過 2 分鐘沒有更新位置,就會被系統自動視為離線,資料也隨即過期清除。此外,後端 MySQL 資料庫的 `activity_locations` 資料表僅設計為儲存每個成員的「最後已知位置」,欄位包含 `latitude, longitude, accuracy, has_gps, recorded_at`,且只有 `(activity_id, recorded_at)` 索引,天生不具備儲存連續時序軌跡的能力。活動一結束,相關位置資料也會被清空,Server 不保留任何歷史軌跡。

這個設計對用戶的實際影響是深遠的:用戶可以完全信賴《FollowMe8》不會長期追蹤或儲存他們的個人位置資料。每一次使用都是一個獨立、私密的過程,活動結束,資料即逝。這不僅賦予用戶使用時的安心感,也讓 App 在輕量、省電、直覺易用的同時,確保了最核心的價值:只為避免當下迷途,不為任何長期追蹤。
👉 了解更多關於 FollowMe8 短期活動追蹤定位 App:
https://followme8.ofuyuan.com/