做了一个慢性病记录 App,聊聊血压血糖模块的实现思路
起因
去年我爸确诊高血压,医生让每天早晚各量一次血压,记下来复诊时带过去。一开始他用小本子记,字迹潦草不说,经常忘了写日期,两周后本子就找不到了。我帮他换成备忘录,稍微好一点,但纯文本看不出趋势,医生翻起来也费劲。
我本身是 iOS 独立开发者,想着这事不复杂,干脆自己做一个。后来功能越加越多,从单纯的血压记录,扩展到血糖、体重、用药管理,做成了现在的「健康手账」。
核心功能做了什么
App 覆盖四个模块:血压、血糖、体重、用药,定位是慢性病人群的全周期健康记录工具。
血压这块,录入收缩压和舒张压后会自动按国际标准分级——正常、正常高值、一级高血压、二级高血压。我爸之前每次量完还要翻对照表,现在省掉了这一步。血糖模块类似,空腹和餐后有不同的判定逻辑,记录时选好时间节点即可,App 内部走不同的阈值分支。
数据积累几天后趋势图会标出异常波动,比如连续三天清晨血压偏高,App 会给出一条提醒,方便决定是否需要找医生聊聊。
用药依从率——我觉得最实用的功能
用药管理做得比较细。添加药品后可以设定服药频次和提醒时间,到点推送通知。真正有价值的是依从率统计:按周、按月算出实际服药次数占应服次数的百分比。复诊时直接给医生看这个数据,比口头描述「偶尔忘吃」清楚得多。如果同时服用降压药和降糖药,还能通过标签关联来观察用药和指标变化之间的对应关系,比如换药后血糖曲线有没有明显下降。
技术选型简单说几句
UI 层用的 SwiftUI,数据图表这块最早试过 Charts framework(iOS 16+),趋势图的异常标注逻辑大致是这样处理的:
func checkAbnormalTrend(readings: [BPReading], window: Int = 3) -> Bool {
guard readings.count >= window else { return false }
let recent = readings.suffix(window)
return recent.allSatisfy { $0.systolic > 135 || $0.diastolic > 85 }
}
连续 N 天超阈值就触发提醒,窗口大小和阈值后续做成可配置项。Apple Watch 端用 WatchConnectivity 同步,手腕上能快速记一笔,不用每次掏手机。
家庭多档案和导出
很多人帮父母记血压,自己也在管体重。App 支持家庭多档案,切换档案分开管理,数据不会混在一起。每个档案都能导出 PDF 报告,排版清晰,打印出来带去门诊很方便。这个功能上线后用户反馈最积极,说明刚需确实存在。
最后
价格方面,基础记录功能免费使用,高级功能(趋势洞察、PDF 导出、家庭档案等)通过内购解锁,具体订阅价格可在 App 内查看。
如果你或家人需要长期监测血压血糖,每天都在和数字打交道,这款 App 能把零散的记录变成有意义的趋势参考。还在用纸质本子或备忘录记数据的话,切换过来会轻松不少。App 名称是「健康手账」,App Store 可以搜到。

浙公网安备 33010602011771号