InkTimer 0.3.2
水墨风专注计时器,番茄钟 / 间歇训练 / 累计三种模式,附带一套安静的成长系统。
本次是激励系统的一次完整重构:经验值不再由事后操作决定,而是由每次专注当时的客观质量冻结下来。
主要变化
专注质量监控
自动记录手动暂停、取消长按、应用内跳转、后台离开,据此给出 40–100 的质量分。
完成后以中性方式展示,例如「定 92 · 本次 +24」,没有红色或惩罚性视觉。
经验值冻结
每次专注结束立即冻结 XP。之后回填感受、关联事项、修改进度、归档或删除事项,都不再改动历史经验。
生命周期精确追踪
inactive 状态先进入 2 秒观察期,快速返回(如下拉通知栏又收起)不计为离开。
确认离开后,返回时按模板阶段精确计算这段时间里有多少秒本应处于专注状态,休息阶段不计入。
新等级曲线
ceil(60 × (level − 1)^1.65)
| 等级 | 所需经验 |
|---|---|
| Lv2 | 60 |
| Lv10 | 2,253 |
| Lv50 | 36,896 |
| Lv99 | 115,791 |
升级间距收窄,质量差异更可感知。
连续天数门槛
单日需至少 150 秒专注才计入,避免一秒打卡。内置 Tabata(160 秒专注)符合门槛。
其他改进
- 事项关联与进度记录合并为单一「专注于」流程
- 完成态球体与「成」印一同上移,下方详情区可滚动,横屏与极矮视口不再溢出
- 悟解锁记录时间戳
- 备份升级至 v2 并包含成长数据,仍可导入 v1 备份
- 计时界面补全语义化控件,辅助技术可触发开始 / 暂停 / 继续 / 重置 / 停止
修复
- 可变字体字重未生效:Cormorant 与 Noto Serif SC 的 wght 轴此前停在默认值(300 / 200),
中文正文笔画发虚。现已用FontVariation驱动真实字重 - 持久化队列单次写失败不再永久阻塞后续保存
- 自动完成时先确保会话落盘,再清除恢复检查点
- 本地已迁移的冻结经验不会被无奖励的旧备份覆盖
从 0.3.0 升级
数据自动迁移,无需手动操作:
- 历史记录分配冻结 milli-XP,标记为未测量质量(
scoringVersion 0) - 总经验映射到新等级曲线,不会降级
- 已解锁的悟获得稳定时间戳
英文项目名由 UpTimer 改为 InkTimer,中文名「成时」不变。
bundle ID、存储键与备份格式标识符保持不变,已安装版本可直接覆盖升级,旧备份仍可导入。
升级后导出的 v2 备份无法被 0.3.0 导入,建议升级前先备份。
下载
| 平台 | 文件 | 大小 |
|---|---|---|
| Android | inktimer-0.3.2-android.apk |
51 MB |
| macOS | inktimer-0.3.2-macos.zip |
54 MB |
| Web | inktimer-0.3.2-web.zip |
14 MB |
校验和见 SHA256SUMS。
Android 最低 5.0 (API 21)。需允许未知来源安装。
macOS 最低 10.14,未签名。首次运行需右键点击 → 打开,或在「系统设置 → 隐私与安全性」中允许。
Web 解压后部署到任意静态服务器。本地预览:
unzip inktimer-0.3.2-web.zip && cd web
python3 -m http.server 8080iOS 本次未提供,构建环境缺少 iOS SDK 26.5。
已知限制
Flutter 的生命周期信号无法可靠区分锁屏、切换应用、通知中心、系统弹窗、来电等场景,
不同平台的映射也不一致。因此后台离开的判定在各平台表现可能有差异,Web 端受浏览器
Page Visibility API 限制尤为明显,仅供参考。
Android 与 iOS 实机的锁屏、应用切换、短通话、计时结束后返回等场景仍建议自行验证。