为你的待办清单选 iCloud 同步还是云账号
在每种模式下,你的任务究竟会经历什么,以及该如何看待其中的取舍。
每一款现代待办应用都需要在设备之间同步。常见的做法有两种,一旦一切设置妥当,它们对用户而言看起来一模一样。但它们在底层并不相同。这些差异在隐私、可靠性,以及在应用公司被收购或关停那一天会发生什么这些方面,都很要紧。
这篇文章是对这两种模式不偏不倚的比较。两者都是站得住脚的选择。重点在于搞清楚你挑一款待办应用时拿到的是哪一种,因为在 App Store 列表页面,没人会告诉你。
模式一:iCloud 同步
在 Mac 待办应用的语境里,iCloud 同步几乎总是意味着应用使用了 Apple 的一个叫 CloudKit 的框架,外加一个用于极小负载的、叫 NSUbiquitousKeyValueStore 的小型键值存储。
当你在一个 iCloud 同步的应用里把一个任务切换为已完成时,应用会在你的 Mac 上本地写下这个变更,并请求 Apple 的 CloudKit 基础设施把它传播到你的其他设备。你的 iPad、你的另一台 Mac,任何你用同一个 Apple ID 登录的地方,都会在不久后看到这个变更。
关于这种模式,你应当了解:
- 没有开发者账号。 你没有注册任何东西。没有单独的密码。你是在操作系统层面登录 iCloud 时,用你的 Apple ID 完成认证的,而你几乎肯定早就做过这件事了。
- 数据存在你的 iCloud 账户里,而不是开发者那里。 当你删除应用时,你的 iCloud 数据会一直留在你的账户里,直到你从系统设置里把它移除。
- 开发者无法在他们的服务器上看到你的数据,因为他们没有服务器。 他们必须请求 Apple 的 CloudKit 来做存储。数据是否端到端加密取决于 Apple 的 iCloud 设置,而非应用开发者的选择。
- 跨用户共享很难甚至不可能。 iCloud 同步是为一个用户、多台设备设计的。如果你想和伴侣或同事共享一份清单,这种模式通常不支持。
- 应用无法扩展出一个网页客户端。 没有任何经 Apple 认可的方式让非 Apple 设备读取你的 iCloud 数据。你只能在 Apple 设备上看到你的任务。
这种模式适合一份私密的个人待办清单,只在你自己的 Apple 设备上使用。它是最轻量、最简单、最私密的选项。
模式二:云账号
一个云账号待办应用运行着自己的后端。你向开发者创建一个账号,给他们一个邮箱和密码,你的任务存储在他们的数据库里。设备之间的同步通过他们的服务器进行。
关于这种模式,你应当了解:
- 开发者在他们的服务器上有一份你数据的副本。 大多数会对静态数据加密。大多数不会做端到端加密。在大多数情况下,开发者的员工如果非要这么做,技术上是能读到你的任务的,哪怕他们的政策声称他们不会。
- 有一个账号要管理。 如果你忘了密码,你可能会被锁在门外。开发者可以暂停你的账号。开发者可以更改他们的定价。
- 共享很容易。 拥有多个账号的多个用户可以被邀请到同一份清单。这才是这种模式存在的真正原因。真正的协作需要一个共享的后端。
- 通常有一个网页客户端。 你可以在公司里一台 Windows 机器或一台 Linux 机器上的浏览器里打开你的待办清单。这对许多人来说确实有用。
- 应用的存续取决于公司。 如果公司被收购,新的所有者会继承你的数据。如果公司关停,你的数据也会随之而去,除非他们提供导出。
这种模式适合那种需要跨平台访问的待办应用,或者需要支持与他人真正协作的待办应用,又或者接入 Notion 或 Asana 这类更大工作区产品的待办应用。
实践中究竟有什么不同
用户可见的差异比听上去要小。两种模式都同步。两种模式都能离线工作,并在你重新联网时进行协调。两种模式都可以很快。两种模式都可能在开发者马虎时丢失你的数据。
差异主要在于谁掌握着数据,以及你在信任谁:
| iCloud 同步 | 云账号 | |
|---|---|---|
| 谁来存储 | Apple,存在你的 iCloud 账户里 | 应用的公司,存在他们的服务器上 |
| 你信任谁 | Apple 的 iCloud 团队和应用开发者 | 应用的公司和 Apple |
| 需要什么账号 | 你的 Apple ID(你已经有了) | 在开发者那里注册的新邮箱和密码 |
| 能否扛过公司关停 | 能,你的本地数据不受影响 | 取决于他们是否提供导出 |
| 能否有网页客户端 | 不能 | 通常能 |
| 能否与其他用户共享 | 不能 | 通常能 |
| 数据删除 | 在你 Mac 上的系统设置里 | 开发者网站上的某种账号删除流程 |
正确答案就是那个匹配你真实需求的模式。大多数个人待办清单,面向一个用户、横跨一两台 Mac,用 iCloud 同步就服务得很好。大多数团队待办清单,或者兼作与他人共享的知识库的待办应用,则需要云账号,因为协作才是重点所在。
关于端到端加密的说明
两种模式都可以声称“你的数据是加密的”。这句话承载了太多含义,而它通常指的是存储服务器上的静态加密,那是最低限度,而非端到端加密。端到端意味着运营存储的公司即便想读,也读不到你的数据。标准的服务器端加密则意味着他们能读。
Apple 的 iCloud 在历史上对大多数类别都使用标准的服务器端加密。自 2022 年底起,Apple 提供了一个可选启用的功能,叫“高级数据保护”,为许多 iCloud 数据类别开启端到端加密。如果你用的是一台登录了开启了高级数据保护的 Apple ID 的 Mac,那么你通过 iCloud 同步的待办清单在你的 Mac 与 Apple 的服务器之间是端到端加密的。如果你没有开启它,那就不是。
云账号模式同样可以提供端到端加密,但真正这么做的待办应用只占极少数。它实现起来很难,而且会限制一些功能(如果不先解决一些棘手的密码学问题,你就无法在加密的数据块内部提供搜索)。大多数云账号待办应用只是说“已加密”,而意思是“我们数据库服务器上的磁盘是加密的,但密钥在我们手里”。
这不是一种道德评判。标准加密对大多数数据来说没问题。如果你处理的不是机密信息,那么两种方式你大概都还好。重点是要对你拿到的东西诚实。
TodoBar 怎么做
TodoBar 通过 Apple 的 NSUbiquitousKeyValueStore 使用 iCloud 同步。没有 TodoBar 账号。没有 TodoBar 服务器。你的任务待在你的 Mac 上,以及你私有的 iCloud 账户里。我们在隐私政策里详细描述了这一点,供任何想了解完整机制的人查阅。
取舍就是上面描述的那些。你无法和另一个人共享一份清单。你无法在公司里一台 Linux 机器上的浏览器里打开你的任务。这种模式是为一个用户、一台或多台 Mac 而设的,而那正是一个菜单栏效率工具真实的使用场景。
如果你需要共享清单或网页访问,TodoBar 大概不是合适的工具。针对那种情况有非常出色的云账号应用。它们是另一种类别的软件,做的是另一份活儿。两者都可以很好。这取决于你究竟想做什么。
TodoBar 是一款贴心的 macOS 菜单栏待办清单。支持大白话截止日期、全局快捷键、iCloud 同步。一次付费,永久属于你。
在 App Store 获取 TodoBar