我自认为是一个马拉松爱好者,平时也一直在跑,但是Apple中的运动查看跑步数据的形式我一直觉得不好用。最开始做这个网站,只是想找个地方放自己的跑步数据,看看跑过哪些路、参加过哪些比赛。
后来觉得更新数据太麻烦,就想自己做个 App。做到能同步以后,又忍不住加了查看记录、分享图片、分析训练这些功能。这里记一下它是怎么变成现在这样的。
01 / 起点
先给跑过的路,找一个地方
每次跑完步,记录都留在苹果运动里。但我想把这些数据放到一个自己的网站上:地图上能看到跑过的路线,也能翻到以前的比赛成绩。
02 / 第一个麻烦
一次更新,要经过太多步骤
一开始,我直接从苹果健康导出数据。文件特别大,每次导出都要等十几分钟。等完还得跑脚本,把里面的跑步记录和轨迹解析出来,再更新数据、重新部署网站。
做一次还行,每次跑完都来这么一遍,实在太麻烦了。结果就是,跑步没停,网站上的数据却经常来不及更新。
完整导出→本地脚本
解析与整理→静态网站
更新并部署
我也找过不少能导出轨迹的软件,想着拿到轨迹文件后自己解析之后更新数据就好。但试了一圈,想用的导出功能基本都要付费。那就想为啥不能自己做个 App,直接把苹果健康里的数据读出来?
03 / 从同步开始
那就自己做一个 App
最初只想做一个同步工具:读取 Apple 健康,选中要上传的跑步记录,同步到网站。这样更新网站就不用再折腾那一大包导出文件了。
等数据能读出来了,我又觉得,只放一个同步按钮有点简陋。记录都在手机里了,为什么不能直接看?于是又做了地图、按年月整理的记录、单次跑步详情和统计。
现在,想翻一条跑步记录,在手机上就能看。想看看这些年去了哪些地方跑步,就打开网站看地图。App 直接读取健康数据,平时查看记录也不用先连上网站。
05 / 从手动复盘到 App 内分析
让 AI 帮忙复盘,也为比赛做准备
我之前经常在跑完后把数据导出来,发给 GPT,让它看看这次跑得怎么样,再聊聊接下来怎么练。每次都要重复整理数据,还得交代最近跑了多少、自己的目标是什么。
这些信息 App 里已经有了,我就把这件事也做了进去。配置好自己用的模型服务后,App 会整理近六周的训练摘要、最近三次跑步的详细数据,以及能读取到的恢复信息,让模型点评本次跑步,再给出接下来一周的安排。
而且到了临近比赛的时候 ,只看最近跑得怎么样还不够,还得知道在为哪场比赛做准备。于是我加了“目标赛事”:记下比赛名称、日期和距离,也可以填上想跑到的成绩,看看还剩多少天、目标配速是多少。
在 AI 训练设置里选“使用已有赛事目标”,就能把这场比赛的日期、距离和目标成绩带进去。再告诉它一周哪几天能跑、每次有多少时间、长距离想放在哪天。生成计划时,这些会和近期训练一起作为参考,不用每次重新解释自己在备战什么比赛。
06 / 从展示数据到解释变化
除了跑量,我还想看懂训练
做训练分析的时候,我也看了高驰等 App 的功能。除了公里数和配速,训练负荷、疲劳和恢复这些信息也挺有用:这周是不是一下跑多了?最近练得怎么样?下一次还要不要继续加量?
我先加了训练负荷,用跑步时长和心率强度估算每次训练的刺激,再比较近期和较长一段时间的变化。另外也做了有氧趋势,把相近条件下的速度和心率放在一起看;能读取到的静息心率、HRV 和睡眠,也会作为恢复的参考。
- 训练负荷
- 结合运动时长与心率强度,比较短期和长期的跑步刺激变化。
- 有氧趋势
- 在可比较的跑步片段里,观察速度与心率的关系,以及前后半程的变化。
- 恢复背景
- 把可读取的静息心率、HRV、睡眠等记录放回个人历史趋势中查看。
这些数字我主要拿来和自己平时比较。比如最近跑量涨得很快,就多留意一下身体的感觉。数据不够时先不算,算出来的结果也只是参考,毕竟累不累,自己跑的时候最有感受。
07 / 从建议到执行
让计划真正走到手腕上
AI 给的计划也不一定每次都合适。有时当天没那么多时间,有时就是想换个练法。所以计划生成以后,我还可以自己改日期、训练内容,以及热身、快跑、恢复和重复次数。
改完还要解决一个问题:出门跑的时候,总不能一直掏手机看。既然戴着 Apple Watch,就把计划发到手表自带的“体能训练”里,让它按段带着练。
为了能发到手表,间歇跑就不能只写一句“跑几组”了。每组跑多远或多久、中间恢复多久,都要拆清楚。我也加了修改后的更新,避免同一天的课程在手表上越堆越多。
手表这部分还在继续测试。计划编辑和同步已经接上,实际戴着手表跑起来,接收课程和分段提醒还需要再验证。
08 / 还在继续
功能之外,继续把它用顺手
功能多了以后,我又开始改那些用起来不舒服的地方。比如打开 App 等得久不久,详情里的配速和心率好不好找,从月报点进记录后能不能方便地返回,分享时改标题会不会被键盘挡住。
这些问题单看截图不一定能发现,自己多用几次就知道了。后来我花了不少时间改缓存、调页面顺序、整理图表,也把记录、详情、月报和分享之间的跳转重新顺了一遍。
现在回头看,App 的功能比最初想的多了不少。但每次加东西,理由都很简单:我自己跑步时想用,现有的操作又不太顺手。
接下来还是边跑边改。毕竟这个东西做出来,首先得让我自己愿意每天打开。