Marco Arment:苹果不应该打击本地存储

公司

2011-10-15 07:00

通过 iCloud,苹果用户拥有了一个无缝的云端,这是 iOS5 来临之后的一大福音。但是在云端到来之后,苹果似乎要打击本地存储,这给开发者和用户带来了新的麻烦。Instapaper 的开发者 Marco Arment 在自己的博客中讲到这个问题。

最近,许多开发者收到了苹果的信件:

因为 iCloud 将每日通过 Wi-Fi 为用户的 iOS 设备备份,因此,将你应用存储的数据最小化,保证最好的用户体验,是很重要的。

除了购买的音乐、应用、图书和摄影图片,以及设备设置之外,你应用的根文件夹中的一切,包括 Documents 文件夹,都会备份到 iCloud。

储存在应用 Bundle、caches 文件夹和 temp 文件夹中的数据不会备份到 iCloud。你的应用应根据 iCloud 数据存储指导来存储数据。

根据新的指导原则,可重新下载和重新生成的数据存储在应用的缓存文件夹(Caches)中,这包括杂志,报纸和地图这些应用的数据缓存和可下载内容。

对于 instapaper,这本来不应该是一个问题,因为它的数据本来就存储在缓存文件夹(Caches)中,Marco Arment 这样做是为了保证比较好的用户体验:连接 iTunes 的时候无需备份,这不会拖慢同步速度,也不会增大电脑上的备份文件。这些数据在用户重新恢复系统的时候会删除,但这种情况比较少。

现在,苹果限制这些数据必须存储在缓存文件夹中。表面看起来这似乎没有问题,但是 iOS5 之中有一个很重要的改变,缓存文件夹(Caches)在设备存储空间少的时候会自动清除。

在 iOS5 发布之前,已经有开发者反应自己设备中 instapaper 数据的丢失。

ios5-caches-cleaning-tweet

Marco 认为,这种毫无预兆的清除会给许多应用带来了麻烦:离线阅读网页的应用如 Instapaper ;电子书和漫画书应用;Podcast 客户端,离线 Wiki 应用;离线地图应用。

虽然有了 iCloud,用户并不会丢失数据,但是在实际生活中会出现问题。设想一个用户要长途旅行,他在 iPad 里面塞满了电影和图书,压缩了存储空间,于是系统开始清除缓存数据。当用户打开 instapaper 的时候,他会发现自己的文章全部不见了。

对于用户和开发者来说,这是糟糕的事情,用户将无法阅读已经下载的文章,他会认为应用本身出了问题,或者认为设备本身出了问题。更糟糕的是,从云端重新下载数据并不总是一个好主意,尤其是在缺乏 WiFi 或者数据传输缓慢的地方。

即使云端传输很快的环境下,毫无预兆的删除数据仍然是一个问题。

当用户用 Instapaper 存储文章,在 iBooks 中获取图书,或者用 Instacast 下载 podcast 的时候,他们希望应用下次启动的时候,这些东西仍然在那里。即使从技术上来说,这是可以重新下载的,但用户将这些东西视为他们自己的数据——他们将它放在那里,应当在他们认为合适的时候自己移除。

当清理工具将它删除后,看起来是应用出错并删除了他们的数据。用户不知道这是 iOS5 做的——可以理解的是,他们将责怪应用开发者。尽管这不是我们的错误,但这肯定会成为我们的问题。

应该有一个文件存储位置,与 iOS5 发布之前 Caches 的作用相同:它不会备份到 iTunes 或 iCloud,它不会同步,除非删除应用,否则它永远不会被删除。

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中