1953 字
10 分钟

「我的项目 NextRep」我开发了一个开源健身记录APP

2026-03-28
浏览量 加载中...
已进入沉浸阅读模式,按 ESC 退出

前段时间我一直想找一个真正顺手的健身记录工具。

很多优秀的 App 只提供 IOS 版本,而安卓的健身 App 要不就是收费高昂,要不就是复杂且 UI 丑陋,作为一个轻度健身小白,我只需要它能帮我简单记录力量训练和有氧,能看见体重和围度的变化趋势,最好还能在我训练完之后,帮我做一点总结和分析。

可惜试了一圈之后,我总觉得差一点意思。有的 App 界面太重,功能很多,但真正开始训练的时候反而不够顺手。另外很少有类似的开源 App,毕竟训练数据、体重变化、身体围度这些东西,说不上多敏感,但我还是更希望它们安安静静地留在本地。

于是最后,我决定借助 AI 的力量,自己做一个完全符合自己要求的健身 App。

它叫 NextRep,一个 AI 驱动、离线优先、隐私友好的本地健身记录 APP

Liebesfreud
/
NextRep
Waiting for api.github.com...
00K
0K
0K
Waiting...


1. 为什么会做 NextRep#

我觉得健身记录这件事,我需要简单记录如“今天卧推多少公斤、做了几组”这种数据。但这只是最基础的功能,而我很在意另外一些东西:最近力量有没有进步、体重变化是不是符合预期、哪类动作练得最多、自己这段时间的训练偏好是什么、今天这组训练到底算不算有效。

这些信息其实都藏在日常记录里,我可以很简单的使用 AI 分析这些数据。所以 NextRep 的想法就慢慢明确了:

  • 先把记录这件事做顺手:训练中能快速输入,尽可能简单
  • 再把数据真正利用起来:不只是堆在那里,而是能看趋势、看偏好、看变化
  • 最后交给 AI 做总结和辅助分析:让记录不只是归档,而是能够看到参考意见

以及最重要的一点:尽量把数据留在本地。

NextRep 目前使用本地 SQLite 存储训练记录、身体数据和配置,整体是一个很明显的离线优先思路。除了你主动配置的 AI 接口调用之外,核心数据不会上传云端去。这种让数据完全掌握在自己手里的感觉对我来说很安心。


2. NextRep 现在能做什么#

如果要一句话概括,我会说它已经不是一个“简单打卡工具”,而是一个比较完整的个人训练记录系统。

2.1 首页:保证基础功能,简单易用#

首页是我最在意的一块,因为这决定了它是不是“训练时愿意打开”的 App。

NextRep 目前支持:

  • 力量训练记录:可以逐组记录重量、次数、完成状态和 RPE;
  • 有氧训练记录:记录力量训练后的有氧燃脂数据;
  • 每日打卡:训练完成后会有一点轻量反馈,不至于太死板;
  • 训练热力图:能直观看到自己这一个月到底练了多少天。

我比较喜欢的一点是,它不是把数据冷冰冰地堆成表格,而是尽量保留一种“训练中心”的感觉。你打开它的时候,看到的是今天该做什么、做到了什么,而不只是历史数据列表。

2.2 看板:让训练记录真正变成可读的数据#

我一直觉得,记录本身不是目的,看见变化才是。所以 NextRep 里单独做了一个数据看板,用来整理身体数据和训练偏好。这里面现在已经有:

  • 体重、围度等身体统计卡片
  • 趋势对比,可以更直观地看最近的变化;
  • 训练偏好分析,比如自己更偏向哪些动作和训练类型;
  • AI 身体评估与建议,把原始数据转成更容易理解的描述。

2.3 AI 教练:这是我最想做的部分#

NextRep 支持接入 OpenAI 兼容的 Chat Completions API。配置好模型之后,它会结合最近的训练记录和身体数据,把这些上下文一起交给 AI,做训练分析、制定训练计划。这意味着你可以把它当作一个更懂你近期状态的训练助手不是那种“强行加 AI”的噱头感,而是让 AI 真正站在已有数据上说话。比起无上下文地聊天,这种方式会有用得多。

2.4 设置与数据管理:我希望它能长期使用#

很多小项目都会把“设置页”做成一个很边缘的东西,但我自己真的会在意这部分。

NextRep 现在已经支持:

  • 自定义动作库管理
  • 多模型配置和切换
  • JSON 数据导入 / 导出
  • 本地数据清理

这几项虽然不算最显眼,但很重要。因为只有当一个 App 允许你管理自己的动作、掌控自己的模型、备份自己的数据,它才更像一个能长期使用的个人工具,而不是一个一次性玩具。


3. 为什么我会喜欢这种“本地优先”的方式#

这大概也是 NextRep 最核心的气质。

现在很多应用默认就是账号、云同步、服务器、在线状态,仿佛不联网就什么都做不了。但健身记录在我看来,其实是非常适合本地化的一类应用:

  • 数据结构相对稳定;
  • 使用场景高频但个人化;
  • 很多时候并不依赖多人协作;
  • 用户真正关心的是响应快、记录顺、数据不丢。

所以 NextRep 选择了 Drizzle ORM + expo-sqlite 这一套本地数据方案,把训练数据、身体数据和配置都留在设备上。这样做当然意味着它暂时不会是那种“大而全”的平台型产品,但我反而觉得这正是它舒服的地方。


4. 技术上,我是怎么把它做出来的#

如果你也对这类 App 的实现感兴趣,NextRep 目前主要基于下面这套技术栈:

  • Expo SDK 55 + React Native 0.83
  • Expo Router 做文件系统路由
  • NativeWind v4 负责样式
  • Moti + Reanimated 4 处理动画和交互反馈
  • Drizzle ORM + expo-sqlite 做本地数据库
  • TypeScript 作为主要语言

5. 现在的版本与后续想法#

NextRep 当前已经发布到了 v1.2.0。不过说实话,它在我眼里仍然是一个正在继续生长的项目。我之后还想继续慢慢打磨它,比如:

  • 继续优化训练记录流程,让输入更自然;
  • 丰富看板里的数据维度和可视化;
  • 让 AI 教练的总结更贴近真实训练语境;
  • 再补一些我自己训练中真正会用到的小功能。

我现在越来越喜欢这种状态:不是为了做一个“看起来很大”的产品,而是做一个自己愿意长期打开、愿意持续维护的东西。


6. 如果你也想试试看#

虽然这个项目还不算特别成熟,可能还有不少 bug,但项目已经开源在 GitHub 上了:

如果你刚好也在找一个更偏本地、更重视隐私、同时又想把 AI 真正用进训练记录里的工具,也许可以试试看。说到底,NextRep 对我来说并不只是一个“健身打卡 App”。

它更像是我把自己对训练、对记录、对工具感受的一些想法,慢慢做成了一个真的可以握在手里的东西。

「我的项目 NextRep」我开发了一个开源健身记录APP
https://www.chaxuji.de/posts/nextrep-1.2.0/
作者
Liebesfreud
发布于
2026-03-28
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-03-28,距今已过 1 天

部分内容可能已过时

评论区

目录