Skip to content

About

纯本地的体重 / 体脂趋势记录 App。Kotlin + Compose,自绘图表,不联网。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

体重日记 (WeightDiary)

纯本地的体重 / 体脂趋势记录 App。没有账号、没有网络权限、没有广告 —— 数据只在本机处理。

下载:最新版 APK(1.2) · 1.73 MB · 要求 Android 8.0(minSdk 26)及以上(体脂秤同步需 Android 9+)

功能

  • 概览 —— 「当前 / 目标体重 + BMI 水平」卡片,附最近一次体脂
  • 折线图 —— 自绘 Canvas,无第三方图表库。日 / 周 / 月 / 年 / 总五种区间,整数刻度、等宽数字、monotone cubic 平滑
  • BMI 预警 —— 超重 / 肥胖的分级阈值直接画进体重图。只在它落进当前坐标范围时出现 —— 体重贴近临界值时那条线自然浮现,离得远就不画,也绝不为了画它把折线压平
  • 记录管理 —— 首页历史区、全部记录、点击编辑、左滑露出删除按钮(左滑本身不删除,必须再点一下)
  • BMI 标准 —— 中国 / WHO 两套阈值可切换
  • 体脂秤同步(实验功能) —— 通过系统的「健康数据共享」读体重与体脂率。走设备内 IPC, 仍然不需要网络权限;只读最近 30 天,重复的称重会自动去重。要求 Android 9(API 28)及以上
    • 默认关闭,要在「设置 → 实验功能」里自己打开。打开后可分别选手动同步(首页顶栏多一个按钮, 点一下才同步)与自动同步(每次启动应用拉一次),两者可同时开
    • 前提:体脂秤应用必须自己把称重写进「健康数据共享」。 部分品牌未提供该能力 (小米官方应用即不支持);数据源没有写入时,这个功能不会有任何数据。 所以它被单列为「实验功能」,而不是当作本应用自带的能力
  • 记录来源标记 —— 同步来的记录带「体脂秤」标记,家庭共用一台秤时用于分辨
  • 数据自主 —— CSV 导出与导入、一键清空;全程不联网
    • 注意:Android 的系统自动备份若已开启,是系统可能把本应用数据备份到你的云账户 —— App 自身没有网络权限,做不了这件事。介意请在系统设置里关闭本应用的备份
  • 轻 —— release 包 1.71 MB

技术栈

语言 / UI Kotlin 2.3.20 · Jetpack Compose · Material 3
存储 Room(记录)· DataStore(档案)
架构 单向数据流(ViewModel + StateFlow)· 手写依赖容器
图表 自绘 Canvas
版本 minSdk 26(Android 8.0)· targetSdk 36

快速开始

./gradlew assembleDebug        # 构建
./gradlew testDebugUnitTest    # 单测(184 个)
./gradlew connectedDebugAndroidTest   # 设备上的 Room 迁移测试(要模拟器/真机)
./gradlew distRelease          # 出正式签名包 → dist/WeightDiary-<版本>.apk

「没有网络权限」这条约束是脚本验证的,不是靠自觉:tools/verify-no-internet.ps1 解析合并后的清单并断言没有 INTERNET(依赖的清单会合并进来,那是唯一的破口)。 本机执行策略若禁止运行未签名脚本,用 -ExecutionPolicy Bypass 跑。

需要 JDK 17+ 与 Android SDK(compileSdk 36)。local.properties 里的 sdk.dir 指向你的 SDK 位置,该文件不在版本库里,各人自己配。

文档

文档 内容
开发手册 项目结构、里程碑、关键约定、出包流程 —— 想动手改代码先看这份
01 需求文档 产品定位、功能清单、非目标、验收标准
02 设计规范 设计 token、逐区块界面规格、状态、动效
03 技术设计 架构分层、数据模型、核心算法、风险清单
04 决策记录 全部决策与被否原因 —— 想改设定之前先翻这里
05 交付计划 里程碑划分与出口标准
06 体脂秤接入调研 为什么是 Health Connect(选型与被推翻的说法)
07 真机测试清单 发版前必须在真机(尤其 MIUI)上复核的项
08 Health Connect 同步设计 怎么接:数据模型、去重、过滤、已知限制
09 真机实测记录 实测验过什么、发现了什么(含两个 bug 的根因与证据链)

设计稿是脚本渲染的高保真图,不是手绘:改完设计 token 重跑 docs/assets/render/ 下的脚本即可同步, 设计稿不会与文档脱节。

License

MIT © 2026 collinszheng

About

纯本地的体重 / 体脂趋势记录 App。Kotlin + Compose,自绘图表,不联网。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages