乐于分享
好东西不私藏

手机App终将消失,聊一聊苹果的App Intents和谷歌的AppFunctions(一)

手机App终将消失,聊一聊苹果的App Intents和谷歌的AppFunctions(一)

AI已经深入了我们生活,我们使用豆包、元宝、千问来问答,使用豆包、WorkBuddy来办公,使用Codex、Claude Code来写代码。

不知道大家有没有发现一个问题:这些AI能力仍旧在手机或电脑的应用里。我们要想使用AI能力,还是得解锁手机、打开某个应用,才能使用。

有没有一种可能,我们拿起手机,就直接使用其AI能力?

比如,我们想给朋友转个账,直接对着手机说用微信给我的朋友A转2000元,然后手机自动调用微信的服务,开始转账,需要身份确认时手机会让你确认。整个过程不需要我们点击打开App、不需要输入任何东西。

再比如

约课,我们直接对着手机说“在xx软件里约一节周日10:00-11:00的某个老师的课”,系统就会自己去操作,遇到某些错误时自动提醒,比如该老师该时间段已经有课,该时间段可选的老师还有...。订餐:直接对着手机说“在xx软件里给我定一杯昨天喝过的咖啡”。

让手机真正成为人的助手,需要什么只要说一句就可以,当不需要它的时候,甚至感受不到它的存在。

上述的能力,利用Agent其实完全可以做到。每个App开放自己的服务能力给系统Agent,当系统收到用户的指令时,交给Agent处理,Agent调用相关App暴漏的服务,自动完成用户的需求,最终告知用户结果。

其实,iOS和Android系统已经在给开发者提供类似的接口了。

iOS的App Intents

把 App 的操作和数据声明给 iOS 系统,让 Siri、Spotlight、快捷指令、Widget、控制中心等系统功能可以发现并调用。

AppIntent / AppEntity        ↓系统生成元数据        ↓Siri / Spotlight / Shortcuts / Widget        ↓perform()

Apple 官方把 App Intents 定义为一个用于“让 App 的内容和操作在 App 外部可用”的框架。”

  1. App Intent:描述一个可执行动作

例如:

  • 开始一次健身训练

  • 播放一首歌

  • 创建一条笔记

  • 发送一条消息

  • 打开某个页面

  • 将商品加入购物车

一个 App Intent 通常需要:

  • 一个本地化标题和描述

  • 必要的参数

  • 一个 perform() 方法

  • 成功或失败的返回结果

import AppIntentsstructCreateNoteIntent: AppIntent {    static var title: LocalizedStringResource = "Create Note"    @Parameter(title: "Content")    var content: String    func perform() async throws -> some IntentResult {        // 调用应用自己的业务逻辑        try await NoteStore.create(content: content)        return .result()    }}

这里的 AppIntent 并不是单纯的 UI 快捷方式,而是 App 对外暴露的一个“结构化动作”。

  1. App Entity:描述 App 中的数据

如果动作需要操作某个具体对象,就需要使用 AppEntity。

例如:

  • 一首歌

  • 一张照片

  • 一条笔记

  • 一个日历事件

  • 一个旅行目的地

AppEntity 通常需要:

  • 唯一标识符

  • 可展示的标题和描述

  • 查询对象,用于根据名称或 ID 找到实体

  • 关键属性

例如用户说:“播放专辑《Kind of Blue》”

Siri 需要先通过 AppEntity 和查询逻辑找到对应专辑,再把它传给 App Intent。

  1. App Enum:描述有限选项

AppEnum 用于定义有限的枚举选项,例如:

  • 任务优先级:高、中、低

  • 邮件状态:已读、未读

  • 播放模式:单曲、列表、随机

  • 商品尺码:S、M、L

它的重点是告诉系统每个选项应该如何展示和解析。

  1. 可以接入哪些系统能力?

根据 Apple 官方文档,App Intents 可以用于:

  • Siri

  • Apple Intelligence

  • Spotlight

  • Shortcuts

  • Widget、Controls、Live Activities

  • Action Button

  • Focus 模式

  • Visual Intelligence

  • 后台 App Intent Extension

其中:

  • App Intent 是基础动作;

  • App Entity 是基础数据;

  • App Shortcut 是为用户提供更直接、更易发现的 Siri 或快捷指令入口;

  • Donation 可以把用户过去执行过的动作和使用过的实体反馈给系统,用于后续推荐。

  1. 前台和后台执行

Apple 官方还区分了:

  • 必须打开 App 执行的 Intent;

  • 可以在后台执行的 Intent;

  • 需要通过 App Extension 执行的 Intent。

因此,App Intent 的实现最好和 UI 层、业务逻辑层解耦。可以把共享逻辑放到 Swift Package 或独立模块中,让主 App 和 Extension 共用。

  1. iOS 版本

App Intents 框架从 iOS 16 开始提供,另外支持:

  • iPadOS 16+

  • macOS 13+

  • watchOS 9+

  • tvOS 16+

  • visionOS 1+

但 Apple Intelligence 相关能力还依赖具体系统版本、设备、地区和功能开放状态,不能简单理解为“iOS 16 设备都支持 Apple Intelligence”。

关于iOS的App Intents我们今天先聊到这里,在下一篇文章中我们来看Android的AppFunctions。

1

END

1

球分享

球点赞

球在看