多任务
在iPad上,你可以通过多任务界面或多指手势快速地从一二应用切换到另一个应用。多任务的特性可以让你同时使用两个应用,通过Slide Over 、Split View或画中画模式。
设计一个符合多任务环境的应用,意味着应用不需要占用过多的CPU、内存、屏幕空间和其他系统资源。
原则
- 为随时可能的打断做准备,并且随时恢复。当应用被打断是应该快速保存当前状态,当用户重新回来时应该看到他们离开时的样子。更多实现细节可参考App Programming Guide for iOS中的Preserving Your App’s Visual Appearance Across Launches
- 确保你的界面兼容显示双状态栏。有几种情况,例如正在通话中、录制声音会在屏幕最上面显示额外的状态栏。如果应用没有兼容这种情况,可能会导致布局的问题。确保你的应用在出现这种情况是界面依然显示良好。
- 暂停活动要求注意力或积极的参与。如果你的应用是一款游戏或媒体播放应用,确保用户在切换到其他应用之后不会错过任何东西。
- 对外部音频有良好的支持。偶尔,你的应用的声音输出可能会被其他应用或系统自己本身打断,例如来电或音乐播放可能会打断你的应用的音频输出。对于主音频输出,例如播放音乐、广播或有声读物,你的应用应该无限期的暂停自己的音频输出。对于较短的打断,例如通知等,你的应用应该临时降低自己音频的音量或暂时暂停播放知道打断结束。更多参考可见Audio
- 在后台完成用户定义的任务。如果你的应用正在执行一个任务,而且不需要用户进行额外的输入,那么在应用挂起之前应该在后台完成该任务的执行。
- 谨慎地使用通知。通知用于告诉用户重要的信息,但要避免过于频繁地打扰用户。更多参考见Notifications
关于iPad上的实现细节可以参考Adoptiong Multitasking Enhancements on iPad
通知
不管用户的设备处于锁屏还是使用状态,应用都可以通过通知及时为用户提供重要信息。每条通知包括应用名称、应用小图标和信息内容。通知可能伴随着声音,可能会在应用图标上现实具体数量。
你可以选择不同的通知类型:
- Banner:当设备正在使用时,会在屏幕上方现实几秒然后就消失。
- Alert:当设备正在使用时,在屏幕上方显示,知道被操作之后才会消失。
在非锁屏的设备上,通过采用3D Touch的按压或往下滑动通知来打开扩展视图。这个视图可以自定义而且四个按钮来对应操作。
通知包括本地和远程两种:
- 本地通知是在当前设备发起和传递给用户。一个代办可能会使用本地通知来告知用户即将进行的会议或日程时间。
- 远程通知,也叫推送通知,是来自于服务器的。
原则
- 提供带有有用信息的通知。注意通知本身提供的信息价值,使用完整的句子、合适的标点符号而且不要缩减信息——因为系统会自动处理这些工作。避免告诉用户起打开应用进行具体的操作,因为一旦通知消失,用户很难记起来。
- 不要同时发送多个通知,尽管用户没有任何的操作。
- 不要包含应用名称和LOGO。因为信息会自动帮忙现实这些内容。
- 通过应用角标(Badges)来补充内容,而不是现实关键信息。因为角标是可以被关闭的。
- 保持角标的更新。通过用户已经阅读的信息应该更新应用的角标。
- 为通知提供声音。当用户离开屏幕时,声音是一种引起用户注意的方式。你的应用可以使用自定义的声音或系统自带的铃声。如果你使用自己的生硬,应该确保它的简短、特别和质量。可以参考Local and Remote Notification Programming Guide中的Preparing Custom Alert Sounds。时刻记住,用户可以选择关闭通知的声音。用户同时也可以选择振动。
- 考虑提供详情界面。一个通知详情页面可以提供更多关于通知的信息,同时用户无需打开APP就能进行快速操作。这个视图应该包含有用的信息、可被是被和感觉是应用外的一个扩展。它同时也可以包含照片、视频和其他内容。
- 提直观的、有意义的操作。一个通知详情视图可以包括四个操作按钮。通过简单的标题名称来描述操作产生的结果。一个通知详情视图也可以提供屏幕键盘来收集必要的信息。
- 避免提供不可恢复的操作。如果你必须提供这样的操作,确保为用户提供足够的信息来避免出现不可预知的效果。
更多关于实现的细节可以参考Local and Remote Notification Programming Guide
打印
你的应用可以使用系统自带的AirPrint技术来进行无线打印图片、PDF文档或其他支持打印的内容。
原则
- 确保打印按钮容易被发现。如果你的应用有导航栏或工具栏,通过提供系统自带的操作按钮来触发打印操作。用户已经习惯了这些按钮和使用它进行打印。你也可以通过自定义按钮来触发这些操作。
- 只有当内容可被打印时才出现打印按钮。当打印不允许时不要出现打印按钮。
- 提供相关的打印选项。考虑下用户在打印内容时可能会操作的选项。可以考虑提供打印范围和打印份数。
更多实现细节可参考Drawing and Printing Guide for iOS和UIPrintInteractionController
快速预览
在你的应用内,可以通过Quick Look让用户预览Keynote、Number、Page和PDF文档,同时也支持图片等其他类型。邮件可以通过Quick Look来预览附件。
原则
- 在当前内容适当地展示内容预览。在iPhone上如果你的应用有一个导航栏,那应该想展示其他界面一样滑入现实预览视图。在iPad或你的应用没有导航栏的情况下,通过一个全屏的包含导航栏的模态视图来展示预览内容。
更多实现细节可参考Document Interaction Programming Topics for iOS和Quick Look
Siri
你的应用可以集成Siri来执行某些任务。
- 音频和视频呼叫app。开始通话和查找通话历史。
- 信息类app。发送信息和阅读接收到的信息内容。
- 提供支付服务的app。发送和请求支付服务。
- 管理照片类app。查找和展示照片。
- Apps that offer transportation services. Book rides and provide ride status information.(此句不知道如何翻译)
- 健康类app。开始、暂停、恢复、结束和取消训练。
- 与CarPlay进行集成。
从你的应用反馈出来的内容会通过Siri来读出来并展示在Siri界面上。如果需要的话,你的应用可以提供自定义内容给Siri进行展示。
原则
- 尽量提供语音驱动的体验,不要要求触摸和看屏幕。因为用户在使用Siri的时候不是经常看着屏幕的。为了扩展的可能性就,让用户无需看着你的iPhone就能完成任务。
- 快速反应和减少交互。你的应用应该在接收到信息之后尽可能快的校验信息和执行任务。当需要额外信息的时候应该提供有效的选项限定选择的范围。
- 把内容呈现在用户面前。从Siri跳转到你的应用应该直接定位到目标页面。不要展示中间界面或内容。
- 相关、精确和合适。应用反馈的内容应该是与用户请求的内容相关和展示用户期望的内容。
- 默认选择最安全和最低成本的选项。
- 通过特定的词汇在提升准确率。你可以通过定义更多yoghurt在请求时使用的词汇来帮助Siri学习更多。这些词汇在你应用里需要唯一。提供的词汇中不要包含与其他应用明显关联的名称、术语。例如“Hey, Siri”。
- 提供范例。给Siri提供语法用于在用户按下help按钮之后,在Siri上面展示。通过这些语法教育用户如何简单有效地通过Siri使用你的应用。
- 确保自定义的界面可以很好地兼容Siri。
- 不要在自定义界面上包含应用的名称和图标。系统会自动帮你显示这些信息。
- 不要展示广告。不要在你的应用使用siri时展示广告、营销或应用内购。
- 不要试图模仿和操控Siri。不要重新生产Siri已经提供的功能。
更多实现的细节可以参考SiriKit Programming Guide
电视提供者(TV Provider)
TV 应用通过系统提供全局访问喜欢的、最近播放、推荐的电影和电视节目。
开始和恢复播放
- 确保平滑地过渡到你的应用。TV应用切换到你的应用时不会显示你应用的启动页面。
- 显示期望的内容。当切换到你的应用时用户期望能马上播放选择的内容。
- 不要询问用户是否需要恢复播放。如果可以恢复播放,应该自己进行。
- 确保为对的用户播放内容。如果你的应用有多个用户的资料,TV应用在接受到一个播放请求时,可以识别其中的资料。
加载内容
如果加载的内容超过两秒,考虑现实句话转。
- 尽量避免加载页面。如果内容加载得很快,那么加载页不是必须的。
- 尽快开始播放。
- 设计黑色的加载页面。
- 最小化加载页的内容。
退出播放
- 显示相关的页面。当用户退出播放时,显示内容的详情页面,用户可查看刚才播放的内容和恢复视频播放。
- 为马上的退出作准备。
单独报名(Single Sign-On)
- 当用户通过系统级别进行登录时,避免显示退出的选项。
- 不同通过调整隐私控制来促使用户进行登出。