看完 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 上(尤其是舊裝置上)會不會
有什麼負面影響,我覺得是個值得觀察的點。