7 月 4 日建工程,7 月 11 日重来一次,8 月 9 日上架 App Store,8 月 25 日 1.3 上线。 上架不是终点 —— 为了让分析更准、也为了把肖像权处理干净,我又回了一趟球馆; 9 月,安卓与鸿蒙版本进入真机联调。
「不是要做多厉害的作品,
而是要做一个有用的作品。」
这句话是从市羽毛球基地回来那天写下的。在那之前,我差点把这个项目做废 —— 详见下面的第 04 帧。
业余球友有三个真问题:看不见自己的动作、看不懂问题出在哪、 不知道接下来该练什么。动作帧把这三件事接成一条线 —— 手机往场边一放, 剩下的它来。
不是通用教程。性别、持拍手、身高体重、每周能打几次,都会改变课程安排。


录完自动跑骨架分析,把每一次挥拍对齐到视频时间轴。点开任意一拍,能看到骨架叠加的慢速回放。视频全程留在手机上,一个字节都不上传。
截图取自 1.3 版本的实际界面。


报动作、讲要领、计时、组间休息、倒数鼓点,高频句全部预先合成好打进包里,离线也能用。

晒战报、求指点、点评身边的球馆。练完那一下的成就感,得有地方放。
约球那张截图顶上那条红字,是评委体验包自己打上去的:「下面这些局都是演示数据」。 帖子可以是演示内容,约球局不行 —— 那是真人会照着时间去球馆的东西。 所以体验包里的局逐条标成「演示」,并且在客户端和服务端各挡一道,绝不混进真实的局。



一个 AI 说你「抬肘不足」,你凭什么信? 如果它的标准是从网上扒来的,那就不该信。 所以这三个月里,我为了拿数据去了三次球馆 —— 下面是每一次的时间、 当场发生了什么、以及带回了什么。
我不是去演示的。连着三天和教练、球员待在一起,拍了大量实战数据来验证分析到底准不准, 一条一条对。教练当场逐条看结果,指出哪些判断站不住 —— 这比任何一次自测都有用。
带回来的不是一张功能清单,是一个定位:个人私教 + 羽球社区。 也是在那几天,我确认了一件让我放弃整条专业版赛道的事 —— 一个教练本来就能同时盯 4 个场的球员。
这句话戳中了要害。如果旁边没有一个标准示例摆着,AI 说你「抬肘不足」, 用户根本没有参照物 —— 分析再准也没人信。
当晚我紧急联系了本地俱乐部的专业教练,拍了 27 条标准动作原片, 把常见错误动作也一并拍下来。在这之前,软件的核心参数是 AI 从网上调研来的; 从这天起,是我自己一帧一帧测出来的。
最终有 12 段进了 App —— 7 段正确 + 5 段错误,覆盖 6 个技术动作。 每段 3.5 秒、击球统一落在第 1.5 秒,所以标准和错误可以并排逐帧对齐着看。
两个原因。一是准确率:第一批素材是仓促拍的,机位和动作覆盖都不够, 分析模块还能更准。二是肖像合规:第一次拍的时候,授权这件事我处理得不够干净, 我不想让一个帮过我的教练,因为我的疏忽承担风险。
联系了几家球馆,都不愿意出镜。这件事本身很合理 —— 谁也不想自己的脸和场馆出现在一个陌生学生的作品里。
唯一一家答应了的,我把授权合同发过去之后,也拒绝了。合同越正式,对方越谨慎,这一点我当时没想到。
最后的解法:请教练带我们自己的队员小粥,由小粥以学员身份完成全部示范动作,教练在场边逐个动作纠。要出镜的是我们自己人,要授权的只有一个人。
那天晚上重拍了 12 个技术动作、双机位。 一整天之内,新素材就被整理并接进了产品里 —— 这是我一个人配一个 AI 能做到的速度,换成三个月前的我,光是重命名和对齐就要花掉一周。
里面写清楚了拍什么、怎么拍、能用在哪、授权多久、以及乙方随时可以怎么终止。 我签这份协议的时候还没满 18 岁,所以它还需要我妈妈作为法定代理人一起签字才生效。
所以这一页上每一张出现教练的照片,面部和场馆标识都做了马赛克 —— 包括 8 月 6 日那批。那不是打码打得难看,那是这份协议要求的样子。
不用买任何专业器材。手表测「发力」,摄像头测「姿态」,两条数据在同一根时间轴上对齐、 互相印证 —— 这是单个设备做不到的事。
录像 + Vision 骨架识别,逐帧算出肘角、击球点与挥拍速度,全部在本机完成。
100Hz 采集角速度,实时识别每一次挥拍并震动反馈,同步记录整场心率。
休息的 30 秒里,把刚才那一组的问题说给你听 —— 不用低头看屏幕。
只有手机也能用:拍摄、分析、逐拍指标、课程、语音带练都不需要手表。 手表负责的是「发力」这一路数据,以及边打边纠的实时陪练。
下面是真实的顺序,包括停掉的那六天和走错的那几天。 我把它按「帧」编号 —— 毕竟这个 App 就叫动作帧。
我自己打球时的真实困惑:和高手的差距肉眼可见,但到底差在哪? 教练说的「不转体」「击球点太低」我点头,下场还是老样子 —— 因为我看不到自己。
那一天提交了 10 次:手表挥拍检测、联动录像、骨架回放、AI 点评接入。 初赛的 Demo 当天就成型了。
Demo 能演示了,然后我停了下来。 它能识别挥拍、能给一段建议,足够拿去比赛 —— 但我很清楚,它帮不到任何一个真的想进步的人。 这六天的空白现在还留在提交记录里,我没有把它抹掉。
我把整个体验从头挑了一遍毛病,排成三批全部落地。 最要命的一条是:手机架在场边,一到两分钟必然锁屏,录像当场中断 —— 这种问题在办公桌上永远发现不了。
我想做多机位专业版卖给机构:3 台手机模拟三维重建,提高稳定性。写了几天。 7 月 23 日第一次拉到真实场地测试,当场穿帮 —— 一台机位的时钟根本没对上,同一段训练它录出来只有 19.6 秒,别人是 34.5 秒。
更要命的是我后来才明白:一个教练本来就能同时盯 4 个场的球员。 我在花大力气解决一个不存在的问题。
多机位方案当场封存,改成「单机位 + 平板监看」。这些代码没有进用户端的任何入口,留在仓库里当留档,提醒我别再犯。
这三天的细节在上面「凭据 · 取证 01」里。 一句话:我不是去演示的,是去被质疑的。
不是要做多厉害的作品,而是要做一个有用的作品。
7 月 27 日彻底掉头:放弃专业端,全力做大众版。当晚一口气做完了 12 课的课程引擎。
最难的其实是 UI。每一次让 AI 改界面都是惊喜和惊吓参半 —— 你永远不知道这次回来的是精致还是灾难。
软件里要用上百张配图。我一开始以为得一张一张对话生成, 后来问清楚之后,把火山方舟的 API key 交给它 —— 几个小时,配图问题一次解决:训练方法 100 张、错误库 220 张,一张不缺。
一份外部锐评把我熬了一整夜。第二天我做的第一件事,是写一条离线评测管线 —— 它直接编译 App 的生产代码来跑,保证离线算出来的和线上跑出来的逐位一致。
第一次量化的结果很难看:挥拍误检率 45.2%。 同一天我提出的三个改进判据,一个都没过门禁,所以一个都没上线 —— 只交了一份报告。这条规矩从那天起没破过。
导师的这一句,直接催生了两天后的标准动作采集, 以及 App 里那一页《这些数字怎么来的》—— 我把测量方法、实测准确率、 「我们否掉过自己的结论」和「我们测不了什么」全写在里面,放进了产品。
粤ICP备2026109963号 当天下发 —— 没有它,后面根本上不了架。
同一天,我的包连着三次被 Apple 的机器校验挡在门外。查了很久才找到根: 我的 Mac 装的是测试版系统,Apple 会读二进制里的构建机版本号, 直接判定为无效工具链,换哪个 Xcode 都没用。
当时有一条捷径:手改归档文件里的那个版本号就能骗过校验。 我没走。那等于向 Apple 谎报构建环境。最后改用云端构建,老老实实传上去。
审核员用 iPad 测的,点「通过 Apple 登录」毫无动静。根因是我自己写的: 失败分支把错误一律吞掉了,什么都不提示;而 iPad 的弹窗尺寸又把说明文字裁成了省略号。 当天修完。
也是这天晚上,我去拍了 27 条标准动作原片(见上面「取证 02」)。
我在 App 里写过一句「输入管理码可以让 AI 不限额」。 Apple 判定这是用 App 内购买以外的机制解锁数字功能,拒审。
它判得对。我没有去争,也没有把入口藏深一点了事 —— 整条通道从代码里删掉了。
同一天,我还翻掉了自己的两个结论(持拍手判据、肘角口径), 并且把自己的误检率成绩从 45.2% 重新算成 29.2%: 原来那个算法把根本没有人工标注的时间段也算了进去。
改完重新提交,这一次它过了。
为了让分析更准,也为了把肖像权处理干净。 那天最难的不是拍摄,是找到一个愿意出镜的人 —— 全过程在上面「凭据 · 取证 03」。
每日卡片的底图改成了服务器下发(加图不用再发版本)、实时陪练开闸并在真机上验完、 中羽 8/9 级开了人工评审通道、陪练的语音重做了一遍、约球局从零做到能用 —— 这些都在 1.3 里,8 月 25 日过审上线。
上线当天就有用户在收藏馆闪退。1.3.1 当天提审,1.3.2 两天后跟上。 有真实用户之后,「修 bug」这三个字的重量完全不一样了。
留言区问得最多的一句是「有安卓吗」。9 月开学后,安卓版按「原生骨架 + 原生分析引擎」重做: 骨架识别在手机本地跑,一段视频几秒出报告,报告页的视频回看、逐拍跳转都是原生实现; 鸿蒙版壳也已经编译通过。两者都在真机联调,还没上任何应用商店。
从 7 月 4 日凌晨的第一个提交,到今天。这是我第一次把想法送到真实用户手里 —— 接下来的问题是,它要怎么活下去。答案在下面「规划」那一节。
全程是我在对话框里描述需求、AI 写代码、我在 iPhone 和 Apple Watch 真机上验证, 再把问题反馈回去让它修。
AI 不会替你思考「要做什么、为什么这么做」。这部分只能自己扛: 去基地、被教练质疑、砍掉做不扎实的功能、决定产品的定位、 决定哪条捷径不能走。
但一旦想清楚了,它能把实现速度提到以前不敢想的程度 —— 右边这一轮对话,我提了 9 个实测发现的问题, 2 小时 54 分后拿回全部修复 + 编译 + 门禁验证的逐条对账。 8 月 17 日那天也是一样:晚上拍完的素材,当天就接进了产品。
这些数字不是估的。我自己搭了一条离线评测管线, 直接编译 App 的生产代码来跑,保证离线算出来的和线上跑出来的逐位一致。 知道差距在哪,比假装没有差距重要。
口径:阈值 0.35、且只在有人工标注的时间段内计分。放宽到 0.50 是 20.8%。样本只有 5 段视频 21 拍 —— 这个量撑不起更强的结论。
同一段素材连跑 4 次,分数最多差 7 分。已改成多次取截尾均值缓解,但单次结果仍不该当权威。
画面里两个人以上时可能跟丢目标。App 里有明确标记提示,但双打场景的分析结果不可信。
中羽 8、9 级看的是专业队履历,一段手机视频判不出来。所以 AI 硬性封顶在 7 级,再往上只能走人工审。这不是没做,是不该做。
已知残留问题:肘角那个「开窗口取峰值」的改法不能照搬到击球点高度上,会把随挥动作也算进去。
全靠真机跑和离线评测管线兜。后端有 11 个回归脚本,iOS 这边确实是空的 —— 这是欠的账。
主动砍掉的还有:球轨迹追踪(实测检出率侧面 24% / 左后 7%,下线后那一版包体从 51.7 降到 32.6MB)、 击球种类自动分类(单人单场地的素材训不出能用的分类器,自信地判错比不判更糟)。 被 Apple 用 3.1.1 拒审的那条通道也是直接删掉的,没有换个说法留下来 —— 详见第 12 帧。
动作帧到今天没有收过用户一分钱,也没有付费墙。 下面这份规划写给评委、老师和未来的合作方 —— 每一条都标清楚是「已经在做」还是「还只是计划」, 数字带口径。
拍摄、分析、逐拍指标、课程永远免费。AI 点评和定级消耗「羽毛币」—— 它现在是每天自动发放的用量配额,不能用钱买。这是 Apple 3.1.1 的红线,我们被拒过一次,所以格外清楚。
2026 年 8 月 29 日与指导老师和意向投资方确认的主线:在珠海,和一所学校、一家羽毛球场馆做 「摄像头 + 平板 / 一体机」的教学辅助,数据不出校园内网。校队 / 教练端两个月前就写好了,一直没卖过。
约球局和球馆五维点评已经把「人、时间、场地」放到了一起。这是天花板最高的一条, 但要企业主体、要和球馆一家家签 —— 排在最后不是不重要,是它最不能急。
安卓 / 鸿蒙上架;把「第二天还回来」的比例当唯一北极星;珠海一所学校 + 一家场馆跑通本地部署试点。
完成公司注册;学校 / 校队订阅复制到 3–5 家;日活过千后开放羽毛币内购与激励视频。
与球馆签订场合作,约球局直连场地 —— 把「找人打球」和「找场地」合成一件事。
训练视频永远留在本机;AI 定级封顶 7 级,再往上只走人工;不卖任何用户数据;涉及未成年人的场景先合规再上线。
口径:注册账号与活跃设备来自服务端统计表(截至 2026-09-12);「79% 只来过一天」为 2026-08-16 对 482 台设备的复核; B 端定价为估算,尚无成交;所有标注「计划」的项目均未承诺时间。
开发软件、组织合作、调研发现、视频后期制作。也就是除了出镜打球以外的所有事。
体验软件、测评软件、视频拍摄。第一个真实用户,也是最挑剔的那个。8 月 17 日那天,全部标准动作是他出镜示范的。
解决了我没钱请加练的问题。
高二,vibe coding 三个月。想到就做, 对「能真正被用起来」这件事有执念 —— 停在 Demo 阶段的东西,对我来说等于没做完。
在这之前我做过一个学习类的 iOS App,没能走到上架。 动作帧是我第一个真正送到陌生人手里的产品, 也是我第一次把 iPhone、Apple Watch 和 AirPods 串成一套东西。
我在探索 AI 能做的一切:AI 生图、生视频、数据分析。 最近也在尝试做 up 主,把这些踩过的坑讲给同样想动手的人听。