利用 App Intents 设计提升系统体验
原文
嗨,我叫雷,是 Apple 设计团队的一名设计师。今天,我将介绍如何设计出色的应用程序意图。通过在 Spotlight 中设置五分钟计时器,运行快捷方式来创建新的自由格式板。应用程序意图将应用程序功能呈现给应用程序外部的系统。除了 Spotlight 之外,App Intents 还可以让您的应用获得系统体验,包括操作按钮、挤压、小部件、控件和 Siri。App Intents 也会出现在快捷方式应用程序中的操作,人们可以在那里探索、混合,并添加它们以创建自定义快捷方式。
目前有来自许多应用程序的数百个应用程序意图,以下只是一些在系统中解锁了应用程序之外的新体验的公司。通过这些应用程序意图,您可以在整个 Apple 生态系统中创造比以往更多的体验。但是应用程序意图是什么样的?让我们看一下快捷方式中的 Finder App Intent。应用程序意图包含其功能的摘要,以应用程序开头,后跟动词,并包括人们在运行意图之前需要填写的参数。
应用程序意图可以以新颖的方式与其他意图组合成快捷方式,以创建它们无法单独完成的强大的新流程。随之而来的是,我们更新了关于如何设计应用程序意图以在所有这些体验中良好运行的指南。我们将从您应该从应用程序中显示哪些功能开始。然后我们将详细介绍如何构建您的应用程序意图。让我们从要创建哪些应用程序意图开始。此前,应用程序意图是应用程序中最习惯的任务,在应用程序之外也可能有用。这意味着应用程序预计只有几个应用程序意图。在 iOS 18 中,我们正在更改此指南以超越常见功能。
现在,您的应用程序执行的任何操作都应该是应用程序意图。如果您是第一次创建应用程序意图,你仍然可以优先考虑最常见的,应用程序中的常用功能。然而,重要的是要记住,在丰富的灵活的应用程序意图和不明确的意图之间存在平衡,脆弱的应用程序意图。首先,您可以在“快捷方式”应用程序中找到几种不同类型的意图。以这些动词开头的意图是意图的基本类型,当您决定在应用程序意图中显示应用程序中的哪些功能类型时,应该从这些类型开始。
接下来,避免为同一任务创建多个不同的 Intent。例如,如果您正在考虑创建多个应用程序意图来打开不同的提醒,不要为相同功能的每种类型制作一个。相反,将应用程序的功能构建为灵活的意图,其中提醒包含在参数中。另一点要记住的是避免为特定的 UI 元素创建 App Intents。App Intent 不应专门触发特定的 UI 元素,例如点击“取消”按钮或向下滑动盘片。这是预料之外的,因为它隐藏了Intent的任务,导致意外的行为。相反,制作代表人们通常使用这些 UI 元素访问的底层任务的 App Intents,例如保存草稿或删除草稿。此外,如果您的应用支持实时活动、音频播放,或者录音,创建应用程序意图,使从后台执行这些操作成为可能。这对于不需要进一步的应用内操作的简单意图来说非常有用。现在我们来谈谈如何构建您的应用程序意图,从参数类型开始。
正如我们之前看到的,App Intent 包含参数摘要,其中包含您的 Intent 用于运行任务的输入。例如,此cameraIntent 将您的相机打开到特定的相机模式。由于参数可以更改为任何这些相机模式,确保摘要作为句子始终可读非常重要,无论您选择哪种模式。参数摘要对于人们在快捷方式抽屉中探索时了解您的应用程序意图的作用至关重要,同时在配置参数时也保持可读性。如果您的Intent需要输入,例如选择数字或输入文本,从我们的内置参数库中进行选择。这些最适合简单的任务,例如向提醒添加日期。如果你的参数需要包含基础知识未涵盖的选项,例如打开应用程序中的选项卡之一,使用静态参数来包含这些选项卡选项。选项卡参数现在包含每个选项卡。如果您的参数选项会随着时间的推移而变化,例如当有人将更多笔记文件夹添加到应用程序时包含更多笔记文件夹,创建一个应用程序实体作为动态参数,以确保随着时间的推移使用新选项进行更新。
当参数是可选的时,如果您没有预先指定,意图将不会提出后续问题。这种行为是优选的。例如,让我们看一下这个 Notes App Intent。它显示您在 Notes 中选择的文件夹。如果您运行此 Intent,但没有设置要打开的文件夹,它只会将您的笔记打开到文件夹视图,提供完整的文件夹选取体验,而不是每次运行 Intent 时询问您要打开哪个文件夹。可选参数很棒,因为它们允许您的应用程序意图立即采取行动,即使有人没有配置该参数。但是,如果您觉得您的应用程序意图根本没有帮助,除非每次都询问参数,否则可以将其设置为必填。例如,搜索邮件意图需要文本输入才能使用。在这种情况下,需要文本参数。这意味着每次有人运行你的应用程序意图时,他们将被问到您写的后续问题。保持这些问题简洁明了,就像您在这里看到的那样。现在,让我们看一下应该如何构造一个 Intent 来更改只有两个状态的状态。
例如,Flashlight有一个名为Set Flashlight的App Intent,这是一个设置手电筒打开或关闭的意图。因为意图只会在这两种状态之间改变,Intent 还应该支持切换作为默认参数。如果您不支持将切换作为默认参数,每次有人运行意图时,他们将被要求选择打开或关闭手电筒。相反,默认提供切换开关允许意图打开或关闭手电筒而无需询问。接下来,我们来谈谈何时打开应用程序作为 Intent 的一部分。此前,除非必要,应用程序意图避免将应用程序打开到前台。在 iOS 18 中,打开应用程序现在是一种常见行为,目的是向人们表明 Intent 已在应用程序中进行了更改。作为应用意图的一部分返回打开,让人们可以选择查看更改。作为使用应用意图的一部分,您的应用有两种打开方式。第一个是您的应用程序意图本身是否具有打开特定视图的功能。
例如,这个时钟应用意图打开秒表。当 Intent 运行时,它会打开秒表的时钟应用程序。如果是这样的话,您应该使您的应用程序意图符合打开意图,因为它本质上具有打开您的应用程序的功能。第二种情况是,如果您的应用意图随着应用 UI 的更改而完成或显示搜索结果。例如,如果您有创建自由格式板意图,它应该通过打开应用程序来完成运行,以显示新板已创建。通过直接打开应用程序到应用程序中的新板,无需任何额外的应用内动画,您可以快速开始使用新的自由格式板。此行为在 Intent 中显示为运行时打开切换,默认开启。如果人们想将您的 Intent 用作执行多项操作的快捷方式的一部分,则可以选择关闭此行为,他们可能希望运行多个 Intent,而无需打开流程中的每个应用程序。现在您了解了有关制作出色的应用程序意图的最新指南。
回顾一下,设计强大的应用程序意图,其中包含您的应用程序可以执行的任务。结构意图在许多配置和用例中保持灵活和可读。最后,提供切换二进制参数或在适当时打开您的应用程序的选项。要了解有关应用程序意图的更多信息,请查看这些演讲。谢谢您,我们迫不及待地想看到您的应用程序意图。
核心设计要点和注意事项
核心设计要点
展示应用程序功能:
- 应用程序意图将应用程序功能呈现给系统,以便在应用程序之外使用。
- 应用程序意图应包含其功能的摘要,以应用程序开头,后跟动词,并包括需要填写的参数。
组合意图:
- 应用程序意图可以与其他意图组合成快捷方式,创建强大的新流程。
展示所有功能:
- 不仅限于常用功能,现在任何应用程序执行的操作都应该是应用程序意图。
参数类型:
- 使用参数摘要确保意图可读并明确展示任务。
- 使用内置参数库或静态、动态参数来适应不同任务。
可选参数:
- 如果参数是可选的,意图可以立即采取行动,即使参数未配置。
必填参数:
- 如果任务需要输入参数,确保这些参数为必填。
二进制状态:
- 对于只有两个状态的任务,提供切换开关作为默认参数。
打开应用程序:
- 在必要时,应用程序意图应允许打开应用程序以完成任务或显示结果。
注意事项
避免冗余:
- 避免为同一任务创建多个不同的意图。相似功能应整合为一个灵活的意图。
避免特定 UI 元素:
- 不应为特定 UI 元素创建意图,避免隐藏任务和引起意外行为。
动态参数:
- 对于会随时间变化的选项,创建动态参数以确保使用新选项。
简洁的参数问题:
- 保持参数问题简洁明了,以便用户轻松理解和回答。
默认参数设置:
- 设置合理的默认参数,使用户在不指定参数时,意图也能顺利运行。
应用程序视图:
- 确保应用程序意图在打开应用程序时,直接指向相关视图或结果,减少不必要的应用内动画。
通过以上核心设计要点和注意事项,您可以设计出功能强大、灵活且用户友好的应用程序意图。要了解更多详细信息和最佳实践,请参阅相关演讲和官方指南。
信息来源
内容由MiX Copilot基于大语言模型生成,有可能存在错误的风险。