• 日常搜索
  • 百度一下
  • Google
  • 在线工具
  • 搜转载

使用SiriKit在iOS的用户体验设计方法 (UX)

介绍

包括我们网站在内的许多文章都专注于通过设计出色的移动用户体验 (UX) 来帮助读者创建出色的 ios 应用程序。 

然而,随着几年前 Apple Watch、CarKit 以及今年最近的 HomePod 的出现,我们开始看到更多使用语音命令而不是视觉界面的应用程序和物联网设备。物联网设备(如 HomePod 和其他语音助手)的流行,以及支持语音助手的第三方应用程序的爆炸式增长,催生了一种全新的用户体验设计方法,专注于语音用户体验 (VUX ),或对话式设计 UX。

这导致苹果几年前专注于 siriKit的开发, 并为第三方开发者提供了扩展其应用程序的能力,让用户可以更自然地与他们的应用程序进行对话。随着 SiriKit 更多地向第三方开发者开放,我们开始看到更多应用程序成为 SiriKit 的一部分,例如著名的消息应用程序 WhatsApp 和 Skype,以及 Venmo 和 Apple Pay 等支付应用程序。 

SiriKit的目标是通过一致的会话用户体验模糊应用程序之间的界限,使应用程序能够通过预定义的意图和领域保持直观、功能和吸引力。本教程将帮助您应用最佳实践来创建直观的对话式设计用户体验,而无需视觉提示。 

本教程的目标

本教程将教您通过 VUX 中的最佳实践设计具有听觉吸引力且支持 SiriKit 的应用程序。您将了解:

  • 语音交互设计

  • 应用对话式设计 UX 最佳实践

  • 测试支持 SiriKit 的应用程序

假设知识

我假设您以前使用过 SiriKit,并且有一些使用 swift 和 Xcode 编码的经验。 

语音交互设计

创建引人入胜的应用程序需要经过深思熟虑的用户体验设计——简称 UX 设计。所有移动平台的一个共同基本原则是设计基于可视用户界面。但是,在为用户通过语音参与的平台进行设计时,您没有视觉提示来帮助引导用户的优势。这带来了一系列全新的设计挑战。

图形用户界面的缺乏迫使用户了解如何通过语音与他们的设备进行通信,确定他们在各种状态之间导航时能够说什么以实现他们的目标。交互设计基金会 描述了保护性用户体验的情况 : 

“在语音用户界面中,你无法创建视觉可供性。用户不会清楚地知道界面可以做什么或他们的选择是什么。” 

作为设计师,您需要了解人们如何自然地与技术交流——语音交互的基础。根据斯坦福大学最近的研究,用户通常以与其他人交谈的方式感知和交互语音界面,无论他们是否知道他们正在对设备说话。 

在过去几年中,难以预测人们说话的不同方式导致了机器学习的进步,自然语言处理 ( NLP ) 允许平台通过识别意图和命令的关联域。一个突出的平台是 Apple 的 Siri,以及它为第三方开发人员设计的框架 SiriKit  。

SiriKit 概述

虽然大多数人会认为 Siri 主要专注于非视觉语音辅助,但它与 Apple 生态系统的集成允许用户通过他们的操作系统触发语音交互,无论是 iOS、watchOS、CarPlay 还是 HomePod。 

前三个平台除了声音反馈外,还提供有限的视觉指导,而 HomePod 仅提供声音反馈。在驾驶时使用 iOS 或 CarPlay,该平台将提供更少的视觉反馈和更多的音频反馈,因此用户接收到的信息量是动态的。作为应用程序设计师,您需要同时兼顾这两种交互。 

使用SiriKit在iOS的用户体验设计方法 (UX)  第1张

这意味着 SiriKit 会根据设备和用户的状态在视觉或口头上校准它提供的数量,只要您遵循最佳实践,SiriKit 就会优雅地为您处理所有这些。 

意图和域处理

该框架通过两个主要过程处理用户请求:意图和域处理。 

Intents 通过语音处理 Intents 框架(Intents App Extension)进行管理,该框架接受用户请求并将其转化为特定于应用程序的操作,例如预订汽车共享乘车或向某人汇款。 

使用SiriKit在iOS的用户体验设计方法 (UX)  第2张

另一方面,Intents UI 应用程序扩展允许您在用户提出请求并且您的应用程序想要在完成请求之前进行确认时提供最少的视觉内容确认。

使用SiriKit在iOS的用户体验设计方法 (UX)  第3张

SiriKit 将意图(用户请求)分类为特定类型,称为域。从 iOS 11 开始,第三方开发人员可以利用以下域和交互:

使用SiriKit在iOS的用户体验设计方法 (UX)  第4张

最初似乎选择非常有限,但苹果的理由是,这有助于管理用户的信心和谨慎的期望,同时逐渐让用户学习和建立他们如何与 Siri 交互的知识。这也允许 Apple 和社区随着时间的推移进行扩展,同时模糊位于语音辅助界面后面的应用程序之间的界限。 

利用 SiriKit 的 iOS 开发人员还可以从该平台提供的上下文知识中受益。这包括根据机器学习提供的意图和领域,按会话上下文对句子进行分组。也就是说,Siri 会尝试确定您的下一个命令是属于同一会话上下文还是新命令。如果您说“请预订 Uber 行程”,Siri 会知道您打算在 carshare 域中预订汽车共享行程。但是,该应用程序需要更多信息,例如什么类型的乘车。如果你的下一个命令是“Uber Pool”,它就会知道第二个命令在同一个上下文中。 

利用 SiriKit 可以让您从 Apple 的平台中受益,该平台编排了大量繁重的工作,让您可以专注于重要的事情,即开发价值。话虽如此,您仍然需要成为一名优秀的“Siri 公民”。接下来,您接下来将了解可以遵循的各种最佳实践,以便通过非视觉通信和语音交互创建有益的用户体验。

应用对话式设计 UX 最佳实践 

让我们看看一些可以立即应用于 SiriKit 扩展的最佳实践,以确保您的应用程序为您的用户提供愉快、合乎逻辑和直观的对话语音界面。 

告知用户他们的选择 

第一个指导原则是简洁地告知您的用户他们在特定交互状态下有哪些选项。 

图形用户体验可以毫不费力地为用户提供视觉上下文,例如通过模态对话框,但支持语音的应用程序不存在同样的奢侈。用户对自然语言处理可以处理的内容有着不同的期望。有些人会非常保守,可能没有意识到 Siri 的力量,而其他人可能会从询问一些对 Siri 没有意义的复杂问题开始。 

您需要设计您的用户体验,以便以选项的形式向用户提供有关他们在特定时刻能够做什么的信息。 

使用SiriKit在iOS的用户体验设计方法 (UX)  第5张

您的应用返回的选项应该与上下文相关。在下面的屏幕截图中,联系人有多个电话号码,如果用户没有明确说明要使用哪一个,则应提示用户。 

使用SiriKit在iOS的用户体验设计方法 (UX)  第6张

SiriKit 使用您可以通过 SDK 访问的联系人解析来指导应用程序确定最终用户想要使用的联系人电话号码(如果多个联系人条目具有相同的姓名,甚至可以确定哪个联系人姓名)。根据 苹果的文档:

在解析期间,SiriKit 会通过调用处理程序对象的解析方法来提示您单独验证每个参数。在每种方法中,您验证提供的数据的日期并创建一个解析结果对象,指示您解析参数的成功或失败。SiriKit 使用您的分辨率结果对象来确定如何继续。例如,如果您的解析结果要求用户从两个或多个选项中消除歧义,SiriKit 会提示用户选择其中一个选项。

有关解析用户意图的更多信息,请参阅 Apple 关于 解析和处理意图的文档。 

快速准确

重要的是,在您的应用程序的会话用户体验中,您可以快速响应命令,因为用户期望快速响应。这意味着您应该设计您的交互工作流程,以提供最快的操作集来实现功能完成,而无需不必要的提示或屏幕。 

Apple 鼓励您直接将用户带到内容,而无需任何中间屏幕或消息。如果需要对用户进行身份验证,请直接将用户带到身份验证屏幕,然后确保维护上下文,以便用户可以继续以合乎逻辑的方式完成他或她的操作。Apple 的 人机界面指南 建议您需要:

快速响应并尽量减少交互。人们使用 Siri 是为了方便,并期望得到快速响应。提出有效的、有针对性的选择,以减少额外提示的可能性。 

限制信息量

Amazon Echo 设计指南建议您不要在一次交互中列出超过三个不同的选项,而是首先为用户提供最流行的选项。然后,如果您需要提供三个以上的选项,请在最后提供一个选项以完成其余选项。 

使用SiriKit在iOS的用户体验设计方法 (UX)  第7张

根据用户最有可能使用的选项对选项进行优先排序和排序,并允许用户在不阅读它们的情况下明确调用一些不太受欢迎的选项。您也可以根据用户的历史偏好动态调整突出选项。 

最重要的是,不要表现出偏见或欺骗!也就是说,不要歪曲信息或权衡提示以优先考虑最昂贵的选项 - 例如,首先列出最昂贵的汽车共享乘车选项,最后列出更便宜的拼车选项。这是让您的客户对您的应用失去信心和信任的可靠方式。 

提供会话面包屑 

用户很难在没有视觉提示的情况下确定他们在哪里,即使 SiriKit 可以跟踪当前的上下文,用户也倾向于在做其他事情的同时与 SiriKit 进行交互,例如开车或慢跑。 

因此,您始终需要对命令提供信息丰富的响应,不仅要确认它,还要提醒用户上下文。例如,当用户要求预订拼车服务时,您可以通过说类似“您已使用 AcmeCar 预订了今天下午 5 点的乘车服务”来围绕您的回复提供上下文,而不是仅仅回复“预订”确认的”。 

换句话说,在您的回复中提供足够的上下文信息,以便用户了解已确认的内容,而无需看一眼她或他的手机即可确认用户的意图。 

提供不需要触摸或扫视的体验

随着 Apple 支持 Siri 的设备生态系统从 iOS 和 watchOS 扩展到缺乏视觉界面的设备,重要的是您的响应和交互不需要用户回头看屏幕甚至触摸他们的设备来确认某事。口头回应应该是上下文和足够简洁的(包括提供有限的选项子集),为用户提供适量的信息,让他们继续盲目地与他们的设备进行交互。 

Siri 的强大之处在于用户能够将iphone放在口袋里并使用耳机与语音助手互动,从房间的另一端向 HomePods 喊出新的提醒,或者在驾驶 CarKit 时收听消息——启用车辆。与他们支持 SiriKit 的应用程序交互只需要辅助焦点和注意力,而不是主要的触摸或视觉确认。 

但是,例外情况是,意图在完成请求之前需要额外的安全层和身份验证。 

需要对某些 Intent 进行身份验证

在使用之前确定确实需要特定身份验证和授权的意图非常重要。如果用户询问“天气如何”,您将不需要身份验证。但是,如果用户要求“使用 Venmo 向 Jane 支付 20 美元”,您显然应该要求用户首先进行身份验证。 

SiriKit 管理意图限制,当设备被锁定时,用户需要通过 FaceID、TouchID 或密码进行身份验证,方法是要求您在应用程序的 info.plist 中明确指定哪些意图在锁定时受到限制:

使用SiriKit在iOS的用户体验设计方法 (UX)  第8张

预测和处理错误 

除了使用语音提示来处理歧义,如前所述,您还需要确保预测和处理尽可能多的错误场景。 

例如,当用户尝试向另一个参与者汇款,而该参与者没有所需的电子邮件地址或有多个号码时,您需要处理该问题。SiriKit 提供了一个 INIntentResolutionResult 类,它允许您为尝试解析的适当数据类型设置分辨率: 

func resolveContent(forSendMessage intent: INSendMessageIntent, with completion: @escaping (INStringResolutionResult) -> Void) {
        let result: INStringResolutionResult
        if let text = intent.content, !text.isEmpty {
            result = .success(with: text)
        } else {
            result = .needsValue()
        }
        
        completion(result)
    }

Apple 建议您尽可能尝试从用户行为中推断历史信息,以减少工作流程中的交互步骤数量。查看  INIntentError 文档,其中提供了一组您可以处理的可能错误,例如 interactionOperationNotSupported 或 requestTimedOut。

添加自定义词汇表

SiriKit 支持通过使用 plist 文件 AppIntentVocabulary.plist添加自定义词汇表, 以帮助改善应用程序的会话用户体验。您可以将其用于引导用户以及包含您的应用可以识别的特定术语。 

为您的用户提供示例命令有助于引导您的用户了解您的应用程序的功能,从而帮助您入门。如果你问 Siri“你能做什么?” 它不仅会提示您可能的内置功能,还会提示您使用第三方应用程序。要向全球用户推广您的应用功能,请在您的 AppIntentVocabulary.plist 文件中包含意图示例:

使用SiriKit在iOS的用户体验设计方法 (UX)  第9张您还可以通过向 Siri 提供一系列词汇来帮助 Siri 理解和识别仅适用于您的应用的术语。这些词适用于您的应用程序的任何用户(例如,如果您的应用程序使用特定的消息传递术语),但如果您需要提供特定于用户的术语,请利用 INVocabulary. 在 plist 中,您ParameterVocabularies为自定义全局术语添加一个键,并将每个术语与特定的相应意图属性对象相关联(每个术语可能有多个意图)。 

请参阅 Apple 关于 使用 SiriKit 注册自定义词汇表的文档, 以了解如何创建用户特定的术语。 

测试支持 SiriKit 的应用程序 

最后,从 Xcode 9 开始,您可以通过新的XCUIDevice子类触发 Siri 来方便地使用模拟器测试 Siri XCUISiriService。利用它来测试您的所有意图阶段、自定义词汇表,甚至应用同义词,并确保您设计的用户体验按预期工作。 

出于本教程的目的,克隆 教程项目 repo,在 Xcode 中打开项目,然后运行它以确保它在您的环境中工作。在模拟器运行的情况下,转到Settings启用 Siri 。像在物理设备上一样在模拟器上召唤 Siri,然后说“给 Jane 发送消息”之类的话。 

接下来,在 Xcode 中,打开名为MessagingIntentsUITests.swift的文件,您会注意到单个测试用例方法:

使用SiriKit在iOS的用户体验设计方法 (UX)  第10张您可以添加任意数量的意图来测试。最后,继续运行这个测试用例,您将观察到模拟器触发 Siri 并说出预期的命令。请记住,这不能替代真正的人工测试和处理不同的口音和背景噪音,但它作为自动化工作流程的一部分仍然很有用。

结论

为语音交互设计用户体验是视觉 UX 设计的一个全新世界。开拓这一新领域的设计师和开发人员仍在探索最佳实践和技术。 

这篇文章概述了使用 SiriKit 在 iOS 上进行对话设计 UX 的当前最佳实践。您看到了设计语音界面的一些关键原则,以及作为开发人员与 SiriKit 交互的一些方式。我希望这能激发您在下一个应用程序中尝试语音界面!



文章目录
  • 介绍
  • 本教程的目标
  • 假设知识
  • 语音交互设计
    • SiriKit 概述
      • 意图和域处理
  • 应用对话式设计 UX 最佳实践
    • 告知用户他们的选择
    • 快速准确
    • 限制信息量
    • 提供会话面包屑
    • 提供不需要触摸或扫视的体验
    • 需要对某些 Intent 进行身份验证
    • 预测和处理错误
    • 添加自定义词汇表
    • 测试支持 SiriKit 的应用程序
  • 结论