Skip to content

Releases: ZionDoki/InkTimer

InkTimer 0.3.3

Choose a tag to compare

@ZionDoki ZionDoki released this 13 Aug 16:00

InkTimer 0.3.3 是一次备份体验更新:原生端的默认封存与默认收录现在真正指向同一个固定文件,Web 则保持符合浏览器能力的直接下载与文件选择流程。

主要变化

原生端:默认封存与收录对称

点击「封存备份」或「收录备份」后,会以 240 ms 的平滑高度与透明度动画展开位置选项,并且一次只展开一处:

  • 封存备份:默认位置 / 另选位置
  • 收录备份:默认位置 / 另选文件

默认封存与默认收录共用固定文件名:

inktimer-backup.json

重复默认封存会覆盖旧文件,不再产生带日期或 -2-3 后缀的副本,因此默认位置始终只保留最新一份。

更安全的默认写入

默认封存先写入临时文件,刷新到磁盘后再原子替换正式备份,降低写入中断损坏已有备份的风险。界面会显示默认位置是否已有备份,以及最后封存时间。

另选位置仍然可用;对于只返回目标路径、没有实际写入内容的桌面文件选择器,应用会自动补写文件。

Web:直接操作,不伪装默认位置

浏览器没有应用可回读的固定目录,因此 Web 不显示「默认位置」或二级位置菜单:

  • 点击「封存备份」:直接下载 inktimer-backup.json
  • 点击「收录备份」:直接打开备份文件选择器

升级兼容

  • 版本:0.3.3+4
  • bundle ID、Android application ID、存储键及备份格式标识符保持不变
  • 可直接覆盖安装 0.3.2,现有数据与旧备份不受影响
  • 备份数据格式仍为 v2,本次只调整文件位置、命名与交互流程

原生端的「默认位置」属于当前应用可读写的文档目录。在部分移动平台和沙箱平台中,该目录可能不直接显示在系统文件管理器中;需要保存在明确可见的位置时,请选择「另选位置」。

下载

平台 文件 大小
Android inktimer-0.3.3-android.apk 51 MB
macOS inktimer-0.3.3-macos.zip 18 MB
Web inktimer-0.3.3-web.zip 14 MB

校验和见 SHA256SUMS

Android

最低 Android 7.0(API 24)。APK 与 0.3.2 使用相同证书签名,可直接覆盖升级;从 GitHub 安装时需允许相应来源安装应用。

macOS

解压后将 uptimer.app 移入「应用程序」。本包为 ad-hoc 签名,首次运行可能需要右键点击 →「打开」,或在「系统设置 → 隐私与安全性」中允许。

Web

解压并部署到任意静态服务器。本地预览:

unzip inktimer-0.3.3-web.zip
cd web
python3 -m http.server 8080

iOS

本次未提供 iOS 安装包。当前 Xcode 可列出 iOS 26.5 SDK,但设备平台组件仍被判定为未安装,flutter build ios --release --no-codesign 因此无法选择通用 iOS 目标。

验证

  • dart format:通过
  • flutter analyze:零问题
  • flutter test:212 项全部通过
  • Android Release APK:构建成功,版本 0.3.3 (4),签名校验通过
  • macOS Release:构建成功,归档解包后签名与版本校验通过
  • Web Release:构建成功,Wasm dry run 通过
  • 两个 ZIP:压缩数据完整性检查通过
  • 三份发布包:SHA-256 校验通过

InkTimer 0.3.2

Choose a tag to compare

@ZionDoki ZionDoki released this 13 Aug 13:08

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

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

主要变化

专注质量监控

自动记录手动暂停、取消长按、应用内跳转、后台离开,据此给出 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 实机的锁屏、应用切换、短通话、计时结束后返回等场景仍建议自行验证。