手把手教你写 Workflow(零)

好像就在今天,苹果招安了 iOS 上面非常有趣的一款应用,叫做 Workflow,并在移除了其有关 Google、Telegram 等应用的相关操作之后,将这款应用免费提供下载。之前,这款应用一直是 18 元的价格。

我准备以实例的方式,来介绍一下 Workflow 的基本用法。很多时候,这是一件有关乎 设计 的事情,而 技能 无非是来帮助实现这种设计而已。

下载一个 Workflow

首先给出这个 Workflow 的下载地址: 喝水多多 。这个 Workflow 非常简单,只有三个动作。我推荐你再一次 亲自动手来制作 这个 Workflow,而不是直接使用前面下载的这一个。

这条 Workflow 的功能是:

  1. 给出一个列表,让你选择本次的喝水量
  2. 将你选择的喝水量记录到 iOS 的「健康」中

嗯,换言之,这条 Workflow 可以让你在每一次喝水之后,非常迅速地记录下你这次的喝水量。

如果没有 Workflow

在没有 Workflow 的时候,你要记录100毫升的喝水量,可能需要这样一些步骤:

  1. 找到并打开「健康」应用
  2. 点击「营养摄入」
  3. 找到并点击「水」
  4. 点击右上角的加号
  5. 输入 100
  6. 点击「添加」

这时如果你在锁屏状态或者微信聊天状态,你还需要:

  • 解锁屏幕
  • 重新锁上屏幕

或者:

  • 按下 Home 返回桌面以退出微信
  • 重新打开微信

Workflow 的 5 种打开方式

Workflow 制作完成后,主要有5种方式来打开:

  • Today Widget
  • 桌面图标
  • 系统分享菜单
  • Workflow 应用内
  • 其他应用调用

我会在需要的时候分别提及这几种方式,这里只介绍两种。

Workflow 打开方式一:Today Widget

通过 Workflow,你可以直接借助「今日视图」的 Today Widget 来完成:

  1. 下拉通知栏,或者划动到桌面的 -1 屏
  2. 点击「喝水多多」
  3. 选择本次喝水的量

这样就完成了,Workflow 会自动记录你的选择,并传入系统的「健康」应用中。

而,如果你这时候在聊微信,直接下拉通知栏即可。如果你这时候是锁屏状态,不需要解锁,直接划出左侧的 Today Widget 即可。

Workflow 打开方式二:桌面图标

另外一种记录的方式,如果你把这个 Workflow 放到了桌面,那么可以:

  1. 找到并点击「喝水多多」的图标
  2. 选择喝水量

设计 Workflow

那么怎样来完成这样一个 Workflow 呢?作为一个「自动化」工具,我们首先要认识到「我们想要它来完成什么事情」,这是设计的过程。
在这个 Workflow 中,我们需要这样一些过程:

  1. 显示一个列表供我们来选择
  2. 读取我们选择的喝水量
  3. 将这个喝水量传递给系统的「健康」应用

有时候,我们也会这样想:

  • 输入什么?(喝水量)
  • 如何获取输入?(列表选择)
  • 输出什么?(喝水量)
  • 输出到哪里?(健康)

这个设计的过程并不是一蹴而就的,往往需要你熟悉了「Workflow 能做什么事情」之后,结合当前的需要,涂涂改改好多次才可以最终完成。

List 的使用

当提到「列表」这个词语的时候,我们应该想到「List」这个组件。这种时候往往涉及「多个对象」而不仅仅是一项内容。相关的动作主要是以下几种:

这里,我们使用第一个 List 来制作一个列表,供我们选择需要记录的喝水量。这样就完成了「显示一个列表供我们来选择」。

至于「读取我们选择的喝水量」,我们可以使用 Choose from List 来完成。

这里,Prompt 中的内容会作为「提示」显示于选择列表的顶部。

与其他应用配合

虽然「健康」是一个系统应用,但是依然可以作为「调用其他应用」的代表。Workflow 很棒的地方就在于,它可以自动地调用其他应用并与它们互相传递消息,从而令我们不必要切换于各个应用之间,就可以完成一件完整的事情。
而调用的方式有很多种:

  • 使用预置的动作
  • 借助 URL Scheme 或者 x-callback-url
  • 通过访问对应网站

当然这里的「应用」是广义的,不仅是 iOS 上的 APP,也可能是任何一个 Web API,甚至是一张网页、一个图片、一段文字。

查看一个动作的使用方式

当我们已经设计好了一个 Workflow 但是对实现一筹莫展的时候,不妨随意地看看相关的动作,或许会有收获。
除了根据名字来判断这个动作的作用,我们还可以在动作列表中点击动作来查看描述:

把它添加到 Workflow 中后,点击图标可以看到更为详细的说明:

我们需要记录水的摄入量,因此第一个参数选择「水」。第三个参数是日期,写了「选填」,我们在上图中看到,这个参数不填的时候,默认是会使用当前的日期和时间,正好。

魔法变量

第二个参数怎么填呢?我们要填入的应该是前面列表中「选中」的那个量,这个量要怎么来获得?Workflow 提供一种「魔法变量」,就用于获取这些前面操作过程中产生的数据。

第一步,点击我们需要输入这个数据的地方,在输入法的上方会有一个横条,点击那个魔法棒(图中第三个按钮):

第二步,在出现的界面中选择需要的变量,这里选择 Chosen Item

最后,单位选个「mL」,Done。