作者: ZStack / 魏琪 日期: 2026-03-24 版本: v1.0 Draft 状态: 待评审
CadencePro 是 Apple Watch 上的无声触觉步频教练,通过实时检测、手腕触觉引导、跑后解释和长期个人步频路径,帮助跑者稳定、舒服、系统地训练节奏。
后续产品、设计、研发默认遵循 docs/competitive-moat-analysis.md。
北极星: CadencePro 不做另一个跑步记录 App,而要成为 Apple Watch runner 的 haptic cadence coach。
产品闭环:
检测当前步频 -> 判断目标偏差 -> 触觉引导回节奏 -> 跑后解释原因 -> 形成个人步频路径
“你的跑步 App 记录数据。CadencePro 在手腕上把你带回稳定节奏。”
1. 小明准备出门跑间歇训练
2. 打开 Apple Watch 上的 CadencePro
3. 选择「间歇训练」→ 选择「亚索 800」模板
4. 设定:800m@178 SPM → 400m 恢复@160 SPM → 重复 5 组
5. 同时启动 Apple 原生体能训练记录
6. 开跑 —— CadencePro 在后台通过触觉震动引导步频
7. 第一个 800m,手表震动节奏 178,小明跟着跑
8. 遇到小上坡,CadencePro 检测到坡度,自动降为 173,震动变慢
9. 下坡时自动恢复到 178
10. 800m 结束,手表震两下长震提示「进入恢复段」
11. 节奏自动切到 160
12. 跑完 5 组,自动进入放松段
13. 训练结束,CadencePro 从 HealthKit 读取原生训练数据
14. 合并显示:每段的实际步频 vs 目标步频、配速变化、步频稳定性评分
15. 小明发现自己后两组步频下降了 5 SPM → CadencePro 建议下次减少到 4 组
1. 小李膝盖伤后恢复,医生说步频必须 > 170
2. 打开 CadencePro,选择「安全区间模式」
3. 设定下限 170 SPM,上限 185 SPM
4. 开跑 —— 步频在区间内时只有柔和的节奏引导
5. 步频掉到 168,手表立刻加强震动频率提醒加速
6. 步频超过 185(跑太快),手表切换为减速提醒
7. 训练后看到「安全区间内跑步时间占比 87%」
1. 小王刚买了 Apple Watch,下载了 CadencePro
2. 首次打开,App 问:「你跑步多久了?」→ 选「新手」
3. App 说:「我们先测一下你的自然步频,正常跑 3 分钟就好」
4. 小王跑了 3 分钟,App 检测到自然步频 155 SPM
5. App 建议:「你的目标是 165 SPM,我们每周提高 3 SPM」
6. 第一周训练:节拍器设在 158,温和引导
7. 每周自动提升目标 → 一个月后到 165
8. App 显示进步曲线和配速提升对比
| 属性 | 描述 |
|——|——|
| 优先级 | P0 — Must Have |
| 描述 | 节拍器根据实时步频和地形数据自动微调 |
| 输入 | CoreMotion 加速度计数据(实时步频检测)、CoreLocation GPS(坡度) |
| 行为 | 1. 用户设定目标 BPM
2. 实时检测当前步频
3. 偏差 ±5 SPM 时通过渐进式触觉反馈引导回来
4. 检测到上坡(>3% 坡度)自动降低目标 5-10 SPM
5. 检测到下坡自动提升 |
| 输出 | 触觉震动(WKHapticType)+ 可选声音节拍 |
| 验收标准 | 步频偏差检测延迟 < 2 秒;坡度响应延迟 < 3 秒;电池消耗 < 15%/小时 |
| 属性 | 描述 |
|——|——|
| 优先级 | P0 — Must Have |
| 描述 | Watch App 完全独立运行,无需 iPhone |
| 行为 | 1. Watch 上直接设定目标/选择训练
2. 独立采集传感器数据
3. 训练数据存储在 Watch 本地
4. 有 iPhone 时自动同步 |
| 验收标准 | 无 iPhone 连接时所有核心功能可用 |
| 属性 | 描述 |
|——|——|
| 优先级 | P0 — Must Have |
| 描述 | 作为后台节拍器层运行,不干扰原生训练记录 |
| 行为 | 1. 用户启动原生「室外跑步」训练
2. CadencePro 以后台模式运行节拍引导
3. 训练结束后从 HealthKit 读取原生数据
4. 叠加步频分析层 |
| 技术约束 | 默认 Apple Workout-compatible 模式不启动自己的 HKWorkoutSession;任何 CadencePro-owned high-reliability 模式都必须明确不能与 Apple Workout 同时拥有 workout session |
| 验收标准 | 默认兼容模式与原生训练同时运行时无冲突;HealthKit 数据读取成功率 > 99%;高可靠模式上线前必须完成 Apple Watch 真机后台/锁屏/冲突矩阵验证 |
| 属性 | 描述 | |——|——| | 优先级 | P0 — Must Have | | 描述 | 用户手动设定目标步频 | | 行为 | Digital Crown 旋转调节 BPM(100-220 范围,步长 1);预设快捷值(160/170/175/180) | | 验收标准 | 3 秒内完成 BPM 设定 |
| 属性 | 描述 | |——|——| | 优先级 | P1 — Should Have | | 描述 | 恢复跑或保守训练时,用户设定 lower / upper SPM 区间,CadencePro 引导其停留在自选范围内 | | 行为 | Watch 设置下限/上限;训练中显示 below / in / above / no signal 状态;结束后汇总区间内比例、偏低比例、偏高比例 | | 商业边界 | Pro 功能;免费版保留基础单目标步频节拍器 | | 验收标准 | 状态切换清晰、触觉语义一致、无医疗化承诺;区间 summary 在 Watch 和 iPhone detail 中一致 |
| 属性 | 描述 |
|——|——|
| 优先级 | P1 — Should Have |
| 描述 | 多段自定义训练,每段不同步频目标 |
| 行为 | 1. 创建多段训练:按距离或时间定义每段
2. 每段设定独立 BPM 目标
3. 免费入门模板:Starter 4 x 2;Pro 预设模板:亚索 800、法特莱克、金字塔间歇
4. 段间自动切换,触觉提示切换 |
| 商业边界 | 免费用户可运行 Starter 4 x 2 入门间歇;高级预设、自定义训练创建/编辑和完整分段编排属于 Pro |
| 验收标准 | 支持 2-20 段;段间切换延迟 < 1 秒 |
| 属性 | 描述 | |——|——| | 优先级 | P1 — Should Have | | 描述 | 类似心率区间,定义步频 Zone 1-5 并实时显示 | | 行为 | 默认区间:Z1(<150) / Z2(150-160) / Z3(160-170) / Z4(170-180) / Z5(>180);可自定义;Watch 表盘用颜色区分当前区间 | | 验收标准 | 区间切换时视觉反馈 < 0.5 秒 |
| 属性 | 描述 |
|——|——|
| 优先级 | P1 — Should Have |
| 描述 | 长期追踪步频与配速的关系,给出个性化效率分析 |
| 行为 | 1. 每次训练记录步频 + 配速数据对
2. 生成散点图和趋势线
3. 计算「最佳效率步频区间」
4. 周/月报告 |
| 验收标准 | 10 次训练后能给出可信的效率区间推荐 |
| 属性 | 描述 |
|——|——|
| 优先级 | P1 — Should Have |
| 描述 | 读写 HealthKit 步频和训练数据 |
| 行为 | 读取:HKQuantityType.stepCount, walkingStepLength, runningStrideLength, HKWorkout
写入:步频分析结果作为 metadata 附加到训练记录;将 Apple running workout 与 CadencePro 本地训练按标识/时间/时长/距离保守关联;无 CadencePro 样本的 Apple workout 只作为 context-only 记录展示 |
| 验收标准 | HealthKit 授权流程一次完成;重复同步不生成重复记录;context-only 记录不展示虚假的 CadencePro 步频分析;数据同步延迟 < 5 秒 |
| 属性 | 描述 |
|——|——|
| 优先级 | P1 — Strategic Must |
| 描述 | 沉淀用户的自然步频、舒适区间、疲劳漂移和渐进目标,形成长期个性化护城河 |
| 行为 | 1. 首次使用进行 3 分钟自然步频测试
2. 生成个人舒适步频区间与初始训练目标
3. 结合历史训练计算最佳效率区间和后段漂移模式
4. 生成 4-8 周渐进提升计划(每周 +2-3 SPM 或更保守)
5. 训练前显示今日建议,跑后给出下一次训练微调 |
| 商业边界 | 免费用户看到 Personal Cadence Path Lite(今日目标 + 舒适区间);Pro 解锁多周递进、疲劳漂移、效率区间和长期路径解释 |
| 验收标准 | 至少 3 次训练后能给出个人化趋势;10 次训练后能给出可信的舒适区间/效率区间;所有建议用温和、非医疗化语言表达 |
| 属性 | 描述 | |——|——| | 优先级 | P3 — Growth Experiment | | 描述 | 将 CadencePro 的步频洞察作为传播内容分享到 Strava,而不是做普通跑步记录同步 | | 行为 | OAuth 授权 → 训练完成后可选择添加步频稳定性、舒适区间占比、下一次建议到 Strava 活动评论 |
| 属性 | 描述 | |——|——| | 优先级 | P3 — Future | | 描述 | 根据目标步频推荐音乐节奏,但只能作为辅助体验,不能替代触觉引导 |
| 属性 | 描述 | |——|——| | 优先级 | P2 — Strategic Expansion | | 描述 | 教练为学员设定步频作业、查看执行摘要和节奏漂移,形成教练/跑团工作流护城河 |
| 指标 | 要求 | |——|——| | 步频检测延迟 | < 2 秒(从步态变化到节拍器调整) | | Watch App 启动时间 | < 1.5 秒 | | 后台运行内存占用 | < 30 MB | | 电池消耗(1 小时训练) | < 15%(仅节拍器);< 20%(节拍器 + GPS 坡度) |
| 维度 | 要求 | |——|——| | Apple Watch | Series 6 及以上(需要常亮显示 + 足够 CPU) | | watchOS | 10.0+ | | iPhone 配套 App | iOS 17.0+ | | 无 iPhone 独立模式 | 完全支持 |
| 维度 | 要求 | |——|——| | 数据存储 | 训练数据存 Watch 本地 + iCloud 同步(CloudKit) | | 隐私 | 不收集个人数据到服务器;所有分析在设备端完成 | | HealthKit | 严格按 Apple 要求使用,仅请求必要权限 | | 无账号要求 | 核心功能无需注册/登录 |
| 维度 | 要求 | |——|——| | 崩溃率 | < 0.1%(训练过程中零崩溃目标) | | 离线可用 | 100% 核心功能离线可用 | | 数据丢失 | 训练数据零丢失(本地持久化 + 同步) |
| 层 | 技术选型 | 理由 | |—-|———|——| | Watch App | SwiftUI + WatchKit | 原生性能最优,触觉反馈延迟最低 | | iPhone App | SwiftUI | 数据仪表盘和训练计划编辑 | | 传感器 | CoreMotion (加速度计) + CoreLocation (GPS/高度) | 实时步频检测 + 坡度计算 | | 健康数据 | HealthKit | 读写步频/训练/心率数据 | | 触觉反馈 | WKHapticType | 精准节拍引导 | | 存储 | SwiftData (本地) + CloudKit (同步) | 零服务器成本,Apple 原生 | | 后台运行 | HKWorkoutSession background mode | 与原生训练共存的关键 |
| 层级 | 功能 | 价格 |
|---|---|---|
| 免费版 | Watch 核心自适应节拍器 + 基础步频反馈 + 最近 5 次 CadencePro 训练基础完整详情 + Personal Cadence Path Lite + Starter 4 x 2 入门间歇 | 免费 |
| Pro | 完整历史归档与趋势 + 高级/自定义间歇编排 + Safety Zone + 步频区间 + 完整个人步频路径 + 高级仪表盘 + 成就与深度洞察 | ¥68/年 或 ¥12/月 |
| 教练版 | 步频作业模板 + 训练计划分发 + 学员执行摘要 | ¥198/年 |
| 指标 | 目标 | |——|——| | 下载量 | > 5,000 | | 日活跃用户(DAU) | > 500 | | 训练完成率 | > 70%(启动训练后完成的比例) | | 用户留存(7 日) | > 40% | | App Store 评分 | > 4.5 |
| 指标 | 目标 | |——|——| | Pro 转化率 | > 5% | | MRR(月经常性收入) | > ¥5,000 | | 用户 NPS | > 50 |
| 指标 | 目标 | |——|——| | 崩溃率 | < 0.1% | | 步频检测准确率 | > 95%(与 Apple Watch 原生数据对比) | | 电池消耗满意度 | > 80% 用户觉得可接受 |
| Phase | 时间 | 交付物 | 关键功能 |
|---|---|---|---|
| MVP | 第 1-6 周 | Watch App + iPhone 基础版 | F1 自适应节拍器 + F2 独立运行 + F3 原生共存 + F4 BPM 设置 |
| V1.0 | 第 7-10 周 | Pro 功能 + 订阅 | F5 间歇编排 + F6 步频区间 + F7 仪表盘 + F8 HealthKit |
| V1.5 | 第 11-14 周 | 个人步频路径 | F9 Personal Cadence Path Engine + 跑后洞察分享 |
| V2.0 | 第 15-20 周 | 教练工作流 | F12 教练模式 + F11 音乐 BPM 辅助 + F10 Strava 洞察分享 |
| 周 | 任务 |
|---|---|
| W1 | 项目搭建 + CoreMotion 步频检测原型 + 触觉反馈原型 |
| W2 | 自适应算法实现 + Watch UI 基础框架 |
| W3 | GPS 坡度检测 + 自适应逻辑完善 + 后台运行模式 |
| W4 | 与原生训练共存测试 + iPhone 配套 App 基础 |
| W5 | 集成测试 + 电池优化 + 真机跑步测试 |
| W6 | Bug 修复 + App Store 审核准备 + TestFlight 内测 |
| 风险 | 概率 | 影响 | 缓解措施 |
|---|---|---|---|
| Apple Watch 后台运行限制导致无法与原生训练共存 | 中 | 高 | 调研 HKWorkoutSession API 限制;备选方案:作为独立训练模式 |
| 步频检测算法精度不够 | 低 | 高 | 早期原型验证;可降级为读取 HealthKit 延迟数据 |
| 电池消耗过高被用户吐槽 | 中 | 中 | 提供「低功耗模式」(降低采样频率) |
| App Store 审核被拒(后台运行权限) | 中 | 高 | 严格按 Apple 文档申请权限,准备详细说明 |
| 市场教育成本 — 用户不理解步频训练的价值 | 中 | 中 | App 内教育内容 + 首次使用引导 |
功能丰富度
↑
|
PaceBeat ● | Strava/NRC ●
(节拍器+GPS+ | (全能跑步平台
力量训练) | 但无节拍器)
|
-------- CadencePro ● --------→ 步频训练深度
(步频训练专家) |
|
RunTempo ● |
(纯节拍器) |
|
Apple 原生 ●
(有数据无引导)
CadencePro 的独特位置:不做 GPS 记录和泛社交,而是占住 Apple Watch 上“无声触觉步频教练 + 个人步频路径”的窄而深位置。
_bmad-output/planning-artifacts/research/market-running-cadence-app-research-2026-03-24.md| 术语 | 定义 | |——|——| | SPM | Steps Per Minute,每分钟步数,即步频 | | BPM | Beats Per Minute,节拍器每分钟节拍数,在跑步场景中等同于 SPM | | Cadence | 步频,跑步时每分钟的步数 | | HealthKit | Apple 的健康数据框架 | | CoreMotion | Apple 的运动传感器框架 |
文档完成日期: 2026-03-24 下一步: 技术架构设计 → UX 设计 → MVP 开发