本文主要基于苹果iOS9官方文档进行参考翻译,详细可参考
一、iPad多任务增强
iOS9 增强了对 iPad 用户的多任务处理如滑动覆盖(Slide Over),分割视图(Split View)和画中画(Picture in Picture)的体验。该滑过功能允许用户选择一个次要的App并快速地与之交互。分割视图功能让用户能够同时并排开启两个App。画中画功能(也称为PiP)允许用户观看视频的一个窗口上面浮动其他屏幕上的App。
你没有办法帮助用户决定他们什么时候想在屏幕的同时显示两个App,因为这一切都是用户行为你无法控制。尽管如此,我们还需要做一下几件事,来确保用户有一个完美的多任务处理的体验。
-
非常重要的是,App 必须合理地利用的系统资源,以便他可以有效地运行一个 App 的同时,还可以与正常的运行另一个 App。根据内存压力,系统预先退出消耗最大内存的 App。有关应用能耗的一些问题,请参阅iOS App能耗指南。
-
如果你还没有准备拥抱 iOS 9 所带来的变化,那么一定要采用SizeClasses,使你的 App 在分屏视图下看起来不错。想了解更多关于你的 App 应当如何响应用户的分割视图与滑动覆盖,请参考iPad多任务增强。
与分割视图,滑动覆盖一样,用户控制他们是否在看视频的同时以画中画的形式启动另一个应用程序来运行。如果视频播放不是你的应用程序的主要功能,那么请支持画中画。
当用户选择画中画,使用AVKit或者AV Foundation的API。视频播放类中定义的不支持画中画的媒体播放器框架在iOS9中将会被弃用。要了解如何准备画中画视频播放的应用程序,请参看画中画快速指南。
二、3D Touch
3D Touch给用户带来了更多的交互维度。在支持的3D Touch设备上,用户可以从主屏幕上按压App图标可以快速选择App特定的操作。在一个应用程序,人们可以使用按压操作来获得一个项目的预览,在一个单独的视图中打开该项目,并响应相应的操作。
iOS9提供了以下的3D Touch的API:
-
主屏幕快速响应API提供了添加快捷方式到你的应用程序图标,预测用户行为并提供更加快捷的人机交互(参看 UIApplicationShortcut * API,例如UIApplicationShortcutItem)。
-
UIKit中的peek和pop API让你能够轻松地获得额外的内容在你的App(参看UIViewControllerPreviewing,UIViewControllerPreviewingDelegate以及UIViewController中新的方法)。使用peek快速响应API中提供一个press-enabled替换应用程序的touch-and-hold方法(参看 UIPreview * API,例如UIPreviewAction和UIPreviewActionItem)。
-
Web视图peek和pop API,可以启用的HTML链接的预览信息(参看 WKWebView)。
-
UITouch中的force属性允许你添加自定义的force-based到你的App的用户交互中。
不管你采用哪些API,你的App必须在runtime时检查3D Touch的可用性。要了解更多关于支持3D Touch,参看在iPhone上使用3D Touch。对于你的应用程序中使用3D Touch API的例子,参看ApplicationShortcuts中使用UIApplicationShortcutItem和ViewControllerPreviews中使用的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提供了以下可用索引:
-
私有的设备索引(A private on-device index)。每个设备包含一个私有索引,该信息不会与Apple设备间共享或同步。当你创建一个项目可以在用户的设备索引时,保证只有该用户可以查看搜索结果。
-
Apple的服务器端索引(Apple’s server-side index)。服务器端的索引只存储你已经适当地在网站上标明的公开数据。
** iOS 9提供了以下API来帮助你进行内容搜索:**
-
NSUserActivity类包括新的方法和属性,可以帮助你构建项目索引等用户执行的活动内容,例如访问一个导航点或创建和查看内容。几乎每一个App可以利用NSUserActivity API,提供有用的内容给用户。
-
Core Spotlight framework(CoreSpotlight.framework)提供的API,可以帮你添加App的特定内容到设备上的索引,并启用深层链接到你的App。要了解更多关于Core Spotlight framework API,参看Core Spotlight framework参考。
-
Web markup可以让你相关的网页内容成为可搜索状态,并帮助你丰富用户的搜索体验。要了解如何标记你的网站,参看标记网页内容。
此外,加入了Smart App Banners为用户提供了一种简单的方法,直接链接到你的应用程序(了解如何使用Smart App Banners,参看App与Smart App Banners)。 -
通用链接(Universal Links),让你使用标准的HTTP或HTTPS链接替换自定义URL方案。通用链接适用于所有用户:如果用户已经安装了你App,链接直接带他们到你的App;如果他们没有安装您的App,链接将会在Safari中打开你的网站。要了解更多关于通用链接,参看通用链接。
四、应用瘦身(App Thinning)
应用瘦身帮助你开发不同的平台的App提供一个优化的自动安装。应用瘦身包括以下内容:
-
Slicing。纳入资产目录,并为平台标记一个只允许App Store提供安装的标记。
-
按需加载资源(On-Demand Resources)。主机允许附加内容存储在iTunes App Store库中的App获取所需的资源使用异步下载和安装。更多地了解这项技术,参看 按需加载资源指南。
-
Bitcode。当我们提交程序到App store上时,Xcode会将程序编译为一个中间表现形式(bitcode)。然后App store会再将这个botcode编译为可执行的64位或32位程序。
要了解更多有关应用瘦身,参看 应用瘦身(iOS, watchOS)。
五、支持从右到左(RTL)语言
iOS的9带来了从右到左的语言全面的支持,这使得它更容易为你提供一个翻转的用户界面。 例如:
-
标准UIKit的控件右到左的上下文自动翻转。
-
UIView定义语义内容属性允许你指定在从右到左的上下文中特定的视图应该如何出现。
-
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)扩展点
-
使用包隧道提供者(Packet Tunnel Provider)扩展点来实现客户端定制的VPN隧道协议。
-
使用这个应用程序代理提供者(App Proxy Provider)扩展点来实现一个自定义的客户端透明的网络代理协议。
-
使用过滤数据提供者(Filter Data Provider)和过滤器控制提供者(Filter Control Provider)扩展点来实现动态、设备内置网络内容过滤。
每个网络的扩展点都需要从Apple获得特别许可。
** Safari 扩展点**
-
使用共享的链接扩展点,使用户能够看到在Safari共享链接的内容。
-
使用内容阻止扩展点给 Safari 阻止列表,描述你希望在用户在浏览网页阻止的内容。
索引维护(Index Maintenance)扩展点来支持应用数据的编制索引,而无需启动App。
音频单元扩展点让你的App提供的乐器,声音效果,声音发生器,这些更多的使用在像GarageBand,Logic,以及其他音频单位(Audio Units)App。扩展点也为iOS带来了一个完整的音频插件模型,让你在App Store上销售的自己的音频单位(Audio Units)。
想了解更多关于创建应用程序扩展,参看 App扩展编程指南。
网友评论