Skip to content

Releases: 4shy4/timetable

日程表 v0.12.1(安卓)

Choose a tag to compare

@4shy4 4shy4 released this 08 Oct 01:53

日程表 v0.12.1(安卓)

一个本地优先的日程 / 课程表应用:电脑上是网页 + 桌面气泡,手机上是一个原生外壳里跑同一份界面。
数据只存在你自己的设备上 —— 不注册、不登录、不上传、没有云。

桌面气泡区


这一版修了什么(就一件事,但是个真 bug)

应用里「手机扫码,打开电脑这一份」那个二维码,以前是扫不出来的。

  • 生成二维码的代码把格式信息那两条带的行列写反了。数据本身没错,错的是"这两条带该怎么读"的位置。
  • 偏偏这个错自己验不出来:仓库里那个"编码 → 自己解码"的往返自检,用的是同一处行列假设,所以一直是绿的。是拿一个独立实现(Python 的 qrcode 库 + OpenCV 解码)来逐格对表,才把它照出来:541 个格子里有 12 个不一样,全在第 8 行 / 第 8 列。
  • 现在两边矩阵逐格一致,而且这条外部参照已经被钉进测试(tools/qrcode.test.mjs + tools/fixtures/qr-reference.json),以后改坏会立刻红。

如果你用过那个扫码功能,它就是坏的 —— 不是你的手机有问题。v0.12.0 及更早的包都带着这个错。

装上它

  1. 下载下面的 Timetable-Android-0.12.1.apk
  2. 手机上点开这个文件。系统会问你是否允许「安装未知应用」——需要同意(这是所有非商店应用的必经步骤)
  3. 装好后打开,日程数据存在 App 自己的私有目录里

✅ 已经装过 v0.12.0(正式签名版)的话,这一版可以直接覆盖安装,数据不丢 —— 用的是同一把发布密钥。
⚠️ 如果装过更早的 debug 包(作者自测用的那种),签名不同,必须先卸载才能装正式版。

它有什么

  • 桌面气泡区:今天 / 明天的事飘在桌面上,可拖动、可折叠。大小 = 还剩多久,颜色 = 事情多大
  • 月历 / 列表 / 课程表三个视图:重复日程(每天 / 每周 / 每月 / 自定义)、倒数日、标签、颜色、回收站
  • 课程表:单双周、多节连堂、按周次范围;可以在界面上手加,也可以粘贴一份标准 JSON 导入
  • 闹钟 / 提醒:走系统闹钟(setExactAndAllowWhileIdle + 前台服务),能穿透省电模式;闹钟可以自定义铃声
  • 分享与 PWA:视图可以导出成图片或 .ics 日历;网页版可以「添加到主屏幕」当 PWA
  • 和电脑同步:电脑上跑 npm run sync(USB 单向:电脑 → 手机)

关于隐私

没有账号、没有云同步、没有埋点。App 只在本机(127.0.0.1:17800)起一个服务供界面自己用,不往外发任何请求。
要换设备就用界面里的「备份 / 恢复」导出 JSON。

校验一下你下到的包(可选)

文件名 Timetable-Android-0.12.1.apk
字节数 4,657,522
SHA256 2bea24e8b26f41bcf39b7f5ddd44dd1e7037d9ad80a5426746e088cee24236f7
签名证书 SHA-256 51706b2de30d3bba6baf1065a2b27c4ff8f27daeb08ec33bc132e6f34b3928a7(CN=Timetable)

在电脑上核对(Windows / macOS / Linux 任选):

certutil -hashfile Timetable-Android-0.12.1.apk SHA256      # Windows
shasum -a 256 Timetable-Android-0.12.1.apk                  # macOS / Linux

对得上就说明文件在传输途中没被动过。想再核签名(需要 Android SDK 的 apksigner):

apksigner verify --print-certs Timetable-Android-0.12.1.apk

这一版没有什么(老实说)

  • 不是应用商店版本:没有上架任何商店,装的时候要走「允许未知来源」。通知权限、精确闹钟权限也要你同意,否则闹钟只会变成普通通知
  • 没有 iOS 预编译包:iOS 端是源码(ios/,Swift + AlarmKit),要自己用 Xcode 生成工程并签名;不想折腾就用 Safari 打开电脑上的地址 → 添加到主屏幕(PWA)
  • 这是精简版:AI 助手、好友祝福、校内教务系统专用导入、两个未完成的隐藏视图(周课表 / 三日)都不在其中。完整的取舍写在仓库 README 里

它是怎么做的 / 自己从源码打

零运行时依赖,只需要 Node.js 22+:

node server/main.js                       # 电脑上跑起来:http://127.0.0.1:7080
node tools/android-bootstrap.mjs          # 一次性下载 JDK + Android SDK + Gradle(约 1.3 GB)
npm run android:build                     # 打出 debug APK(自己用够了)

(想打正式签名的包,需要自己生成一把 keystore 并在 android/app/build.gradle 里接上 signingConfigs.release。)

仓库:https://github.com/4shy4/timetable(MIT 许可证)

反馈

日程表 v0.12.0(安卓)

Choose a tag to compare

@4shy4 4shy4 released this 08 Oct 00:52

日程表 v0.12.0(安卓)

一个本地优先的日程 / 课程表应用:电脑上是网页 + 桌面气泡,手机上是一个原生外壳里跑同一份界面。
数据只存在你自己的设备上 —— 不注册、不登录、不上传、没有云。

桌面气泡区


这个包是什么

  • 安卓 APK,minSdk 26(安卓 8.0 及以上)、targetSdk 35、versionName 0.12.0(versionCode 17)
  • 用一把固定的发布密钥签名(不是 debug 包),所以以后的版本可以直接覆盖安装,数据不会丢
  • 想先看看长什么样:在线 demo https://4shy4.github.io/bubble-schedule/

装上它

  1. 下载下面的 Timetable-Android-0.12.0.apk
  2. 手机上点开这个文件。系统会问你是否允许「安装未知应用」——需要同意(这是所有非商店应用的必经步骤)
  3. 装好后打开,日程数据存在 App 自己的私有目录里

⚠️ 如果你之前装过 debug 包(作者自测用的那种),签名不同,必须先卸载才能装这个版本。
从这一版开始,后续版本都能直接覆盖升级。

这一版有什么

  • 桌面气泡区:今天 / 明天的事飘在桌面上,可拖动、可折叠。大小 = 还剩多久,颜色 = 事情多大
  • 月历 / 列表 / 课程表三个视图:重复日程(每天 / 每周 / 每月 / 自定义)、倒数日、标签、颜色、回收站
  • 课程表:单双周、多节连堂、按周次范围;可以在界面上手加,也可以粘贴一份标准 JSON 导入
  • 闹钟 / 提醒:走系统闹钟(setExactAndAllowWhileIdle + 前台服务),能穿透省电模式;闹钟可以自定义铃声
  • 分享与 PWA:视图可以导出成图片或 .ics 日历;网页版可以「添加到主屏幕」当 PWA
  • 和电脑同步:电脑上跑 npm run sync(USB 单向:电脑 → 手机)

关于隐私

没有账号、没有云同步、没有埋点。App 只在本机(127.0.0.1:17800)起一个服务供界面自己用,不往外发任何请求。
要换设备就用界面里的「备份 / 恢复」导出 JSON。

校验一下你下到的包(可选)

文件名 Timetable-Android-0.12.0.apk
字节数 4,655,170
SHA256 ceba3ae6a07cd0e155dd202d2db38323ff8ef517c6a4d15e8429a1806f16f773
签名证书 SHA-256 51706b2de30d3bba6baf1065a2b27c4ff8f27daeb08ec33bc132e6f34b3928a7(CN=Timetable)

在电脑上核对(Windows / macOS / Linux 任选):

certutil -hashfile Timetable-Android-0.12.0.apk SHA256      # Windows
shasum -a 256 Timetable-Android-0.12.0.apk                  # macOS / Linux

对得上就说明文件在传输途中没被动过。想再核签名(需要 Android SDK 的 apksigner):

apksigner verify --print-certs Timetable-Android-0.12.0.apk

这一版没有什么(老实说)

  • 不是应用商店版本:没有上架任何商店,装的时候要走「允许未知来源」。通知权限、精确闹钟权限也要你同意,否则闹钟只会变成普通通知
  • 没有 iOS 预编译包:iOS 端是源码(ios/,Swift + AlarmKit),要自己用 Xcode 生成工程并签名;不想折腾就用 Safari 打开电脑上的地址 → 添加到主屏幕(PWA)
  • 这是精简版:AI 助手、好友祝福、校内教务系统专用导入、两个未完成的隐藏视图(周课表 / 三日)都不在其中。完整的取舍写在仓库 README 里

它是怎么做的 / 自己从源码打

零运行时依赖,只需要 Node.js 22+:

node server/main.js                       # 电脑上跑起来:http://127.0.0.1:7080
node tools/android-bootstrap.mjs          # 一次性下载 JDK + Android SDK + Gradle(约 1.3 GB)
npm run android:build                     # 打出 debug APK(自己用够了)

(想打正式签名的包,需要自己生成一把 keystore 并在 android/app/build.gradle 里接上 signingConfigs.release。)

仓库:https://github.com/4shy4/timetable(MIT 许可证)

反馈