關於 Daily Strong
「你做了 12 下,只有 9 下深度夠。」
把手機立起來,做這組。Daily Strong 用相機看你的動作,只算到位的那幾下,告訴你哪幾下沒到。不用按螢幕、不用穿戴手錶、不用註冊帳號。
我做這個 app,是因為厭倦了「在幫你之前,先要你」的健身軟體——第一組要先登入、做完一下還要被排行榜看見、想要計時器還要訂閱(明明手錶就有)。我想要的版本是:打開、看著我家那個能動的角落、結束時告訴我剛才那組是不是真的。
把手機立起來。做這組。
相機看到什麼
Google ML Kit 的 pose 偵測模型在裝置端跑,逐幀追蹤 33 個關節點,從三個面向讀每一下:深度、流暢度、節奏。鏡頭前發生的一切都留在鏡頭裡。沒有可上傳的雲端——一個在台灣的開發者,沒有後端。
整條 pipeline 圍繞一個兩層可見度閘建構,全身沒進入畫面前計數絕不會觸發。自適應的 One Euro Filter 把角度資料流的雜訊削掉,再交給 4 狀態的有限狀態機,搭配需要連續兩幀才確認的 debouncer 來提交每一下。這就是「以為你做了 20 下」的 app 跟「知道你做了幾下」的 app 的差別。
訓練之間留下什麼
一個連續紀錄,第 1 天什麼都不問你,第 13 天悄悄提醒你。每個動作的個人最佳——累計第 10、50、100 次時,給你一個小儀式。你自己編的三動作組合訓練,組間休息有計時器,讓你能正常呼吸。
首頁那團火焰在第 7、14、30、60、100 天時更亮一層。沒有任何一個元件大喊,但全部會疊起來。
33 種動作
訓練庫涵蓋四個分類,部分動作共用分類器以維持判斷一致性:
- 上半身——伏地挺身、鑽石伏地挺身、寬距伏地挺身、跪姿伏地挺身、派克伏地挺身
- 核心——仰臥起坐、捲腹、反向捲腹、V 字捲腹、棒式、斜向棒式、臀橋、髖推、躺姿抬腿、單腳臀橋
- 下半身——深蹲、相撲深蹲、跳躍深蹲、弓步、反向弓步、分腿蹲、靠牆深蹲、早安式
- 全身——開合跳、簡易開合跳、推舉開合跳、波比跳、無跳波比、登山者、高抬腿輕拍、後踢臀、站姿抬膝、慢跑
有些是大家都知道的,有些是練完腿隔天比較友善的版本,有些是安靜型。清單會在「有值得加的東西」時長大,不是排在內容月曆上長。
組合訓練
挑三個動作,分別設定目標次數和組間休息秒數,app 會跑完整流程:3 秒倒數、訓練中啟用 pose 偵測、達標自動結束、休息計時、下一個動作。組合訓練完成時,彩帶很短,數據卡很誠實。
語音教練
語音教練會在每一下、過半進度、最後三下都念出來,讓你閉著眼睛也能把那組做完。棒式每 10 秒報時、慢跑每 30 秒報時。使用繁體中文發聲,有 5 秒的 guard 防止話疊話,你按暫停的那一刻它就停。
Daily Strong Pro
在你決定要不要訂閱之前,可以先做一組免費深蹲,讓相機證明它看得到你。Pro 解鎖其餘所有動作、組合訓練編輯器、以及語音教練。它不是嗨咖——比較像剛好在旁邊幫你計數的朋友。
週、月、年三種方案,由 App Store 以你的當地貨幣計費。隨時可以在 Apple ID 訂閱設定一鍵取消。退費由 Apple 依其標準政策處理。
什麼不在這裡面
沒有帳號、沒有登入、沒有動態牆、沒有追蹤者、沒有「按一下確認次數」、沒有訓練中跳出來推銷的「限時優惠」。鏡頭前發生的一切都留在鏡頭裡。
技術細節
Daily Strong 使用 Flutter、Riverpod、GoRouter、Drift 開發,Google ML Kit Pose Detection 在你的裝置上本機執行。訓練紀錄存在本機 SQLite 資料庫;偏好設定存在 SharedPreferences。整個 app 唯一的對外網路請求是給 RevenueCat 管理訂閱狀態。
Pose pipeline 以穩定的 frame rate 為目標,採用自適應 throttling(負載過高時 30 → 20 → 15 fps),背後有 1380 多支測試涵蓋分類器、狀態機、角度平滑、與訂閱流程。完整的資料收集說明請見隱私權政策與服務條款。
立即開始
把手機立起來,做這組。結束時看一下分數。明天再來一次。連續紀錄會在第 7 天開始有點重量,到第 30 天,打開 app 不再是一個需要做的決定。
由 Atlantis Kid 的 Steven Huang 開發。
