这个项目能做什么

OpenNutriTracker 是一款免费开源的卡路里、宏量营养素和微量营养素追踪器,适用于 Android 和 iOS,使用 Flutter/Dart 构建,并以 GPLv3 许可发布。它面向那些希望记录饮食而不将个人历史数据交给公司的用户。 核心记录功能:可搜索食物数据库、扫描条形码,或快速添加已知卡路里数值。日记基于日历视图,分为早餐、午餐、晚餐和零食,每餐设有卡路里目标,并支持拖拽在餐次间调整。可重复使用的食谱和自定义餐食可附带照片、品牌和条形码。 追踪与回顾:趋势图显示连续记录天数、卡路里与目标线的对比、宏量营养素平均值、水分摄入和体重与目标的对比,时间范围可选 7 天、30 天、90 天或全部历史。微量营养素面板涵盖十种营养素(纤维、钠、饱和脂肪、糖、钙、铁、钾、维生素 D、B12、镁),并带有可选的参考摄入量条。另有水分记录组件和可选的间歇性禁食计时器。 目标值根据身高、体重、年龄和活动水平计算,项目声明卡路里目标遵循 IOM 2005,BMI 遵循 WHO,宏量营养素遵循 WHO TRS 916,活动消耗遵循 2024 年 Compendium,应用内提供来源页面链接相关论文。 食物数据来自 Open Food Facts,以及一个多来源参考后端,涵盖 USDA FoodData Central 和德国 BLS;该后端是独立的开源仓库,可自行托管。设置中可选择搜索覆盖哪些数据库。 隐私立场:无账户、无需登录、无广告、无分析 SDK。个人资料、日记、活动、体重、水分、禁食历史、自定义餐食和食谱存储在本地 Hive 数据库中,并使用 AES-256 加密,密钥保存在 Android Keystore 或 iOS Keychain 中。README 列出了所有可能接收请求的目的地及发送内容,包括 Open Food Facts、Supabase 后端、可选的 Sentry 崩溃报告,以及可选的 AI 膳食辅助功能(通过用户提供的 API 密钥使用 Anthropic、OpenAI 或 OpenRouter,或自托管服务器地址)。AI 辅助功能标记为“实验性”,默认关闭;模型仅返回食物名称和数量,卡路里和宏量营养素仍来自食物数据库。 可移植性:可将日记、活动、记录天数、食谱、体重历史和自定义活动模板导出为 JSON,或将日记、活动和记录天数导出为 CSV;支持 JSON 导入和单条记录的二维码分享。导出格式有文档说明。 其他功能包括 Android 12+ 上的 Material You 强调色、十六种内置主题、千卡或千焦单位、屏幕阅读器支持,以及通过 Weblate 管理的翻译。README 提到已有超过 30 位开发者贡献,且大多数合并的拉取请求来自维护者之外。