One Line
一句话介绍
家庭血压记录 是一款本地优先的 Android 血压追踪应用,适合家庭成员,尤其是中老年用户,进行日常血压数据记录与查看。应用支持新增测量、历史记录、趋势展示、用户设置、数据导入导出等功能,主数据保存在本地 Room 数据库中,设置项通过 DataStore 管理,既保证了基础功能的稳定性,也避免了登录、服务器和云同步带来的复杂度。
Detail
简单项目介绍
家庭血压记录 是一款本地优先的 Android 血压追踪应用,适合家庭成员,尤其是中老年用户,进行日常血压数据记录与查看。应用支持新增测量、历史记录、趋势展示、用户设置、数据导入导出等功能,主数据保存在本地 Room 数据库中,设置项通过 DataStore 管理,既保证了基础功能的稳定性,也避免了登录、服务器和云同步带来的复杂度。
Detail
项目核心功能总结
这个项目目前已经从“工程骨架”发展到较完整的 Android 应用形态,核心功能包括:
| 模块 | 功能说明 |
|---|---|
| 新增测量 | 支持填写测量时间、场景、血压读数和备注 |
| 多组读数 | 前 2 组固定,第 3 组起支持动态新增 |
| 自动计算 | 自动计算平均收缩压、舒张压、脉搏,并判断分级和高风险 |
| 历史记录 | 支持查看、编辑、删除历史测量记录 |
| 趋势展示 | 支持 7 天 / 30 天趋势,展示收缩压、舒张压或双曲线 |
| 设置中心 | 包含用户资料、提醒、显示、数据管理、说明、免责声明等二级页面 |
| 数据管理 | 支持 CSV / XLSX 导入导出,便于本地备份和迁移 |
| 本地存储 | 使用 Room 保存血压主数据,DataStore 保存设置项 |
- 模块
- 新增测量
- 功能说明
- 支持填写测量时间、场景、血压读数和备注
- 模块
- 多组读数
- 功能说明
- 前 2 组固定,第 3 组起支持动态新增
- 模块
- 自动计算
- 功能说明
- 自动计算平均收缩压、舒张压、脉搏,并判断分级和高风险
- 模块
- 历史记录
- 功能说明
- 支持查看、编辑、删除历史测量记录
- 模块
- 趋势展示
- 功能说明
- 支持 7 天 / 30 天趋势,展示收缩压、舒张压或双曲线
- 模块
- 设置中心
- 功能说明
- 包含用户资料、提醒、显示、数据管理、说明、免责声明等二级页面
- 模块
- 数据管理
- 功能说明
- 支持 CSV / XLSX 导入导出,便于本地备份和迁移
- 模块
- 本地存储
- 功能说明
- 使用 Room 保存血压主数据,DataStore 保存设置项
README 中说明项目支持 CSV / XLSX 导入导出,导出文件写入应用私有目录 files/backup/,导入时会优先读取 files/import/,并预留了系统文件选择器接入能力。
Detail
技术栈总结
项目是一个标准的现代 Android 本地应用,主要技术栈如下:
| 类型 | 技术 |
|---|---|
| 开发语言 | Kotlin |
| UI 框架 | Jetpack Compose |
| 设计组件 | Material 3 |
| 页面导航 | Navigation Compose |
| 架构模式 | MVVM / Repository |
| 本地数据库 | Room |
| 设置存储 | DataStore Preferences |
| 异步与响应式 | Coroutines + Flow |
| 表格导入导出 | Apache POI / CSV |
| 最低系统版本 | Android 8.0+,即 minSdk 26 |
| 当前 Gradle 版本号 | versionName 1.4.2 |
- 类型
- 开发语言
- 技术
- Kotlin
- 类型
- UI 框架
- 技术
- Jetpack Compose
- 类型
- 设计组件
- 技术
- Material 3
- 类型
- 页面导航
- 技术
- Navigation Compose
- 类型
- 架构模式
- 技术
- MVVM / Repository
- 类型
- 本地数据库
- 技术
- Room
- 类型
- 设置存储
- 技术
- DataStore Preferences
- 类型
- 异步与响应式
- 技术
- Coroutines + Flow
- 类型
- 表格导入导出
- 技术
- Apache POI / CSV
- 类型
- 最低系统版本
- 技术
- Android 8.0+,即 minSdk 26
- 类型
- 当前 Gradle 版本号
- 技术
- versionName
1.4.2
这些依赖和版本可以从 app/build.gradle.kts 中看到,例如项目启用了 Compose、Room、DataStore、Navigation Compose、Apache POI,并设置 minSdk = 26、targetSdk = 34、versionName = "1.4.2"。
Detail
架构与数据设计总结
项目采用比较清晰的分层结构:
data/
db/ Room 数据库、DAO、实体
datastore/ 设置项存储
repository/ 数据仓储层
domain/
model/ 领域模型
calculator/ 平均值、分级、高风险计算
ui/
home/ 新增测量页
history/ 历史、详情、编辑、趋势
settings/ 设置与数据管理
navigation/ 页面路由
util/ 工具类 从代码看,应用通过 BloodPressureApplication 初始化全局容器 AppContainer,再由 DefaultAppContainer 创建 Room 数据库、设置存储、血压仓储和设置仓储,属于比较典型的轻量依赖注入结构。
数据库层使用 Room,当前数据库版本为 2,包含血压测量、测量会话、多组读数、用户资料等实体,并设计了从版本 1 到版本 2 的迁移逻辑。
Detail
项目亮点
-
1. 本地优先,隐私友好
不做登录、不接服务器、不做云同步,数据保存在用户设备本地,适合家庭健康记录这种偏隐私的数据场景。
-
2. 功能聚焦明确
不是复杂医疗平台,而是围绕“血压记录、查看、趋势、备份”展开,适合做成轻量、易坚持的家庭工具。
-
3. 架构比较规范
使用 Compose、Room、DataStore、Repository、ViewModel 等现代 Android 开发组合,后续继续扩展会比较方便。
-
4. 支持多组测量逻辑
从 README 看,应用支持前 2 组固定读数,第 3 组起动态新增,并将新增读数纳入平均值、分级和高风险判断,这比单次血压记录更贴近日常测量习惯。
-
5. 具备数据迁移意识
支持 CSV / XLSX 导入导出,说明项目不只是“能记录”,也考虑了换手机、备份、整理数据等真实使用场景。
使用提醒:因技术不到位原因,当前导出数据处于不可用状态,仅作为未来预期推出的功能存在。