【译文】iOS 8如何改革移动平台文档的存储和管理
译者:威锋网
苹果上周在 WWDC 宣布的 iOS 8 带来不小的变化,尤其针对移动平台中最具争议的问题之一:文档存储和管理。尽管 iCloud 对适用于 iOS 和 OS X 统一 的 iCloud Drive 将起到很大的作用,如今第三方开发者也将有机会加入更好的文件管理功能到他们的应用程序。
在 WWDC 发布会和之后整整一周的开发者会议中,苹果详细介绍了新系统增加的新功能和 API,其中发现一个共同点:应用程序如今能够跨出它们的沙箱,访问存储在其他应用程序的文件,而无需创建不必要的副本。为了更好地理解 iOS 8 这些技术变化的重要性和他们会增加给开发者和用户的固有复杂性,我想退一步介绍一些背景情况:iOS 目前如何处理文件存储和管理。
目前的方式
自 2012 年中期开始,iPad 成为我主要使用的计算机。当去年苹果发布 OS X Mavericks 后,我认为这会对我用移动设备办公的习惯产生一定的影响。我经常提到一个希望苹果将最终解决的 iOS 功能:“打开”菜单。
“打开”菜单将文件传送至另一个应用程序,创建一个副本按传统的方式,苹果总是孤立对待 iOS 的应用程序,限制它们之间的通讯系统。苹果的沙盒模式要求应用程序在专有服务器存储文件;对于基于文档的应用程序(如 Pages 或文本编辑器)的用户来说,这意味着如果他们需要在多个应用程序修改文档,他们必须手动复制一个文件到另一个应用程序。
出于安全原因,iOS 在安装时将每个应用程序(包括其偏好设置和数据)置于沙箱。一个沙箱就是一组精密控制,限制了应用程序访问文件、偏好、网络资源、硬件等等。作为沙盒进程的一部分,该系统安装每个应用程序到其自己的沙盒目录下,这个目录就充当了应用程序及数据的中心。
最典型的例子或许是常规的文字处理:你想在 Pages 编写,同时你也想从一个图像编辑器将图像拖放到文档中,最后使用一个专门的语法检查工具完成文稿。在 OS X,文件系统层允许任何兼容的应用程序打开由其他应用程序创建或修改的文件,保存修改到原始文件的位置,并在这过程中产生文件的多个版本。但如果在 iOS 上做相同的尝试,你最终会获得至少同一个文件的三个副本,分散在不同的应用程序并占用您设备的存储空间。更何况,为了实现这一极其普通的文字处理工作流程,你就必须每次在应用程序之间手动切换。
iOS 沙箱重要的是要明白,苹果的沙盒模式是故意设计来为用户提供旨在避免数据丢失的安全解决方案。因为应用程序无法直接访问并修改另一个沙箱的文件,用户可以从App Store下载另一个应用程序来进行访问和修改,从而不会对现有的文件造成影响。开发者不能擅自让自己的应用程序修改其他应用程式的文件。而最好的是,用户不必采用传统的文件系统:通过文件夹和子文件夹管理文件是 PC 时代的遗物; “应用程序库”为存储文档提供了更简单和现代的方式。
随着时间的推移,苹果的解决方案开始露出缺点,用户开始要求更方便的操作。
iPhone 和 iPad 采用的文件管理系统是安全的,但也越来越繁琐和恼人,多年没有变化,开发者开始采取 SDK 的方法:与其等待苹果增加新的文件管理和协作功能,他们在自己的应用程序内置第三方云服务的支持,允许多个设备的单个文件能够同步修改。
所有提供给消费者的第三方云服务中,Dropbox 在 iOS 生态系统中最能站稳脚跟。数以千计的应用程序支持与 Dropbox 同步文件,主要是因为它可以让用户在多个设备处理一个文件的副本,并能作为桌面计算机的一个普通文件夹安装。随着 Dropbox 受欢迎程度增长,本地多版本和共享功能被添加到 SDK。
如今,App Store 中基于文档的应用程序很少有不附带某种同步组件的,都支持跨设备编辑,要么是 Dropbox, Box, One Drive, 或 Apple 的 iCloud。
OS X 的 iCloud 文档库2011 年推出的 iCloud 提供了文件存储和同步功能,恰当地命名为云中的文档。但是,不像其他的服务,iCloud 并没有让用户避免创建相同文件的副本,如果用户想使用 iOS 设备上的多个应用程序来编辑的话,还是需要在不同的应用程序创建多个副本。沙箱文件将被推送到 iCloud 然后备份到其他设备,但是,从工作流角度来看,这些还是孤立的,不能与其他应用程式的沙箱联系。
在某种程度上,我相信 iOS 应用程序文件同步解决方案的普及是苹果基本沙盒模式的副产品。对于许多不一定需要同步的用户来说,同步的优势是多平台、多设备,以及对同一文件在多个应用程序进行编辑,以实现超出苹果限制的文件管理工作流程。
在 iOS 8,苹果将重塑文档存储和管理。对于用户来说,iCloud Drive 将使云存储和同步更加明显,并且应用程序将能够在同一个文件进行协作,而无需创建副本。对于不想依靠 iCloud 的第三方开发者,苹果正在开发一个新的集成解决方案:任何应用程序均可使用其他存储供应商。
iCloud Drive
对于 iOS 8 和 OS X Yosemite ,苹果决定采用比较常规的做法,也是 4 亿多 iCloud 用户一直想要的管理文件的方式。通过可扩展性,面向用户的功能和开发人员 API 得到扩展,让应用程序超越沙箱的同时注重安全和熟悉感。这是一个复杂的变化,这将需要苹果和第三方开发者仔细考虑他们应用程序的技术含义。
对于用户来说,最明显的新功能是 iCloud Drive,一个统一的存储文件的位置。建立在苹果的新 CloudKit 基础上, iCloud Drive将作一个特殊的文件夹存在于 OS X,带有一个子文件夹放置那些需要存储文件到 iCloud 的应用程序; 在 iOS, iCloud Drive 将不会是一个专门的应用程序,但它会建立起一个新的文件选择器,每一个应用程序都可以植入这个文件选择器。
iOS iCloud Drive 的文件选择器iCloud Drive 跟以前苹果的“文件云存储”不同,以前苹果防止各 iCloud 的文档库访问其他应用程序的“文档库”。虽然有一种方法可以在 OS X Finder 的目录手动浏览 iCloud,苹果未正式支持该系统,也没有用户界面可进入。
iCloud Drive 会显示所有支持 iCloud 的应用程序的文档库。在每台设备, iCloud Drive将让用户浏览在 iOS 或 OS X 创建的文档文件夹; 台式机用户也将能够从Finder 管理自己的 iCloud Drive,删除文件和文件夹。
因此,尽管 iCloud 的原理是一样的——在所有设备上查看所有的文件,接着上次编辑到的地方——如今呈现给用户的方式不同了,奇怪的是,反而让人想起了传统的文件系统。多年来,苹果试图把 iCloud 打造成不需要用户进行任何分类管理的文档存储/持久性解决方案,而在 iOS 8 和 OS X Yosemite ,你将能以“你喜欢的方式”“自由处理你所选择的文件”。这是一个重要的变化,符合用户定制和 iOS 8 的灵活路线。
文件选择器
在单一的 iCloud Drive 中浏览 iCloud 文档库,只是 iOS 8 文档管理的其中一面,加上 iCloud 存储的新接口,给开发者提供新的 API,可开发出存储、打开文件,并不会产生副本的功能。
iOS 8文件选择器新的 iOS 8 文件选择器可以让用户通过查看其他兼容 iCloud 功能的应用程序或存储供应商,从一个应用程序的沙箱外部选择文件。该功能将是开发者的可选功能,他们可自行决定是否让其他应用程序访问自己应用程序的文件。应用程序发现自己沙箱以外的文件,唯一方法就是文件选择器,因此用户永远可控制是否授权访问和编辑文档,并可手动选择文件(就像必须经过用户激活的插件一样) 。
文件选择器将配备四种不同类型的文件操作:打开、移动、导入和导出。据苹果介绍,打开并移动跟传统的 iOS 文件处理“明显不同”,因为它们将允许应用程序从其他应用程序的沙箱访问文件,让用户在一个地方编辑文件,而无需创建不必要的副本。这是苹果的沙盒模式的深刻变革。
就实际情况而言,这意味着,如果开发者支持该功能,那么 Pages 可以编辑由其他文字处理应用创建的同一个文件,或者第三方 iOS 文本编辑器可以打开并修改一个在 Mac 原生文本编辑器创建并存储在 iCloud 中的 txt 文件。在苹果宣布这一功能时,开发者都感到雀跃。对于开发者来说,iOS 其中一个令人烦恼的问题就是数据的可移植性,因此,苹果如今放开数据限制,允许应用程序之间互相访问同一个文件,对开发者和用户来说都是一个进步 。
iOS 8 的应用程序也可以在不改动源文件的情况下复制文件到新的路径。上述的导入和导出模式类似于 iOS“在菜单打开”的旧模式,但 iOS 7 的改进不再强迫用户离开他们目前正在使用的应用程序。导入和导出模式将简单地创建副本到应用程序内部或外部,但不会涉及任何应用程序切换。导入和导出模式的另一个好处是,不支持 iCloud 文档存储的应用程序将可以从支持 iCloud 的应用程序导入文件,生成文件的脱机副本。
在测试版的技术文档中,苹果强调,开发者将不得不考虑他们希望在应用程序使用的文件管理模式,因为用户可能并不需要所有功能,导入和导出模式之间细微的差别可能会使用户混淆。据苹果称,大多数用户想要灵活的文档管理操作,开发者应该加以强调“简单的导入和导出操作”。更何况,即使减少应用程序切换,导入和导出模式仍然会额外创建一个文件副本,消耗额外的存储空间,并使其难以在多个应用程序处理单个文档。
在 WWDC 开发者讨论会上,苹果工程师指出, iCloud Drive 能从其他应用程序编辑文件的可能性将使用户“高兴”,并带来更好的用户体验。
重要的是,要注意到,尽管文件处理和文件操作发生变化,苹果并没有放弃沙盒模式或允许盲目进入到应用程序的沙箱。
正如上面提到的,文件选择器将成为用户访问应用程序沙箱外文档的唯一途径,也是开发人员设置自己的应用程序可公开范围的唯一途径。此外,从外部应用程序访问文档的应用程序也不能轻松绕过沙箱访问该文件:相反,应用程序将存储一个文件的“参考”,其中包括授予文件访问权限的安全范围 URL。安全范围的URL 这个概念并不新,跟苹果在 OS X 使用技术相同,也可以让应用程序访问他们沙箱以外的文件。
所有这些措施强调的是,苹果仍然支持 iOS 沙盒模式,但他们愿意给用户更多灵活性,采用他们最先为 OS X 开发的技术,同时给予系统一个用户友好的界面。在苹果看来,应用程序仍然无法普遍访问其他应用程序的资料库,但基于文档的 iOS 8应用程序将能够使用文档选择器。因此,尽管两个文字处理器可以协作打开和移动单个文档,但 Twitter 客户端可能无法任意访问存储在另一个社交网络应用程序的照片或偏好。
苹果为 iOS 8 文档处理设立的规则,与扩展组件有几点相似:双方都要经过特定的激活点,都将支持不是摈弃沙箱。对于文档,苹果增加了一些额外的限制:应用程序将无法在自己的沙箱之外写入新的文件,另外,如果一个应用程序试图打开和移动另一个支持 iCloud Drive 应用的文档,将需要 iCloud 支持。对于新文件,你将无法打开 App A,然后直接在 App B 创建一个新的文件:如果两个应用程序支持该功能,App A将需要写入文件到一个临时位置,然后将其移动到 App B。对于终端用户,区别可能很小,但对开发人员却很重要。
存储提供商
iOS 8也给开发者一种方式,可在他们的应用程序提供存储服务,作为文件选择器的扩展选项。在 WWDC 发布会,苹果展示了支持 iOS 8 的 Box 和 OneDrive 扩展选项截图,这表明该功能主要用于同时有 iOS 客户端的 Web 服务。
因为存储提供商的可扩展性,Box 和 OneDrive 应用程序将能够支持四种基本的文件操作,并能下载和上传到不是 iCloud 的 Web 服务。潜在地,存储供应商的扩展可能允许那些基于云的文件存储服务放弃专用 SDK,单纯依靠扩展组件。
以前第三方开发者执行谷歌 Drive 和 Dropbox 的 SDK,他们通常需要考虑同步逻辑和跟自己应用的冲突,这需要漫长的开发时间,并要对 Web 服务如何处理不同的同步有深刻的理解。如今存储提供商的扩展负责下载和上传到远程服务器,应用程序不再需要知道 Dropbox 或 OneDrive 的细节,他们只需要支持新的文件操作。
支持存储供应商的扩展组件不仅适用于小型独立工作室。诸如其他较大的公司如 Dropbox,谷歌和亚马逊,Box 和微软也会利用 iOS 8 的开发工具,让他们的存储服务与每一个应用程序的 iCloud 文件选择器共存。
“因为 iOS 8 具备可扩展性,我们很高兴我们的用户可以从自己喜爱的应用程序无缝地访问他们所有的 OneDrive 文件,无需创建额外的副本”,微软产品管理及 OneDrive 产品营销主管安格斯·洛根表示。
更好的体验但也带来新的复杂性
基于文档的应用程序将要面对苹果 iOS 8 新技术的重大变化,而苹果建议开发者慎重考虑文档共享、扩展和新的文件操作带来的复杂性。
如今虽然能够跨多个应用程序打开同一个文档,用户处理文件有了更好、更直观的体验,但是开发者必须考虑新的变量,如网络错误,节省背景和在多个应用程序处理同一个文件的挑战。苹果告诉开发人员可以使用文件协调技术,它可以协调从多个位置访问文件,避免数据丢失。苹果认为,用户将需要更为灵活的打开和移动模式,这将要求开发者要小心他们的应用程序对一个文件的更改。
开发者也将需要正确处理数据的迁移:尽管 iOS 8 用户可以选择继续使用目前的云存储文件或迁移到 iCloud Drive,OS X Yosemite 不支持向后兼容性,用户将不得不选择迁移到 iCloud Drive,否则文件将不再跨设备更新。新的 API 在许多方面与 iOS 7 和 OS X Mavericks 存在冲突,它们将互不兼容。对于用户来说,这意味着,他们将不得不迁移到每台设备。一旦数据被迁移一台设备上,所有其他设备也必须迁移,否则将无法互相同步,这势必会产生一些混乱,需要开发者和用户之间良好的沟通。
同样,开发者自行决定是否在其应用程序中的特定部分支持新的文件操作,并且,系统能够跨应用程序共享同一文件,是否显示原始文件也是开发者的选择。
将文件系统的挑战和发展问题放在一边,苹果 iOS 8 中文档管理和存储的新方法,是一个可喜的进步。这些新技术都可能经过几年的酝酿,以确保可靠性和安全性,同时避免数据丢失,而且应该杜绝令人沮丧的复杂性。
iCloud Drive、文件共享、新的文件选择器,并支持第三方服务存储提供商,所有这些新技术说明了,苹果这是将赌注押在一个结合了传统文档管理和更灵活的沙盒模式的解决方案,同时确保安全性和协作。iOS 跨应用程序的文档管理问题是否终于得到解决,现在下结论还为时过早,但是开发者对可扩展性的兴奋使得前景很乐观。
译文来源:威锋网 顶部图片来源:http://www.bitimer.in.th
================================================================================
不知不觉本网站已经一岁半了, 在这里小编要感谢那么一如既往支持本站的油茶人。
欢迎 UXRen 投稿,提供有价值的资讯、线索、点子及建议。
注明:本站内容及数据部分来自互联网及公开渠道,如有侵权请及时联系我们。
================================================================================