关闭广告

在砍伐初代 iPhone 的复杂森林时,很多芯片掉落了。以革命性手机的简化和易用性为名,苹果将操作系统的某些方面削减到了最低限度。一个想法是摆脱传统的文件管理。

众所周知,史蒂夫·乔布斯讨厌桌面计算机上的文件系统,他发现普通用户复杂且难以掌握。文件埋在一堆子文件夹中,需要维护以避免混乱,这一切不应该毒害健康的iPhone OS系统,而原始iPhone上唯一需要的管理就是通过iTunes来同步多媒体文件,或者系统有一个统一的照片库,可以从中上传图像或将它们保存到其中。

穿越用户痛苦的旅程

随着第三方应用程序的出现,沙盒模型显然是不够的,它可以确保系统及其内部文件的安全,其中文件只能由存储它们的应用程序访问。因此,我们收到了几种处理文件的选项。我们可以通过 iTunes 将它们从应用程序获取到计算机,“打开方式...”菜单可以将文件复制到支持其格式的另一个应用程序,iCloud 中的文档可以同步来自同一应用程序的文件。跨 Apple 平台的应用程序,尽管以一种相当不透明的方式。

简化复杂文件系统的最初想法最终适得其反,不利于苹果,最重要的是不利于用户。在多个应用程序之间处理文件会造成混乱,其核心是跨应用程序存在大量同一文件的副本,而无法概览给定文档或其他文件的实际情况。相反,开发人员开始转向云存储及其 SDK。

随着 Dropbox 和其他服务的实施,用户能够从任何应用程序访问相同的文件、编辑它们并保存更改,而无需制作副本。该解决方案使文件管理变得更加容易,但还远远不够理想。实现文件存储对于开发人员来说意味着大量工作,他们必须弄清楚应用程序如何处理同步并防止文件损坏,而且永远不能保证您的应用程序将支持您正在使用的存储。在云中处理文件存在另一个限制——设备必须始终在线,并且文件不能仅存储在本地。

距离 iPhone OS 第一个版本(今天的 iOS)问世已经七年了,苹果终于拿出了最终的解决方案,它放弃了基于应用程序的文件管理的最初想法,而是提供了经典的文件结构,尽管很巧妙处理。向 iCloud Drive 和文档选取器问好。

iCloud的驱动器

iCloud Drive并不是苹果的第一个云存储,它的前身是iDisk,它是MobileMe的一部分。该服务更名为 iCloud 后,其理念发生了部分改变。 iCloud 不是 Dropbox 或 SkyDrive(现在的 OneDrive)的竞争对手,它应该是一个专门用于同步的服务包,而不是一个单独的存储。苹果一直抵制这一理念,直到今年它终于推出了 iCloud Drive。

iCloud Drive 本身与 Dropbox 和其他类似服务没有什么不同。在桌面(Mac 和 Windows)上,它代表一个不断更新并与云版本同步的特殊文件夹。正如 iOS 8 第三个测试版所透露的那样,iCloud Drive 还将拥有自己的 Web 界面,可能位于 iCloud.com 上。但是,它在移动设备上没有专用客户端,而是集成到组件内的应用程序中 文件选取器.

iCloud Drive 的神奇之处不仅在于同步手动添加的文件,还在于包含应用程序与 iCloud 同步的所有文件。每个应用程序在 iCloud Drive 中都有自己的文件夹,并标有一个图标以便更好地定位,并且其中有单独的文件。您可以在云端的相应文件夹中找到Pages文档,这同样适用于第三方应用程序。同样,同步到 iCloud 但在 iOS 上没有对应项(预览、文本编辑)的 Mac 应用程序在 iCloud Drive 中有自己的文件夹,任何应用程序都可以访问它们。

目前尚不清楚 iCloud Drive 是否会具有像 Dropbox 一样的附加功能,例如文件链接共享或多用户共享文件夹,但我们可能会在秋季找到答案。

文件选取器

文档选择器组件是 iOS 8 中处理文件不可或缺的一部分。通过它,Apple 将 iCloud Drive 集成到任何应用程序中,并允许您在自己的沙箱之外打开文件。

文档选择器的工作方式与图像选择器类似,它是一个窗口,用户可以在其中选择要打开或导入的单个文件。它实际上是一个非常简化的文件管理器,具有经典的树结构。根目录将与主 iCloud Drive 文件夹相同,不同之处在于还会有包含应用程序数据的本地文件夹。

第三方应用程序的文件不一定要同步到iCloud Drive,文档选取器可以在本地访问它们。但是,数据可用性并不适用于所有应用程序,开发人员必须明确允许访问并将应用程序中的 Documents 文件夹标记为公共。如果这样做,则该应用程序的用户文件将可供使用文档选择器的所有其他应用程序使用,而无需 iCloud Drive 的互联网连接。

用户将有四个处理文档的基本操作——打开、移动、导入和导出。当第二对操作将单个文件的副本创建到应用程序自己的容器中时,它或多或少地接管了当前处理文件的方式的功能。例如,用户可能想要编辑图像以使其保持原始形式,因此他们选择导入,而不是打开它,这会在应用程序的文件夹中复制文件。导出就是或多或少众所周知的“打开于...”功能。

然而,第一对更有趣。打开文件完全符合您对此类操作的期望。第三方应用程序将从另一个位置打开该文件,而无需复制或移动该文件,并且可以继续使用该文件。然后,所有更改都会保存到原始文件中,就像在桌面系统上一样。在这里,苹果节省了开发人员的工作,他们不必担心如何处理同时在多个应用程序或设备中打开的文件,否则可能会导致文件损坏。所有协调均由系统与CloudKit一起负责,开发人员只需在应用程序中实现相关API即可。

然后,移动文件操作可以简单地将项目从一个应用程序文件夹移动到另一个应用程序文件夹。因此,如果您想使用一个应用程序来管理设备上本地存储的所有文件,文件移动器可以让您做到这一点。

对于每个应用程序,开发人员指定它可以处理的文件类型。文档选择器也适应了这一点,它不会显示整个 iCloud Drive 和本地应用程序文件夹中的所有文件,而是仅显示应用程序可以打开的那些类型,这使得搜索更加容易。此外,文档选择器还提供文件预览、列表和矩阵显示以及搜索字段。

第三方云存储

在iOS 8中,iCloud Drive和Document Picker并不是排他性的,相反,第三方云存储提供商将能够以类似的方式连接到系统。文档选择器将在窗口顶部有一个切换按钮,用户可以在其中选择查看 iCloud Drive 或其他可用存储。

第三方集成仅需要这些提供商的工作,并且与系统中的其他应用程序扩展类似。在某种程度上,集成意味着支持 iOS 8 中的特殊扩展,该扩展将云存储添加到文档选择器存储菜单的列表中。唯一的条件是存在给定服务的已安装应用程序,该应用程序通过其扩展集成到系统或文档选取器中。

到目前为止,如果开发人员想要集成一些云存储,他们必须通过服务的可用 API 自行添加存储,但正确处理文件以免损坏文件或丢失数据的责任落在了他们的头上。对于开发人员来说,正确的实施可能意味着长达数周或数月的开发。有了Document Picker,这项工作现在直接交给云存储提供商,因此开发人员只需要集成Document Picker即可。

如果他们想通过自己的用户界面将存储库更深入地集成到应用程序中(例如 Markdown 编辑器),则这不太适用。然而,对于大多数其他开发人员来说,这意味着开发的显着简化,他们实际上可以一次性集成任何云存储,而无需任何额外的工作。

当然,存储提供商本身将在很大程度上受益,尤其是那些不太受欢迎的存储提供商。过去,对应用程序的存储支持通常仅限于 Dropbox、Google Drive 和其他一些。云存储领域不太受欢迎的参与者实际上没有机会集成到应用程序中,因为这意味着这些应用程序的开发人员需要承担不成比例的额外工作,而其好处很难让提供商信服他们的.

借助 iOS 8,用户在设备上安装的所有云存储都可以集成到系统中,无论它们是大玩家还是鲜为人知的服务。如果您选择 Dropbox、Google Drive、OneDrive、Box 或 SugarSync,则没有什么可以阻止您使用它们进行文件管理,只要这些提供商相应地更新其应用程序即可。

结论

凭借 iCloud Drive、Document Picker 以及集成第三方存储的能力,Apple 在正确、高效的文件管理方面迈出了一大步,这是 iOS 系统最大的弱点之一,开发人员必须解决这个问题。借助 iOS 8,该平台将提供比以往更高的生产力和工作效率,并且拥有众多热情的第三方开发人员愿意支持这一努力。

尽管由于上述所有原因,iOS 8 为系统带来了很大的自由度,但开发人员和用户仍然需要应对一些明显的限制。例如,iCloud Drive本身没有自己的应用程序,它仅存在于iOS上的文档选择器中,这使得在iPhone和iPad上单独管理文件有点困难。以同样的方式,例如,不能从邮件应用程序和附加到消息的任何文件调用文档选取器。

对于开发者来说,iCloud Drive意味着他们的应用程序必须一次性从iCloud中的文档切换,因为服务彼此不兼容,用户将失去同步的可能性。但这一切只是苹果为用户和开发者提供的可能性的一个很小的代价。 iCloud Drive 和 Document Picker 带来的好处可能不会在 iOS 8 正式发布后立即显现出来,但在不久的将来这是一个巨大的承诺。这是我们多年来一直呼吁的。

资源: 麦克斯托里, iMore
.