你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS9開發GOGOGO:新特性

iOS9開發GOGOGO:新特性

編輯:IOS開發綜合

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應用的多任務處理加強


即前面提到的分屏與畫中畫,蘋果在iOS9中為iPad新增了Slide Over, Split View 和 Picture in Picture 三種模式來增強多任務處理,最棒的莫過於畫中畫(簡稱PiP)了,它可以讓視頻懸浮在其他控制器之上,一邊做其他事情一邊看電影!

搜索


iOS9提供了一系列全新的獲取App中內容的方式,用戶可通過HandOff,Siri以及內置搜索直接獲取到我們App中的內容,即使用戶還沒有安裝我們的App!

游戲開發


iOS9進一步提升了游戲內的圖形、音頻性能(iOS自家游戲引擎,與其他跨平台游戲開發引擎無關)。 主要增強了游戲開發框架的易用性,對GPU性能駕馭能力的提升。

App Thinning


iOS9推出App Thinning。(神馬是App Thinning?App Thinning指的是用戶從蘋果商店下載安裝我們的App時,根據這個用戶的具體設備類型及操作系統對我們的App進行裁剪,達到占用最少的磁盤空間,發揮最大的兼容性等目的。經過優化後,用戶不會下載我們應用的完整Bundle,而是下載最簡配置+特定需求項,從而讓下載過程縮短,騰出更多的內存空間,這跟蘋果呼吁我們開發通用App離不開干系的。這種優化稱為為App Thinning。P.S.以上為作者自己的總結)
App Thinning目前包括:Slicing - 切片(iOS),Bitcode (iOS, watchOS)以及
On-Demand Resources (iOS)

Slicing:Artwork被納入Asset Catalog
,並且被打上與平台對應的標記,這樣AppStore便知道分發哪些用戶真正需要的資源給用戶下載安裝。

BitCode:Bitcode是LLVM編譯器中間代碼的編碼,我們將中間代碼提交給AppStore,然後由AppStore來進行編譯-Comple和連接-Link,最終提供32位或64位的可執行文件供用戶下載。目前iOS應用的中間代碼提交是可選的,但是蘋果已經要求watchOS應用提交必須包含Bitcode(@Required)

On-Demand
Resources:懶加載資源,即部分資源放在雲端或者AppStore,需要的時候才會請求下來,又是為了縮減App包體積。關於懶加載資源的好處,後面再列。

支持從右至左的語言(RTL-Right To Left Language)


這個更新是我最費解的,我本以為RTL是個什麼特殊的文法(編譯原理中不是有什麼上下文無關文法麼?),結果是我想多了,這應該是蘋果的一項人性化更新吧,支持了對從右至左的語言的顯示。 神馬是從右至左的語言?言語的左至右從是就話句這的寫在現我如比。以前中文也是從右邊往左邊寫的,現在改過來了,但是世界上還有很多語言仍然是從右邊往左邊書寫和閱讀的,比如:
  - 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傳輸加密


App Transit Security,簡稱ATS,也就是我們所說的HTTP升級至HTTPS傳輸。iOS 9 與OS X 10.11以後版本已經默認使用ATS,而蘋果也要求我們盡快采用ATS。ATS的好處是加強數據安全(客戶端與服務器見的數據傳輸),防止信息洩露。關於HTTPS參閱TSL/SSL規范。

如果我們的服務器端還來不及做相關升級,那麼作為前端我們可以暫時回滾至不安全的網絡請求方式(依然使用HTTP),當然蘋果不提倡長期這樣做。具體方法:在info.plist中添加
    NSAppTransportSecurity
    
        NSAllowsArbitraryLoads
        
    

App 擴展


iOS9提供幾種新的App Extension(神馬是App Extension?可以理解為小插件,是一種運行在我們App之外的一段程序。):

網絡擴展:

使用 Packet Tunnel Provider extension point 來實現自定義VPN隧道協議客戶端。

使用App Proxy Provider extension point來實現一個透明網絡代理協議的客戶端。

使用Filter Data ProviderFilter Control Provider extension points 來實現動態的設備端網絡內容過濾。 Safari擴展:
使用Shared Links extension point 來讓用戶通過Safari的分享鏈接看到你的內容。 使用 Content Blocking extension point 提供一個屏蔽列表,讓你的用戶使用你的App浏覽Web內容時屏蔽指定的內容。 Spotlight擴展:
使用 indexing extension point 對App內的數據進行索引。 使用 Index Maintenance extension point 實現在不重啟App的情況下對App內的數據重新建立索引。 Audio Unit extension point 允許App提供類似於GarageBand,Logic等App提供的樂器演奏,音頻特效,聲音合成功能。

Contacts & Contacts UI


Contacts.framework 和 ContactsUI.framework 這2個新的面向對象的庫取代了之前的Address Book 與 Address Book UI frameworks。

Watch Connectivity


WatchConnectivity.framework 提供iPhone和與之配對的iWatch之間進行雙向的文件、數據傳輸。這套框架能夠讓配對的兩個設備上同時運行的App進行即時通信,也可以進行後台通信。

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


Address Book 和 Address Book UI frameworks。取而代之的是 Contacts 和 Contacts UI frameworks 。

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved