一个追踪慢性疼痛的App,最该守护的不是功能多好用,而是用户敢不敢把自己最脆弱的一面放进去。疼痛记录、睡眠数据、情绪日志、用药历史、受伤照片、从未打算变成别人资产的笔记——这些不是产品遥测数据,是人的痕迹。一旦开始做健康类应用,你就不再只是造工具,而是在决定用户必须对你放置何种信任。

这条线不在模糊的隐私营销里,在真实的架构中:什么留在本地,什么被加密,什么被导出,什么被同步,什么被观察,什么在任何情况下都不该变成别人的数据废气。这条线就是整个系统。

打开网易新闻 查看精彩图片

用户的设备是第一道边界。客户端健康应用应该从一个硬事实出发:用户的设备是安全区,不是服务器,不是分析栈,不是营销层。这意味着最敏感的数据默认应该本地存储,任何离开设备的动作都应该是刻意的、可见的、由用户拥有的。如果应用收集疼痛日志、个人笔记、症状历史或康复记录,这些记录不应该因为产品团队想要洞察就悄悄漂进远程系统。

打开网易新闻 查看精彩图片

"本地优先"不是口号。很多应用一边说在乎隐私,一边把所有东西路由到云端,好像事情本该如此。本地优先意味着应用可以在不把手用户的身体交回服务器的情况下运行,意味着存储、编辑和基本检索在设备上完成,意味着应用不需要某个遥远系统的许可就能打开记录、更新笔记或查看时间线。这在健康语境中更重要,因为用户可能根本不想让自己最脆弱的材料待在任何联网的地方。也许他们只为自己追踪疼痛,也许在就医前记录症状,也许在为法律、职场或福利原因建立记录,也许只是需要一个私密空间来观察规律,而不把自己的身体变成别人的仪表盘。

导出是边界,不是泄漏。很多产品把导出当成"数据便携性"的复选框来设计,随便一个JSON转储,塞进云服务,任务完成。但导出在健康语境中是信任决策。用户是在把自己的身体数据交给另一个系统,也许是医生的电子病历,也许是法律团队,也许是研究项目,也许是他们正在尝试的新应用。每一次导出都应该被当作边界穿越来对待:数据要去哪里,如何保护,接收方是谁,用户如何撤销同意。健康应用应该让导出变得刻意、有文档记录、可逆,而不是藏在设置菜单里的意外泄漏。

同步是可选的,不是默认的。云端同步被当成理所当然,但同步是架构选择,不是物理定律。有些用户需要跨设备访问,有些用户明确不希望自己的健康数据在任何网络上存在。好的客户端应用让同步成为用户选择的功能,而不是退出困难的默认设置。这意味着设计离线优先的架构:本地数据库是真相来源,网络只是可选的传输层。IndexedDB、Service Worker、本地优先的CRDT——这些不是边缘案例的技术,是尊重用户边界的基础。

打开网易新闻 查看精彩图片

观察是侵蚀。分析、遥测、行为追踪——这些在消费软件中被常态化的东西,在健康应用中变成主动伤害。不是因为你收集了什么具体数据,而是因为你在把用户的身体变成观察对象。他们什么时候记录疼痛,如何滑动评分滑块,在哪个屏幕停留——这些模式可以反向推断出敏感信息。一个声称隐私优先的健康应用,应该对观察持有极高的怀疑标准:收集什么,为什么,如何匿名化,保留多久,谁可以访问。默认应该是零观察,而不是"我们只做汇总"。

加密是最后的防线,不是第一道。端到端加密被当成隐私的万能药,但加密解决的是传输和存储问题,不是信任问题。如果应用架构默认把所有东西发到服务器,加密只是让泄漏变得更难,而不是让边界更牢固。真正的边界是数据从不离开设备,除非用户明确决定。加密应该是对已经最小化的数据流的额外保护,而不是对过度收集的补救。

这篇讨论建立在几篇技术写作之上:Service Worker在离线优先渐进式Web应用中的故障模式、离线优先PWA中的回滚模式、IndexedDB模式迁移的测试、离线队列重放与幂等性。这些文章命名了故障模式,而这篇命名了那些故障正在威胁的隐私边界。如果你想让隐私优先的离线健康技术存在,而不靠 surveillance 资助它,可以赞助构建:https://paintracker.ca/sponsor