Posture Checker
一个配合 BLE 坐姿传感器使用的 React Native App,覆盖配对、实时反馈、趋势查看和纠正提醒。
为什么做坐姿,为什么连硬件也做
我每天大部分时间都在桌前度过,而市面上大多数坐姿 App 要么依赖手机陀螺仪(只有把手机绑在身上才有效),要么依赖摄像头检测(要求固定坐姿、侵入感强)。两者都无法在正常工作日中存活。
我想验证一个假设:一颗小型专用传感器,通过 Bluetooth Low Energy 与用户随身携带的手机配对,能否弥补这个缺口。它需要持续、低摩擦,同时仍然留在用户熟悉的移动界面里。
问题发现
对现有坐姿 App 的扫描揭示了一个反复出现的模式:实时反馈要么过于侵入(每次弯腰都震动一下),要么完全缺失(只有一天结束后的总结)。行为改变需要中间地带:当坐姿持续差到值得关注时才触发反馈,同时提供用户可以轻松回顾的趋势数据。
这个判断给了项目两个不可妥协的约束:一个能持续捕获坐姿数据的传感器,不依赖手机摆放位置;一个尊重用户注意力、但仍能在日常中发挥作用的提醒模型。
项目流程
作为独立 designer-builder,我把项目视为一个连续的循环:设计约束引导硬件决策,硬件行为重塑 UI,而 UI 又暴露了数据层的新问题。
- 01
调研
审计坐姿 App 和可穿戴设备;定义目标用户(久坐的知识工作者和学生)及核心反馈缺口。
- 02
硬件原型
用 Arduino 搭建基于 BLE 广播的坐姿传感器,验证小型低功耗设备能够持续传输坐姿数据。
- 03
系统架构
定义传感器到 React Native App 再到本地存储和 Firebase 的数据流,包括重连和离线行为。
- 04
UX 设计
围绕实时状态、每日目标、趋势和快捷设置,线框化一个单仪表板的移动端体验。
- 05
BLE 集成
实现配对流程、实时数据流和重连处理。这个部分最容易在真实环境中静默失效。
- 06
提醒策略调优
引入基于持续时长的推送通知,只在姿势持续不佳时才提醒,而不是每次瞬间弯腰都提示;随后根据用户实际关心的内容优化趋势和历史界面。
系统架构
架构横跨 BLE 坐姿传感器、React Native 客户端(iOS + Android)、用于离线韧性的本地存储、Firebase 同步与认证、趋势图表,以及用于纠正提醒的推送通知。因为我是一个人设计和实现这个系统,每一层都必须刻意保持简单。
用户活动流程
用户流程覆盖 App 启动、蓝牙配对、设备检测、实时坐姿分析、纠正通知和进度可视化。配对被视为一个关键产品时刻,而不是藏在设置里的步骤,因为整个产品的价值取决于它第一次就能成功。
硬件与连接决策
选择 BLE 而非 USB 或 Wi-Fi 有三点原因:它保留了小型可穿戴设备的全天电池续航;它能与用户随身携带的手机干净配对;它的连接模型(广播 → 连接 → 流式传输)能映射到一个可以从断连中恢复的移动端 UX。
采样率设为 1 Hz。更高的采样率增加了电池消耗和噪声,但没有改变行为信号。真正重要的是持续数秒的坐姿,而不是毫秒级抖动。本地存储保留原始数据流,确保即便网络不可用,趋势和历史仍然可用。
线框图
线框图将坐姿状态、每日目标、设置、统计和核心导航组织为单一仪表板结构。核心假设是:每天几次、每次几秒钟的快速查看,比一个用户必须"进入并探索"的重度 App 更有价值。
高保真原型
高保真原型将追踪、目标进度、分析和设置浓缩为一个适合每日重复使用的平易近人界面。信息密度刻意控制在很低的水平:主视图在回答任何其他问题之前,先回答"我现在坐得怎么样?"
设计反馈模型
产品中最冒险的 UX 决策是何时打断用户。每次弯腰都通知,会训练用户忽略 App;只在一天结束时汇总,又错过了纠正行为的关键时刻。
我采用了一个基于持续时长的模型:反馈仅在姿势持续不佳超过可配置时长后才触发。结合趋势可视化,它让 App 更像一个习惯工具,而不是一个一直打扰人的提醒器。用户看到的是"今天 vs 昨天",而不只是"你又驼背了"。
构建概览
构建覆盖了完整的产品面:一个硬件配对移动 App、围绕配对和提醒展开的交互模型,以及让坐姿习惯变得可见的趋势界面。
- 软硬件集成
- 设计并实现 BLE 配对流程,将 React Native App 连接到定制坐姿传感器,包括重连处理和实时数据流。
- 提醒策略
- 推送通知仅在持续坐姿不佳超过阈值后触发,支持行为改变而不因瞬间弯腰打扰用户。
- 信息呈现
- 实时状态、每日目标、历史趋势和良好/驼背可视化统一整合为单一移动端仪表板,用于日常快速查看。
反思
Posture Checker 是我不再把"设计"和"工程"视为独立阶段的那个项目。硬件约束(电池、采样频率、BLE 重连)重塑了 UI;UI 揭示了系统实际需要保留哪些数据;提醒策略只有在设计意图和数据管线同时调优后才真正生效。
最终交付的构建证明了一个独立的 designer-builder 可以将一个硬件集成移动产品从概念推进到完整的多屏可体验状态。如果继续迭代,我会优先做端侧趋势建模,让更多判断在本机完成,而不是依赖云端往返。







