iOS9已經發布一段時間了,大家對iOS9的新特性了解多少呢?是否還停留在多任務(分屏,畫中畫)、Swift2、HTTPS強制升級這幾個大家轉來轉去的東東呢?今天我們來深入了解iOS9給我們帶來的更廣闊的技術革新吧!
目錄:
iOS9新特性概覽 iPad應用的多任務處理加強 搜索 游戲開發 App Thinning 支持從右至左的語言RTL-Right To Left Language App傳輸加密 App 擴展 Contacts Contacts UI Watch Connectivity Swift 加強 一些系統框架的改動 AV Foundation Framework AVKit Framework CloudKit Framework Foundation Framework HealthKit Framework Local Authentication Framework 本地授權 MapKit Framework PassKit Framework Safari Services Framework UIKit Framework 被棄用的APIs
首先我們了解下iOS9大體上的更新點:
即前面提到的分屏與畫中畫,蘋果在iOS9中為iPad新增了Slide Over, Split View 和 Picture in Picture 三種模式來增強多任務處理,最棒的莫過於畫中畫(簡稱PiP)了,它可以讓視頻懸浮在其他控制器之上,一邊做其他事情一邊看電影!
iOS9提供了一系列全新的獲取App中內容的方式,用戶可通過HandOff,Siri以及內置搜索直接獲取到我們App中的內容,即使用戶還沒有安裝我們的App!
iOS9推出App Thinning。(神馬是App Thinning?App Thinning指的是用戶從蘋果商店下載安裝我們的App時,根據這個用戶的具體設備類型及操作系統對我們的App進行裁剪,達到占用最少的磁盤空間,發揮最大的兼容性等目的。經過優化後,用戶不會下載我們應用的完整Bundle,而是下載最簡配置+特定需求項,從而讓下載過程縮短,騰出更多的內存空間,這跟蘋果呼吁我們開發通用App離不開干系的。這種優化稱為為App Thinning。P.S.以上為作者自己的總結)
App Thinning目前包括:Slicing - 切片(iOS),Bitcode (iOS, watchOS)以及Slicing:Artwork被納入Asset Catalog
,並且被打上與平台對應的標記,這樣AppStore便知道分發哪些用戶真正需要的資源給用戶下載安裝。
BitCode:Bitcode是LLVM編譯器中間代碼的編碼,我們將中間代碼提交給AppStore,然後由AppStore來進行編譯-Comple和連接-Link,最終提供32位或64位的可執行文件供用戶下載。目前iOS應用的中間代碼提交是可選的,但是蘋果已經要求watchOS應用提交必須包含Bitcode(@Required)
On-Demand- ar' – '???????', Arabic - 'arc' – '?????', Aramaic - 'bcc' – '????? ??????', Southern Balochi - 'bqi' – '???????', Bakthiari - 'ckb' – 'Soranî / ?????', Sorani Kurdish - 'dv' – '??????????', Dhivehi - 'fa' – '?????', Persian - 'glk' – '?????', Gilaki - 'he' – '?????', Hebrew - 'mzn' – '????????', Mazanderani - 'pnb' – '??????', Western Punjabi - 'ps' – '????', Pashto
—— [ 維基百科 ]
這部分內容更新應該納入國際化資源相關的知識體系,因為目前國內的App暫時還用不到。
1. 現在所有的UIKit中的控件都支持對這種語言的顯示與輸入。
2. UIView定義了語法內容屬性(semantic content
attributes)來指定視圖如何顯示在一個自由向左的上下文中。
3. UIImage新增了方法imageFlippedForRightToLeftLayoutDirection,可以很方便的將圖片做左右映射變換。
P.S. 一旦一個國家的閱讀習慣是從右到做的,那麼很多東西的順序都應該隨之改變,比如tabbar的顯示,Slider的滑動方向等,從這一點可以看出蘋果非常的人性化。
App Transit Security,簡稱ATS,也就是我們所說的HTTP升級至HTTPS傳輸。iOS 9 與OS X 10.11以後版本已經默認使用ATS,而蘋果也要求我們盡快采用ATS。ATS的好處是加強數據安全(客戶端與服務器見的數據傳輸),防止信息洩露。關於HTTPS參閱TSL/SSL規范。
如果我們的服務器端還來不及做相關升級,那麼作為前端我們可以暫時回滾至不安全的網絡請求方式(依然使用HTTP),當然蘋果不提倡長期這樣做。具體方法:在info.plist中添加
NSAppTransportSecurity
NSAllowsArbitraryLoads
iOS9提供幾種新的App Extension(神馬是App Extension?可以理解為小插件,是一種運行在我們App之外的一段程序。):
網絡擴展:
使用 Packet Tunnel Provider extension point 來實現自定義VPN隧道協議客戶端。
使用App Proxy Provider extension point來實現一個透明網絡代理協議的客戶端。
使用Filter Data Provider 和 Filter Control Provider extension points 來實現動態的設備端網絡內容過濾。 Safari擴展:
Contacts.framework 和 ContactsUI.framework 這2個新的面向對象的庫取代了之前的Address Book 與 Address Book UI frameworks。
WatchConnectivity.framework 提供iPhone和與之配對的iWatch之間進行雙向的文件、數據傳輸。這套框架能夠讓配對的兩個設備上同時運行的App進行即時通信,也可以進行後台通信。
Address Book 和 Address Book UI frameworks。取而代之的是 Contacts 和 Contacts UI frameworks 。