iOS9開發GOGOGO:新特性

來源:互聯網
上載者:User

iOS9開發GOGOGO:新特性

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 FrameworkAVKit FrameworkCloudKit FrameworkFoundation FrameworkHealthKit FrameworkLocal Authentication Framework (本地授權)MapKit FrameworkPassKit FrameworkSafari Services FrameworkUIKit Framework 被棄用的APIs
Address Book 和 Address Book UI frameworks。取而代之的是 Contacts 和 Contacts UI frameworks 。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.