指南

如何搭建健身应用:训练、记录、进度与教练功能

健身应用让人们可以跟着训练、记录自己实际完成的内容,并看到长期的进步。它的核心是动作库、训练计划、一个在组间休息时也能快速使用的记录界面,以及带图表的历史记录。教练类应用还多了一个方面:教练制定训练计划,学员按计划训练。建议先把它做成适配手机的网页应用,让记录界面保持简单,并如实说明网页应用能从手机和可穿戴设备读取什么、不能读取什么。

选择健身应用的类型

类型主要用户核心循环
训练记录工具独自训练的人选择训练 → 记录组数 → 查看进度
计划类应用跟随固定计划的人(12 周力量训练计划、跑步计划)今日训练 → 完成 → 下一次训练解锁
教练与学员应用私人教练及其学员教练分配计划 → 学员记录 → 教练审阅并调整
课程或健身房应用健身房或工作室的会员查看课表 → 预约课程 → 签到

最后一种实际上是预约类应用;参见如何搭建健身房会员应用。本指南主要关注前三种。

健身应用需要什么

页面

  • 今日:今天安排的训练,或快速的“开始空白训练”。
  • 训练记录页:每个动作及其组数;点击即可输入重量和次数,勾选完成,组间有休息计时器。
  • 动作库:名称、肌群、器械、动作说明,以及可选的视频或图片。
  • 计划与模板:可重复使用的训练和多周计划。
  • 历史记录:按日期列出过往训练。
  • 进度:每个动作的图表(最重一组、估算的一次最大重量、总训练量),以及用户希望记录的身体数据。
  • 教练专用:学员列表、计划制定工具、学员打卡和评论。

数据

  • 动作:名称、类型(力量、有氧、计时类、自重类)、肌群、器械、说明。
  • 训练模板:名称,以及按顺序排列的动作,包含目标组数、次数和休息时间。
  • 计划:周和天,每一天关联一个模板。
  • 训练记录:用户、日期、模板(如有)、备注、时长。
  • 组:训练记录、动作、组序号、重量、次数、距离或时间、RPE(主观用力程度),以及是否完成。
  • 身体数据:用户、日期、体重及其他测量值。

以一种单位存储重量(例如千克),显示时再换算,这样切换单位时就不会破坏历史数据。不同类型的动作需要不同的字段:平板支撑需要时间,跑步需要距离和时间,深蹲需要重量和次数。

权限

个人记录工具需要每个人一个账户,数据完全私密。教练类应用需要教练和学员两种角色:教练只能看到自己的学员,学员只能看到自己的数据。要测试一个学员是否无法通过修改地址栏中的 ID 打开另一位学员的训练记录。

决策与取舍

网页应用还是原生应用。 原生应用可以读取 Apple Health、在后台运行,并在锁屏上显示内容。网页应用完全无法读取 Apple Health,但可以在各种手机上运行,无需应用商店审核,还能作为渐进式网页应用(PWA)添加到主屏幕。对于记录工具或教练类应用,网页应用足以覆盖核心功能。参见原生应用与渐进式网页应用对比。

可穿戴设备。 部分可穿戴和健身平台提供网页 API,可在用户授权后连接。在规划依赖它们的功能之前,请先查看各厂商的开发者条款。对于第一个版本,手动输入跑步和心率数据就已经很好了。

使用现成的动作库还是自建。 提供一百个常见动作的列表,可以为用户节省时间。动作说明请自己撰写,或使用授权允许的来源;不要复制其他应用的动作库。

健身房信号。 健身房内的网络信号通常很差。应确保记录工具在训练中途断网时仍能继续工作,并在网络恢复后保存数据,至少要保证已输入的组数永远不丢失。

安全与隐私

健身应用不是医疗设备。不要提供医疗建议,并加入简短的提示,说明用户在开始训练计划前应咨询专业人士,尤其是有健康问题的用户。体重、身体测量数据、伤病和健康备注都属于个人信息;部分法律将与健康相关的数据视为特殊类别。应默认保持所有数据私密,只收集你会使用的数据,并允许用户导出和删除自己的数据。

示例初始提示词

为我的私人训练学员搭建一个教练应用,优先适配手机。两种角色:教练和学员。作为教练,我可以从动作库中创建训练模板(名称、肌群、器械、动作说明、类型:负重、自重、计时或距离),将它们组合为多周计划,并把计划分配给学员。学员可以看到今天的训练,为每一组记录重量和次数(或时间、距离),勾选完成的组,并在组间启动休息计时器。如果网络中断,已输入的组数绝不能丢失。以千克存储重量,并允许每位用户选择以千克或磅显示。学员可以看到自己的历史记录,以及每个动作的进度图表(最重一组和估算的一次最大重量)。我可以看到学员列表、他们已完成的训练,并可以在任何训练记录上留言。每位学员只能看到自己的数据。使用邮箱和密码登录,数据保存在数据库中。预先填充 40 个常见动作和两位演示学员。

构建步骤

  1. 先做记录工具。 组数输入界面决定了应用是否会被使用。输入框要大,使用数字键盘,一键复制上一组。
  2. 动作库和模板。 预先填充常见动作,并检查每种类型是否显示正确的字段。
  3. 历史记录和进度图表。 用几周的模拟数据测试,让图表看起来真实可信。
  4. 账户与角色。 先添加登录,再添加教练和学员角色。尝试打开另一位学员的数据,确保操作会失败。参见如何为应用添加登录功能。
  5. 训练计划。 设置周和天,并明确学员错过一次训练时会发生什么。
  6. 安装到手机上。 把应用添加到手机主屏幕,并用它完成一次真实训练。参见如何搭建适配手机的网页应用。
  7. 与三位学员进行测试。 观察他们在哪些地方犹豫。

常见错误

  • 输入框太小。 人们在组间手心出汗地记录数据。目标区域要做大。
  • 所有动作都使用同一套字段。 平板支撑、跑步和深蹲需要不同的字段。
  • 存储时混用单位。 存储一种单位,显示时再换算。
  • 网络中断时丢失组数。 先保存在本地。
  • 在网页应用中承诺 Apple Health 同步。 没有原生应用是做不到的。
  • 上线时功能太多。 社交动态、徽章和 AI 生成的计划都可以等到基本循环跑通之后再做。
  • 听起来像医疗建议。 指导内容保持通用,并加入清晰的免责声明。

什么时候现成的健身应用更好

如果你只是想记录自己的训练,成熟的训练应用已经拥有庞大的动作库、可穿戴设备同步、离线使用和原生通知功能。许多私人教练也会使用专门的教练平台,其中包括收款、消息和品牌化应用。

当你的训练方法与这些工具不匹配时(例如特定的计划结构、特定运动的指标、有自身规则的俱乐部或团队),当按学员收取的平台费用不断累积时,或者当你希望应用承载你的品牌和数据时,就应该自己搭建。如果你打算围绕它开展私人训练业务,请参阅如何开设私人教练业务。如果只需要一个更简单的日常追踪工具,如何搭建习惯追踪应用是很好的起点。

使用 Mythex 搭建

Mythex 将健身应用构建为网页应用:你在聊天中描述需求,在实时预览的手机尺寸画面中检查记录界面,然后发布到学员可以打开并添加到主屏幕的公开地址。当应用需要时,它会添加专用的 Postgres 数据库,并为动作图片或视频提供文件存储。登录需要你自带服务,参见身份验证指南;如果你向学员收费,支付也是如此。在 Pro 版本中,Mythex 可以把应用封装为 Android 和 iPhone 应用,但它的界面仍是网页界面,因此目前无法实现需要原生代码的可穿戴设备和 Apple Health 集成。

常见问题

健身应用应该具备哪些功能?

动作库、训练计划或模板、快速记录每组的重量和次数、历史训练记录,以及进度图表。教练类应用还会增加学员账户、分配的训练计划和打卡功能。

网页应用能直接读取 Apple Health 或智能手表的数据吗?

不能直接读取。Apple Health 的数据只对原生 iOS 应用开放,网站无法访问。部分可穿戴设备厂商提供网页 API,网页应用可以在用户授权的情况下连接;在承诺任何集成之前,请先查阅各厂商的开发者文档。

我可以不写代码就搭建健身应用吗?

可以。AI 应用构建工具可以根据描述搭建训练记录工具、计划制定工具或教练与学员应用。大多数 AI 构建工具生成的是网页应用,用户可以在手机浏览器中打开,并添加到主屏幕。

健身应用需要遵守健康数据规则吗?

这取决于你的运营地区以及你收集的数据。体重、伤病和健康状况在 GDPR 等法律下可能属于敏感个人数据。只收集你真正需要的数据,默认保持私密,并请顾问核对适用于你的规则。

Mythex · Pricing · 用 AI 构建任何东西 · 网站和应用模板 · Mythex 对比 · AI 应用构建术语表 · 免费的 AI 应用构建工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 繁體中文(香港) 繁體中文(台灣)