← 博客

为什么你的卡路里追踪器不需要你的电子邮件

MyFitnessPal、Cronometer、MacroFactor、Lose It!。在你记录第一块鸡胸肉之前,它们都想要你的邮箱、密码,有时还要你的出生日期和性别。

我们打造 Onyx Tenet 时,没有加这个要求。下载,打开,记录。你和食物日记之间,没有服务器。

这是我们做出的第一个架构决定,它影响了后面的一切。

他们为什么要这些信息

一个热量追踪器要求你创建账户,原因有三个,而且都不是“为了让应用能用”。

1. 广告定向

MyFitnessPal 和 Lose It! 提供广告支持的免费层。邮箱地址会把你的使用数据绑定到一个可供广告网络定向的身份上。你的饮食记录会变成行为信号。你吃什么、什么时候吃、追踪是否稳定,这些都有价值。

MyFitnessPal 自己的隐私政策也承认会与“营销和广告合作伙伴”共享用户信息,并说明某些跟踪 Cookie 的使用“在适用的隐私法下可能构成个人信息的出售或共享”。这不是猜测。这是他们自己的披露。

2. 锁定效应

一旦你的饮食记录存在别人的服务器上,背后还绑着他们的登录,离开就意味着失去数据。多年的餐食、体重历史、自定义食物、食谱。账户不是功能。它是护城河。

MyFitnessPal 让这种结构更明显了:CSV 导出被锁在每年 80 美元的 Premium 后面。免费用户不能导出自己的数据。你可以把数据放进去,但不付费就带不出来。

3. 参与度指标

DAU/MAU 比例、留存分群、漏斗转化率。这些才是投资人和广告主在意的数字,而它们都需要已识别用户。一个每天打开应用的匿名用户,对这些指标来说是不可见的。账户把这个人变成一个数据点。

MacroFactor 甚至没有免费层。Cronometer 的免费层会展示广告。每一个主流追踪器都把商业模式建立在用户会创建账户这个假设上。账户服务的是业务。没有账户,应用照样能正常工作。

出错时会怎样

如果数据一直安全,这些问题本来不会这么严重。但事实并非如此。

2018 年 2 月,MyFitnessPal 披露有未授权方访问了 1.5 亿个用户账户:用户名、邮箱地址和哈希密码。当时这是史上最大规模的数据泄露之一。

2026 年 3 月,Cal AI(其已收购 MyFitnessPal)又遭遇第二次泄露。安全研究人员发现了一个未认证的 Firebase 后端,不需要任何凭据就能读取。暴露的数据包括姓名、邮箱、出生日期、性别、身高、体重、健康目标、宏量目标,以及带时间戳的餐食记录。共有 320 万条用户记录,数据量达 14.59 GB。其中一条记录属于一名 2014 年出生的儿童。

这些都不是孤立事件。2021 年,一个名为 GetHealth 的健身数据聚合器留下了一个未受保护的数据库,暴露了从 Fitbit、Strava 和 Google Fit 拉取的 6100 万条记录。那些数据就放在一台没有密码的服务器上。

你的饮食记录、体重历史和邮箱,如今都已经出现在泄露数据库里了。它们从一开始就没有必要待在别人的服务器上。

无账户架构长什么样

下面是我们实际做的方案。

Data flow comparison: when you log a meal in an account-required app vs Onyx Tenet. The account-required path sends your data to their server, ad networks, and analytics platforms. The local-first path stores everything on your device.

本地优先数据库。 你的饮食记录、体重历史和自定义食物都保存在你设备上的本地数据库里(iOS 用 SwiftData,Android 用 Room)。默认不会上传任何内容。不需要网络连接。应用可以完全离线工作。

核心功能不依赖服务器。 记录餐食、扫描条码、查看历史、检查你的自适应 TDEE。这些都不需要网络连接,也不需要用户账户。服务器不在关键路径上。

通过公共 API 扫码。 条码查询使用 OpenFoodFacts,一个由社区维护的开放数据库。我们和他们那里都不需要账户。

完整的数据可移植性。 你的数据可以随时导出为 JSON 文件,从设置里的任意页面都能操作。这不是受限的每周 CSV,也不是 Premium 专属功能。这是你的数据。这是一个文件。你掌控它。

匿名分析。 我们使用 PostHog 做使用分析,并执行严格政策:不含 PII,不含饮食记录数据,不含体重数据。设置里的分析开关让你可以完全关闭。对启用云备份的用户,我们会用一个匿名化的 Firebase UID 来维持分析连续性。不是你的邮箱。不是你的名字。

“那如果我弄丢手机呢?”

这是最诚实的反对意见,我们非常重视。如果你的数据只存在于设备上,设备丢了,数据也会丢。

三道防线:

JSON 导出。 你可以把数据导出到 Files、iCloud Drive、Google Drive,或者你存文件的任何地方。在设置里一键完成。导出是完整快照:饮食记录、体重历史、自定义食物、食谱、设置。

平台备份。 iOS 和 Android 默认都会分别把应用数据备份到 iCloud 和 Google,除非你关闭了。对大多数用户来说,他们的数据早就自动备份了,不需要额外操作。

可选云备份。 如果你想要明确的云备份,并且支持在任意设备上恢复,Onyx Tenet 提供这个功能。你只需通过邮箱链接登录。我们用这个邮箱只做一件事:让你访问你自己的备份。没有密码。没有资料页。不是传统意义上的账户。如果我们未来真的加入完整账户,它们也会是可选的,而且只会为了对你有利的原因存在,不是为了我们。

重点不是备份不重要。重点是,备份应该是你有意识做出的选择,而不是一种顺手做数据收集的强制账户创建。

横向比较

MyFitnessPalCronometerMacroFactorLose It!Onyx Tenet
需要账户
饮食记录存储位置他们的服务器他们的服务器他们的服务器他们的服务器你的设备
免费层广告没有免费层没有广告。永远没有。
与广告网络共享是(免费层)广告标识符
数据导出CSV(仅 Premium)CSV(所有层级)电子表格(订阅用户)CSV(每周,仅网页端)JSON(完整,随时)
年费$80/年 PremiumGold(付费)$72/年$40/年核心功能免费

来源:各公司的当前隐私政策和 App Store 页面。所有说法都可公开验证。

取舍

本地优先意味着真实的取舍。我们不会假装没有。

默认没有跨设备自动同步。 你的数据保存在你记录它的那台设备上。云备份(可选)支持在任意设备恢复,但不是多设备之间的实时同步。这个功能我们以后可能会加,而且会是可选并加密的。

本地数据没有密码找回。 如果你卸载应用前没有导出或备份,数据就没了。JSON 导出就是你的保险。

备份责任由你掌握。 我们给你工具(导出、平台备份、云备份),但默认情况下,你的数据保持本地。这就是全部意义。

这些是有意识的设计决定,不是疏漏。另一种做法就是每个别的追踪器都在做的事:第一天就要求账户,把你的数据放到他们服务器上,然后称之为功能。


Onyx Tenet 不需要你的邮箱。下载,打开,记录。除非你明确选择,否则你的数据会留在你的设备上。

Onyx Tenet 免费。不需要账户。

相关文章