把「日程表」装到手机上

一个本地优先的日程 / 课程表工具:电脑上是网页 + 一块飘在桌面上的气泡区, 手机上是一个 App(安卓 / iOS 各自是一个原生外壳,里面跑的是同一份界面与同一份核心逻辑)。 数据全部存在你自己的设备上 —— 不注册、不登录、不上传、没有云。

你在微信里打开的这一页。 微信会拦掉 .apk 下载:请点右上角 ⋯ → 在浏览器打开,再点下面的下载按钮。
下载安卓版 APK(4.6 MB) 先玩网页 demo,不用装

安卓:装的时候系统会问一次「允许安装未知应用」。这个包用一把固定的密钥签名, 所以以后的版本能直接覆盖安装,数据不会丢。

那个 demo 是气泡面板那一块的网页演示(同一套界面),刷新就回到初始数据;它可能比最新版旧一点。

手机上打开这一页

扫码打开这一页:https://4shy4.github.io/bubble-schedule/install.html

扫码,或者用手机浏览器打开:
4shy4.github.io/bubble-schedule/install.html

这个码指向的就是你正在看的这一页(不是直接指向 .apk):因为微信会拦安装包,iPhone 又用不上它 —— 先落到这里,才知道自己该走哪条路。

按你的设备选一条路

安卓手机 / 平板 (最省事)

  1. 点上面的下载安卓版 APK,下到手机里(或用电脑下载后拷进手机)。
  2. 点开这个文件安装;系统会问一次「允许安装未知应用」,同意即可。
  3. 如果你之前装过调试版,会提示「应用未安装」—— 先卸载旧的那个再装(卸载会清掉手机上那份数据)。

闹钟走系统闹钟(能穿透省电模式);日程存在 App 的私有目录里。

iPhone / iPad

这个 APK 是安卓的,iPhone 用不上。你有两条路:

① 网页版(只想在手机上看看、用用): 在你自己的电脑上把程序跑起来(git clone 后 node server/main.js --lan, 启动日志里会打印一个局域网地址),然后在 iPhone 的 Safari 里打开那个地址 → 分享 → 添加到主屏幕。它就是一个能全屏、能收通知(iOS 16.4+)的网页版, 数据仍然在你自己电脑上。

② 原生 App(想要真闹钟): ios/ 是一个 Swift 外壳(AlarmKit + WebKit),仓库里没有预编译的 IPA, 也不提供免签名的安装方式 —— 需要你自己装 Xcode、生成工程、填上你自己的签名再装。

在微信里打开

点右上角 ⋯ → 在浏览器打开。微信会拦掉 .apk 下载,这不是页面坏了。

网页 demo 在微信里是能直接玩的(它只是个网页);要装 App 就得先出微信。

下载前,先核对一下文件

当前版本 v0.12.1(以 Releases 页面上的数字为准):

整个文件的 SHA-256:

2bea24e8b26f41bcf39b7f5ddd44dd1e7037d9ad80a5426746e088cee24236f7

自己算一遍:

对不上就别装 —— 说明这个文件不是发布的那一个(可能是下载被中间劫持或截断了)。

你的数据在哪

没有账号、没有埋点、没有服务端。这个下载页同样是单文件、零外部资源 —— 打开它不会向任何第三方发请求。