乐于分享
好东西不私藏

WHOOP数据绑死官方APP太闹心?| 这款开源本地工具帮你完全掌控健康数据

WHOOP数据绑死官方APP太闹心?| 这款开源本地工具帮你完全掌控健康数据


第一部分:痛点与破局

有没有用WHOOP手环的朋友和我一样糟心?辛辛苦苦攒的健康数据全存在官方服务器,高级功能要充会员才能用,想自定义分析数据还要走复杂的导出流程,连离线查看都受限?

今天给大家挖到的开源项目Goose就是专门解决这个痛点的,它是一款完全本地优先的WHOOP 5.0专属伴侣工具,不需要对接官方API,直接通过蓝牙连接手环读取数据,所有健康信息都存在你自己的设备上,支持查看睡眠、恢复、应变、压力等全维度指标,还能自定义分析。

注意:目前Goose还处于Alpha概念验证阶段,仅面向开发者评估可行性,不适合普通用户当日常健康 tracking 工具用,普通用户可以等2026年6月13日的TestFlight公开公测版。


第二部分:核心功能深挖

1. 分层清晰的全栈原生架构

Goose采用Swift+Rust的混合架构,兼顾了iOS端的原生体验和数据处理的性能、安全性:

  • 上层是SwiftUI开发的iOS应用,包含首页、健康、教练、更多4个核心Tab,还支持运动实时活动小组件
  • 中间层是CoreBluetooth模块,负责WHOOP 5.0设备的扫描、连接、数据同步全流程
  • 底层是Rust编写的核心静态库,通过JSON-over-C桥接和Swift层通信,负责数据解析、存储、计算
  • 所有健康数据默认完全本地存储,未来如果新增后端/AI功能,会单独走用户同意的授权流程,不会私自上传数据
  • 支持和苹果HealthKit联动,可导入HealthKit的睡眠数据,也能将运动记录写入HealthKit

项目核心代码结构如下:

GooseSwift/                         SwiftUI app source
GooseWorkoutLiveActivityExtension/ Live Activity widget extension
Rust/ iOS static library, headers, per-platform outputs
Scripts/build_ios_rust.sh Xcode build phase for the Goose Rust core
docs/goose-swift-mvp/ MVP plans, contracts, and data-readiness docs
GooseSwift.xcodeproj Xcode project

Swift层核心入口也做了明确标注,方便二次开发:

  • GooseSwiftApp.swift: app生命周期和 deep-link 处理
  • RootView.swift: 引导页和全局同步提示宿主
  • AppShellView.swift: Tab框架和共享健康存储绑定
  • GooseAppModel.swift: app状态、BLE控制权、生命周期、桥接摘要
  • GooseBLEClient.swift: 蓝牙扫描/连接/同步逻辑
  • GooseRustBridge.swift: Rust C桥接的Swift封装
  • HealthView.swift等健康相关文件:健康仪表盘、指标页、趋势页
  • CoachView.swift等教练相关文件:教练UI和聊天支持
  • MoreView.swift: 操作/调试/设置页面

2. 全覆盖的健康指标体系

Goose已经实现了WHOOP核心健康指标的解析和展示:

  • 支持睡眠、恢复、应变、压力、心肺负荷、能量储备等核心健康指标展示
  • 所有指标支持溯源,可查看数据的具体来源
  • 缺失数据会明确显示为空、过期、不可用状态,不会生成虚假推断数据
  • 原始蓝牙数据包仅在Debug/导出流程展示,日常健康界面不会出现冗余的技术信息
  • 内置本地教练功能,基于本地存储的指标生成分析建议,不需要调用外部大模型服务

3. 完全开放的可扩展结构

项目源码完全开放,没有包含任何WHOOP官方私有代码,仅通过设备公开的蓝牙服务通信,可扩展性极强:

  • 项目结构清晰,所有核心模块都有明确的文档说明
  • 提供完善的MVP开发文档,包含各模块的待办事项、实现规范、验收标准
  • 支持自定义指标计算规则,可基于原始数据开发自己的健康分析模型
  • 配套Debug工具,可查看设备状态、同步进度、原始数据包等底层信息,方便开发调试

第三部分:实战演示

想要本地构建运行Goose,你需要先准备好以下环境:

  1. 安装了Xcode的macOS设备
  2. iOS 26 SDK + 支持iOS 26的模拟器/真机
  3. 配置好Apple Developer签名,bundle ID为com.goose.swift
  4. 安装了Rust和Cargo环境

第一步:安装iOS Rust编译目标

rustup target add aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios

第二步:构建项目

克隆项目后可以直接用Xcode打开GooseSwift.xcodeproj构建,也可以用命令行构建:

模拟器构建命令:
xcodebuild \
-project GooseSwift.xcodeproj \
-scheme GooseSwift \
-configuration Debug \
-destination 'platform=iOS Simulator,name=iPhone 17' \
-derivedDataPath /tmp/goose-swift-deriveddata \
build
真机构建:

首先查询你的真机设备ID:

xcrun devicectl list devices

替换命令中的<device-id>后执行构建:

xcodebuild \
-project GooseSwift.xcodeproj \
-scheme GooseSwift \
-configuration Debug \
-destination 'platform=iOS,id=<device-id>' \
-derivedDataPath /tmp/goose-swift-deriveddata-device \
-allowProvisioningUpdates \
build
真机重装运行:

构建成功后可以用以下命令直接安装到真机并启动:

xcrun devicectl device uninstall app \
--device <device-id> \
com.goose.swift

xcrun devicectl device install app \
--device <device-id> \
/tmp/goose-swift-deriveddata-device/Build/Products/Debug-iphoneos/GooseSwift.app

xcrun devicectl device process launch \
--device <device-id> \
--terminate-existing \
com.goose.swift

💡 小提示:正常情况下不需要手动编译Rust核心,Xcode的构建阶段会自动执行脚本编译对应平台的静态库,如果你已经提前编译过,可以设置环境变量GOOSE_SKIP_RUST_CORE_BUILD=1跳过Rust编译步骤,加快构建速度。


第四部分:避坑指南与总结

避坑提示

  1. 当前是Alpha版本,性能优化做得很少,APP卡顿会非常明显,不要作为日常健康跟踪工具使用
  2. 目前仅支持WHOOP 5.0手环,其他WHOOP型号完全不兼容
  3. 数据处理管道还在迭代中,部分指标显示为空属于正常现象,后续版本会逐步补齐
  4. 不要提交编译后的Rust .a静态库到代码仓库,这些文件是本地生成的,不需要版本控制
  5. 所有健康相关的文案不要做医疗相关的宣称,避免误导用户

总结

Goose是非常有潜力的开源健康硬件伴侣项目,完美解决了商用可穿戴设备数据不开放、不本地化的痛点。当前阶段适合iOS开发者、Rust开发者、WHOOP 5.0硬核用户尝鲜折腾,普通用户可以蹲2026年6月的TestFlight公测版。如果对项目感兴趣也可以参与贡献,小的聚焦性变更会更容易被合并。


GitHub开源地址:https://github.com/b-nnett/goose

相关学习资料