iOS 9 新增內容-上

本文主要基于蘋果iOS9官方文檔進行參考翻譯,詳細可參考

  1. iOS9發布說明
  2. iOS 8.3與iOS 9.0 API變化
  3. iOS設備兼容性參考

一、iPad多任務增強

iOS9 增強了對 iPad 用戶的多任務處理如滑動覆蓋(Slide Over),分割視圖(Split View)和畫中畫(Picture in Picture)的體驗。該滑過功能允許用戶選擇一個次要的App并快速地與之交互。分割視圖功能讓用戶能夠同時并排開啟兩個App。畫中畫功能(也稱為PiP)允許用戶觀看視頻的一個窗口上面浮動其他屏幕上的App。

你沒有辦法幫助用戶決定他們什么時候想在屏幕的同時顯示兩個App,因為這一切都是用戶行為你無法控制。盡管如此,我們還需要做一下幾件事,來確保用戶有一個完美的多任務處理的體驗。

  1. 非常重要的是,App 必須合理地利用的系統資源,以便他可以有效地運行一個 App 的同時,還可以與正常的運行另一個 App。根據內存壓力,系統預先退出消耗最大內存的 App。有關應用能耗的一些問題,請參閱iOS App能耗指南

  2. 如果你還沒有準備擁抱 iOS 9 所帶來的變化,那么一定要采用SizeClasses,使你的 App 在分屏視圖下看起來不錯。想了解更多關于你的 App 應當如何響應用戶的分割視圖與滑動覆蓋,請參考iPad多任務增強
    與分割視圖,滑動覆蓋一樣,用戶控制他們是否在看視頻的同時以畫中畫的形式啟動另一個應用程序來運行。如果視頻播放不是你的應用程序的主要功能,那么請支持畫中畫。

當用戶選擇畫中畫,使用AVKit或者AV Foundation的API。視頻播放類中定義的不支持畫中畫的媒體播放器框架在iOS9中將會被棄用。要了解如何準備畫中畫視頻播放的應用程序,請參看畫中畫快速指南

二、3D Touch

3D Touch給用戶帶來了更多的交互維度。在支持的3D Touch設備上,用戶可以從主屏幕上按壓App圖標可以快速選擇App特定的操作。在一個應用程序,人們可以使用按壓操作來獲得一個項目的預覽,在一個單獨的視圖中打開該項目,并響應相應的操作。

iOS9提供了以下的3D Touch的API:

  1. 主屏幕快速響應API提供了添加快捷方式到你的應用程序圖標,預測用戶行為并提供更加快捷的人機交互(參看 UIApplicationShortcut * API,例如UIApplicationShortcutItem)。

  2. UIKit中的peek和pop API讓你能夠輕松地獲得額外的內容在你的App(參看UIViewControllerPreviewingUIViewControllerPreviewingDelegate以及UIViewController中新的方法)。使用peek快速響應API中提供一個press-enabled替換應用程序的touch-and-hold方法(參看 UIPreview * API,例如UIPreviewActionUIPreviewActionItem)。

  3. Web視圖peek和pop API,可以啟用的HTML鏈接的預覽信息(參看 WKWebView)。

  4. UITouch中的force屬性允許你添加自定義的force-based到你的App的用戶交互中。

不管你采用哪些API,你的App必須在runtime時檢查3D Touch的可用性。要了解更多關于支持3D Touch,參看在iPhone上使用3D Touch。對于你的應用程序中使用3D Touch API的例子,參看ApplicationShortcuts中使用UIApplicationShortcutItemViewControllerPreviews中使用的UIViewController previewing API

三、搜索

搜索(Search)在iOS 9中賦予了用戶更加出色的方式來訪問你的App內部信息,即使它沒有安裝(Installed)。當你的內容是可搜索狀態時,用戶可以通過Spotlight,Safari,Siri在你的App里訪問活動(Activities)及其深度內容(Content Deep)。使用搜索的相關API,決定內容索引(Indexed)情況,即在搜索結果中顯示什么信息,用戶從你的App或者網站獲得重定向后的結果。

在iOS 9中整合搜索內容其實很簡單:你在執行搜索時不需要任何之前的經驗,并且大多數開發者發現,只需要幾個小時,使他們的內容可以普遍的成為可搜索的狀態。要了解如何讓你的應用App和網站內容的可搜索,參看App搜索編程指南
在iOS 9中使用搜索時,隱私是一個重要的特性。給用戶最好的搜索體驗的同時,也保護他們的隱私數據,iOS 9提供了以下可用索引:

  1. 私有的設備索引(A private on-device index)。每個設備包含一個私有索引,該信息不會與Apple設備間共享或同步。當你創建一個項目可以在用戶的設備索引時,保證只有該用戶可以查看搜索結果。

  2. Apple的服務器端索引(Apple’s server-side index)。服務器端的索引只存儲你已經適當地在網站上標明的公開數據。

** iOS 9提供了以下API來幫助你進行內容搜索:**

  1. NSUserActivity類包括新的方法和屬性,可以幫助你構建項目索引等用戶執行的活動內容,例如訪問一個導航點或創建和查看內容。幾乎每一個App可以利用NSUserActivity API,提供有用的內容給用戶。

  2. Core Spotlight framework(CoreSpotlight.framework)提供的API,可以幫你添加App的特定內容到設備上的索引,并啟用深層鏈接到你的App。要了解更多關于Core Spotlight framework API,參看Core Spotlight framework參考

  3. Web markup可以讓你相關的網頁內容成為可搜索狀態,并幫助你豐富用戶的搜索體驗。要了解如何標記你的網站,參看標記網頁內容
    此外,加入了Smart App Banners為用戶提供了一種簡單的方法,直接鏈接到你的應用程序(了解如何使用Smart App Banners,參看App與Smart App Banners)。

  4. 通用鏈接(Universal Links),讓你使用標準的HTTP或HTTPS鏈接替換自定義URL方案。通用鏈接適用于所有用戶:如果用戶已經安裝了你App,鏈接直接帶他們到你的App;如果他們沒有安裝您的App,鏈接將會在Safari中打開你的網站。要了解更多關于通用鏈接,參看通用鏈接

四、應用瘦身(App Thinning)

應用瘦身幫助你開發不同的平臺的App提供一個優化的自動安裝。應用瘦身包括以下內容:

  1. Slicing。納入資產目錄,并為平臺標記一個只允許App Store提供安裝的標記。

  2. 按需加載資源(On-Demand Resources)。主機允許附加內容存儲在iTunes App Store庫中的App獲取所需的資源使用異步下載和安裝。更多地了解這項技術,參看 按需加載資源指南

  3. Bitcode。當我們提交程序到App store上時,Xcode會將程序編譯為一個中間表現形式(bitcode)。然后App store會再將這個botcode編譯為可執行的64位或32位程序。

要了解更多有關應用瘦身,參看 應用瘦身(iOS, watchOS)

五、支持從右到左(RTL)語言

iOS的9帶來了從右到左的語言全面的支持,這使得它更容易為你提供一個翻轉的用戶界面。 例如:

  1. 標準UIKit的控件右到左的上下文自動翻轉。

  2. UIView定義語義內容屬性允許你指定在從右到左的上下文中特定的視圖應該如何出現。

  3. UIImage添加imageFlippedForRightToLeftLayoutDirection方法,該方法可以很容易地在適當時候以編程方式的翻轉圖像。

要了解更多關于翻轉的用戶接口,參看 支持從右到左(RTL)語言

六、應用安全傳輸(ATS)

強制使用應用安全傳輸(ATS)是應用程序和后端之間的安全連接的最佳做法。 ATS防止意外泄露,提供安全的默認行為,并且容易被采納。這也是iOS 9和OS X v10.11中默認開啟的。不管你正在創建一個新的App或者正在更新現有的App,你都應當盡快采用ATS。

如果你正在開發一個新的應用程序,你應當考慮只使用更安全的HTTPS協議。如果你有一個現有的App,從現在開始你應該盡可能多使用HTTPS協議,盡快給應用剩余部分制定遷移計劃。此外,通過高級API的通信需要使用TLS 1.2與前向保密(forward secrecy)。如果你不這樣做,則會報錯。如果你的應用程序需要請求不安全的域名,那么你必須在Info.plist文件中指定這一域名。

七、擴展點(Extension Points)

iOS 9引入了一些新的擴展點(一個擴展點定義了使用規則和提供api來使用當您創建一個應用程序擴展區域)。具體做法是:

網絡(Network)擴展點

  1. 使用包隧道提供者(Packet Tunnel Provider)擴展點來實現客戶端定制的VPN隧道協議。

  2. 使用這個應用程序代理提供者(App Proxy Provider)擴展點來實現一個自定義的客戶端透明的網絡代理協議。

  3. 使用過濾數據提供者(Filter Data Provider)和過濾器控制提供者(Filter Control Provider)擴展點來實現動態、設備內置網絡內容過濾。

每個網絡的擴展點都需要從Apple獲得特別許可。

** Safari 擴展點**

  1. 使用共享的鏈接擴展點,使用戶能夠看到在Safari共享鏈接的內容。

  2. 使用內容阻止擴展點給 Safari 阻止列表,描述你希望在用戶在瀏覽網頁阻止的內容。
    索引維護(Index Maintenance)擴展點來支持應用數據的編制索引,而無需啟動App。
    音頻單元擴展點讓你的App提供的樂器,聲音效果,聲音發生器,這些更多的使用在像GarageBand,Logic,以及其他音頻單位(Audio Units)App。擴展點也為iOS帶來了一個完整的音頻插件模型,讓你在App Store上銷售的自己的音頻單位(Audio Units)。

想了解更多關于創建應用程序擴展,參看 App擴展編程指南

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,251評論 25 708
  • 我知道, 那個遠方也許是遙不可及的, 但是, 那也只是也許, 綻放吧,這世界最美麗的花。 用瞬間的汗水, 散發出永...
    李哲宇閱讀 207評論 0 1
  • 風從海面吹過去,你的裙角在風中扭捏 你說你在南方等著我到來 以是我背上行囊就分開 你說你那邊鮮花還在開 以是我要去...
    6cd5fd747392閱讀 378評論 0 0
  • 哈嘍,大家好 今天是6月23日星期五 聽說,這周六以及下周,中小學生們要期末考了 下周就要放暑假了,小學生們大概是...
    老師課堂閱讀 357評論 1 0
  • 最欣賞的就是自己,當隊長當領導就感覺自己突然間又鮮活了! 欣賞我們隊友的堅持,無論如何都要突破自己,向自己的目標奮...
    f343716a3d91閱讀 213評論 0 0