看完 WWDC 后,除了对苹果这次所展现出来,那有阵子未见的自信与活泼感
到兴奋外,iOS 8 各种出人意料之外的改变(尤其是 App Extension),更
是让我对 iOS 及相关平台的未来发展异常乐观 XD
但不晓得是否因为介绍太快太短,回头爬了板上的 WWDC 直播文和后续讨论
串后,关于 App Extension 的内容,在认为 App Extension 将根本性地改
变 iOS 使用习惯的我的眼中,感觉真是意外的少,于是借由这篇整理一些我
所理解的重点,跟大家分享、讨论一下。
Share & Custom Action & Photo Editing
虽然许多人似乎比较在意第三方键盘和通知中心 widget,不过我认为这三项
才会是 iOS 8 影响最为深远的大改变。
有用过其他平台的人都知道,iOS 在执行某些特定的任务上的确相对来讲是
有不足之处,尤其是跨 app 分享、跨 app 协同工作这部分,开发者只能透
过其他 app 所提供的 SDK(如透过 Facebook 分享)或 URL(如 Launch
Center Pro 中各种动作)等方式,来达到有限的互动。Well, not anymore.
在 iOS 8 中,app 可以定义自己的 App Extension,将部分功能“暴露”给
其他 app 使用(同时不违反 iOS 引以为傲的“沙盒”安全模式,甚至
extension 和 app 本身都无法互相存取…… 细节就比较技术相关了,有兴
趣的请自行咕狗)
现在你不需要再等 Apple 像过去加入 Facebook、Twitter 那样慢慢整合、
或要求开发者自行实做其他社交服务的分享方式了,现在服务提供者可以撰
写 extension,将 app 的分享功能扩充出去。举例来说,你可能很快就可以
在任意 app 中,将有趣的内容一键分享到 LINE、Instagram、Pininterest
等社群网络上。这点与其他两平台的分享功能类似。(Share)
有些不同的是,和 OS X 中存在已久的 Services 一样,现在你可以在不离
开目前 app 的情况下,呼叫其他 app 来处理现有的内容;概念上其实也更
像是浏览器的扩充套件,app 不再是各自为王,而都变成了 iOS 的扩充套件
:例如 WWDC 上示范的,利用 Bing Translator 直接在原处翻译网页内容。
虽然我马上想到的是 1Password 终于要完美了,不过这项改变不但有更多无
限的可能,更能重新定义 iOS 的使用体验。(Custom Action)
还有一点,就是可以快速地透过第三方程式来处理原生相机所拍摄的相片。
(Photo Editing)
另外优于其他平台的一点小贴心,就是 iOS 原生提供了使用者开关、重新排
序 Share 和 Custom Action 的能力。
Storage Provider & Document Picker
又是打破旧习的一点,现在 app 可以存取自身沙盒外,位于 iCloud Drive
、其他云端空间(开发者可以加入并整合进系统层级的档案挑选器)、甚至
其他 app 空间(一样,沙盒还是在 XD 自行咕狗,蟹蟹)的文件。不用再同
一份文件复制个五十次了!
Custom Keyboard
第三方键盘,这就不用多说了吧…… 但我还是说一下好了。
相较于 Android 只在安装时“要嘛别用、要嘛全部吞下去”的做法(套用前
阵子正夯的话来说,黑箱作业),iOS 一直都提供了使用者对 app 各项权限
清楚且完整的控制(逐条审查 XD):app 默认不具有存取使用者资讯的权限
,但照样可以安装使用,而 app 欲使用某项服务时,可以当下再提示使用者
给予权限,不但清楚,事后使用者也完全具有收回权限的权力。iOS 8 中,
一样的政策当然也延续到了第三方键盘上。
所有第三方键盘默认不具有和互联网连线的权限,而想当然尔,多数键盘
即使没有网络,也是完全不影响使用的;若使用者需要启用键盘可能具有需
连接网络的进阶功能(如对岸很多键盘会有的“云词汇”等等),使用者便
可以允许键盘存取网络,至于连线后键盘会不会私底下将使用者输入的内容
资讯回传,我相信 App Store 的审查机制可以杜绝有恶意想法的开发者。
喔对了另外就是,在输入密码字段时,iOS 会暂时切回内建键盘,完全不让
第三方键盘有窃取密码的机会。(当然密码以外的所有输入内容也是充满个
人隐私,对于开发者或恶意人士也是很具有分析价值的,所以才有上一段提
到的网络存取权限限制)
最后,第三方键盘并不是独立存在的系统外挂,而是与其他 App Extension
相同,必须包含于一个完整具功能性的 app 当中(其实不难,例如目前已
登上 App Store 的许多第三方键盘的笔记本 app 就符合要求了)。虽然从
Android 的角度看来会觉得好像多此一举,但好处是符合 iOS 的使用逻辑
,使用者安装、移除管理上也不必重新学习。
Today
也就是通知中心 widget。没看错的话,widget 还可以选择性出现,例如
WWDC 上的 eBay widget 可以选择在竞标被超过时才出现,不但更具功能性
,也可以保持 Today 页面的整洁、降低内存用量等。不过即使如此,
Today 页面还是有可能会同时显示许多 widget,而每个 widget 又是一个独
立的处理程序,在内存限制特别吃紧的 iOS 上(尤其是旧装置上)会不会
有什么负面影响,我觉得是个值得观察的点。