Skip to content

InkTimer 0.3.2

Choose a tag to compare

@ZionDoki ZionDoki released this 13 Aug 13:08
· 1 commit to main since this release

水墨风专注计时器,番茄钟 / 间歇训练 / 累计三种模式,附带一套安静的成长系统。

本次是激励系统的一次完整重构:经验值不再由事后操作决定,而是由每次专注当时的客观质量冻结下来。

主要变化

专注质量监控

自动记录手动暂停、取消长按、应用内跳转、后台离开,据此给出 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 8080

iOS 本次未提供,构建环境缺少 iOS SDK 26.5。

已知限制

Flutter 的生命周期信号无法可靠区分锁屏、切换应用、通知中心、系统弹窗、来电等场景,
不同平台的映射也不一致。因此后台离开的判定在各平台表现可能有差异,Web 端受浏览器
Page Visibility API 限制尤为明显,仅供参考。

Android 与 iOS 实机的锁屏、应用切换、短通话、计时结束后返回等场景仍建议自行验证。