在通常的安排里,服务器保存真正的副本,手机保存一份缓存。网络不好时你打开应用,看到一个转圈的图标,因为你正看着的东西其实并不在那里。Local-first 把这件事反过来:真正的副本在设备上,计算也在那里发生,而网络变成你刻意使用的东西,而不是你依赖的东西。
对训练来说,这契合得出奇地好。一次训练在它被完成的地方产生,体积很小,而且几乎从不会被两个人同时编辑——所以分布式系统里最难的那个问题,也就是合并并发修改,几乎不会出现。剩下的是一个立刻就能打开、在地下室里也能用的快应用。
代价是同步变成显式的。没有看不见的进程在后台调和各台设备;有的是你导出的一个加密文件,或者你发起的一次传输。这更诚实,也确实多一点麻烦,而这就是 cronoWiz 做出的交换。
-
原件在设备上
IndexedDB 里放的是真实数据,而不是某个远端东西的缓存。
-
立刻就能打开
第一屏可用之前,没有任何东西在等一个网络请求。
-
同步是一个决定
一个加密文件,或者一次由你发起的直接传输。
-
这个模型不需要账号
既然没有服务器保存真相,身份也就没有用武之地。
免费。私密。属于你。
没有账号。没有服务器。没有 Cookie。只有你、你的手机,和一个只管自己本分的应用。cronoWiz 是一款完全在你设备上运行的免费 PWA — 你的数据不会出去。永远不会。
大家真正会问的问题
Local-first 意思是完全不联网吗?
不是。地图、网络电台和那一次模型下载都会用到网络。区别在于,它们不在的时候应用照样工作,因为它们都不持有你的数据。
第二台设备上会发生什么?
它有自己的一份副本。你通过搬运一份备份或开启一次直接传输来调和它们,而导入是按标识匹配的,所以同一次训练不会出现两遍。
这和 offline-first 是一回事吗?
是近亲,但不相同。Offline-first 讲的是断网后还能活下来;local-first 讲的是哪份副本作数。cronoWiz 两者都是,而正是后者让账号变得没有必要。
