Repository navigation
Releases: 4shy4/timetable
Release list
日程表 v0.12.1(安卓)
日程表 v0.12.1(安卓)
一个本地优先的日程 / 课程表应用:电脑上是网页 + 桌面气泡,手机上是一个原生外壳里跑同一份界面。
数据只存在你自己的设备上 —— 不注册、不登录、不上传、没有云。
这一版修了什么(就一件事,但是个真 bug)
应用里「手机扫码,打开电脑这一份」那个二维码,以前是扫不出来的。
- 生成二维码的代码把格式信息那两条带的行列写反了。数据本身没错,错的是"这两条带该怎么读"的位置。
- 偏偏这个错自己验不出来:仓库里那个"编码 → 自己解码"的往返自检,用的是同一处行列假设,所以一直是绿的。是拿一个独立实现(Python 的
qrcode库 + OpenCV 解码)来逐格对表,才把它照出来:541 个格子里有 12 个不一样,全在第 8 行 / 第 8 列。 - 现在两边矩阵逐格一致,而且这条外部参照已经被钉进测试(
tools/qrcode.test.mjs+tools/fixtures/qr-reference.json),以后改坏会立刻红。
如果你用过那个扫码功能,它就是坏的 —— 不是你的手机有问题。v0.12.0 及更早的包都带着这个错。
装上它
- 下载下面的
Timetable-Android-0.12.1.apk - 手机上点开这个文件。系统会问你是否允许「安装未知应用」——需要同意(这是所有非商店应用的必经步骤)
- 装好后打开,日程数据存在 App 自己的私有目录里
✅ 已经装过 v0.12.0(正式签名版)的话,这一版可以直接覆盖安装,数据不丢 —— 用的是同一把发布密钥。
⚠️ 如果装过更早的 debug 包(作者自测用的那种),签名不同,必须先卸载才能装正式版。
- 安卓 APK,
minSdk 26(安卓 8.0 及以上)、targetSdk 35、versionName 0.12.1(versionCode 18) - 想先看看长什么样:在线 demo https://4shy4.github.io/bubble-schedule/
它有什么
- 桌面气泡区:今天 / 明天的事飘在桌面上,可拖动、可折叠。大小 = 还剩多久,颜色 = 事情多大
- 月历 / 列表 / 课程表三个视图:重复日程(每天 / 每周 / 每月 / 自定义)、倒数日、标签、颜色、回收站
- 课程表:单双周、多节连堂、按周次范围;可以在界面上手加,也可以粘贴一份标准 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 # Windowsshasum -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 许可证)
反馈
- Bug / 功能建议:开一个 https://github.com/4shy4/timetable/issues
- 这是个人项目,回复可能不快;能复现的步骤描述越具体越好
日程表 v0.12.0(安卓)
日程表 v0.12.0(安卓)
一个本地优先的日程 / 课程表应用:电脑上是网页 + 桌面气泡,手机上是一个原生外壳里跑同一份界面。
数据只存在你自己的设备上 —— 不注册、不登录、不上传、没有云。
这个包是什么
- 安卓 APK,
minSdk 26(安卓 8.0 及以上)、targetSdk 35、versionName 0.12.0(versionCode 17) - 用一把固定的发布密钥签名(不是 debug 包),所以以后的版本可以直接覆盖安装,数据不会丢
- 想先看看长什么样:在线 demo https://4shy4.github.io/bubble-schedule/
装上它
- 下载下面的
Timetable-Android-0.12.0.apk - 手机上点开这个文件。系统会问你是否允许「安装未知应用」——需要同意(这是所有非商店应用的必经步骤)
- 装好后打开,日程数据存在 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 # Windowsshasum -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 许可证)
反馈
- Bug / 功能建议:开一个 https://github.com/4shy4/timetable/issues
- 这是个人项目,回复可能不快;能复现的步骤描述越具体越好
