YVETTE SPACE

← 返回项目
家用血压记录APP 项目截图

Project

家用血压记录APP

blood-pressure-record 是一款 面向家庭成员使用的 Android 本地血压记录 App,重点解决“日常血压录入、历史查看、趋势观察、本地备份迁移”这几个核心需求,不依赖登录、服务器或云同步。项目采用 Kotlin + Jetpack Compose + Room + DataStore 构建,定位偏向“简单、可靠、隐私友好”的家庭健康记录工具。

#Android#Kotlin#Jetpack Compose#Room#DataStore

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 = 26targetSdk = 34versionName = "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. 1. 本地优先,隐私友好

    不做登录、不接服务器、不做云同步,数据保存在用户设备本地,适合家庭健康记录这种偏隐私的数据场景。

  2. 2. 功能聚焦明确

    不是复杂医疗平台,而是围绕“血压记录、查看、趋势、备份”展开,适合做成轻量、易坚持的家庭工具。

  3. 3. 架构比较规范

    使用 Compose、Room、DataStore、Repository、ViewModel 等现代 Android 开发组合,后续继续扩展会比较方便。

  4. 4. 支持多组测量逻辑

    从 README 看,应用支持前 2 组固定读数,第 3 组起动态新增,并将新增读数纳入平均值、分级和高风险判断,这比单次血压记录更贴近日常测量习惯。

  5. 5. 具备数据迁移意识

    支持 CSV / XLSX 导入导出,说明项目不只是“能记录”,也考虑了换手机、备份、整理数据等真实使用场景。

使用提醒:因技术不到位原因,当前导出数据处于不可用状态,仅作为未来预期推出的功能存在。