
-
探索 WWDC25 上公布的重大更新
观看这场在库比提诺现场录制的全新讲座,深入了解 WWDC25 上发布的主要功能。本讲座将对你团队中的所有成员 (包括设计师、开发者和产品经理等) 皆有助益。
章节
- 0:03:10 - Agenda
- 0:04:03 - The new design system
- 0:19:16 - Build with the new design
- 0:39:53 - Machine learning and Apple Intelligence
- 1:09:03 - What's new in visionOS
资源
相关视频
WWDC25
-
搜索此视频…
大家好哦 谢谢 美好的一天开始了 真喜欢这种感觉 大家好 欢迎来到位于库比提诺 的 Apple Developer Center 我叫 Leah 我是 Apple 的 一名技术布道师 今天 很高兴为大家介绍 WWDC 上的一些重磅发布 可想而知 要讲的内容有很多
但首先 我想详细介绍一下 我们所在的场所
开发者中心 是 Apple Park 的一部分 为今天的活动提供了绝佳的场地 大家可以在不同的区域 协作和交流
这个房间名为 Big Sur 场地设计达到了顶尖水准 它设计用于 为各种活动提供支持 包括现场演讲、工作室 录音和现场直播
这里还有实验室、简报室和会议室 可供我们举办像今天这样的 活动以及许多其他活动
这是全球四个 开发者中心之一 我们在这里举办讲座、实验室活动 和研讨会并接待设计师和开发者 有人之前来过开发者中心吗 太好了 欢迎回来 如果这是你第一次来 我们非常高兴你的到来
现在还有很多人 正在线上参与 大家好 感谢收看
现在 我想为今天的 演讲做个铺垫 今年的 WWDC 有许多 激动人心的重磅发布 我们在 28 个城市邀请 全球各地的开发者齐聚一堂 共同回顾一些最重要的更新
在 WWDC 上 我们发布了 100 多个视频 涵盖各平台 的最新更新和最佳做法 可想而知 有很多内容值得深入探讨
今天 在接下来的 2 个小时里 我们将回顾最重要的更新 让大家能够全面、 深刻地理解新技术 我们希望这些内容 能激发你的灵感 帮助你决定接下来将通过视频 和文档深入学习哪些内容
我的团队非常期待与大家 一起拉开这次活动的序幕 在开始之前 我要向在场的观众 说明几点 如果你们还不知道的话 连接 AppleWiFi 网络 就能轻松全天保持联网 如果需要给设备充电 每个座位 前面的扶手下方 都有电源插座
对于今天所有在线收看的观众 这些演讲是专为 你们准备的特别内容 所以请不要在演讲期间 拍摄视频或进行直播 不过 非常欢迎大家 在活动期间拍照 活动结束后 我们也会发送跟进信息 确保你们不会错过任何内容
说完这些小事 让我们回到正题 我们的议程安排得很满 将回顾 WWDC 上的重大更新 包括新的设计系统、 Apple 智能、机器学习 以及 visionOS
终于 到了大家期待 已久的时刻 让我们来看看日程表 我们准备了 很多精彩的演讲
首先 Majo 和 Curt 将介绍 新设计系统的重大更新
然后 Shashank 将回顾 机器学习和 Apple 智能的 最新进展
之后 我们将稍作休息 大家可以趁机喝杯咖啡 与其他开发者交流 或者活动一下身体 最后 Allan 将分享 visionOS 空间计算 的最新动态 之后 对于在库比提诺现场 参加这次活动的人员 我们将举办一场交流会 大家可以享用一些茶点 与 Apple 工程师和设计师交流 一定会非常有趣
关于日程表就说到这里 请跟我一起欢迎 Majo 上台 为我们介绍新的设计系统
大家好 感谢各位的 到来和观看 我叫 Majo 我是 来自布道师团队的设计师 很高兴能为大家 概括介绍新的设计系统 以及它为 App 带来 的无限可能
稍后 我的同事 Curt 将带大家了解 实现方面的一些细节
在 WWDC25 上 我们公布了 Apple 软件在外观 和风格方面的重大新进展与演变
这是一种协调的全新设计语言 有着更强的连贯性 适应性和表现力
从完全重新设计的 App 图标外观 一直到 App 的 控件结构和布局
这些更新 为跨多个平台打造 App 提供了统一的设计语言 只要针对新的 SDK 进行重新编译 就能拥有这些新的外观
今天 我将概括介绍 Liquid Glass
系统中一些关键组件的更新 以及如何将这种
新的外观和风格 融入你的 App 图标
这些更新的核心 是一种适用于控件和导航元素的 全新自适应材质 称为 Liquid Glass
这套全新材质 能够实时动态地 折射、塑造和 聚集光线
通过以这种方式塑刻光线 控件几乎是透明的 却依然清晰可辨
同时 这种材质如同 轻质液体般有机灵动随形 能对触摸做出流畅的响应 使得各部分
之间的过渡天衣无缝 因为控件会 持续变换形态
当显示菜单时 按钮会自然弹出 过渡效果 清晰直接地体现了 按钮本身与 选项之间的关联
出于类似的设计意图 当你与控件交互时 元素甚至能浮起 并融入到 Liquid Glass 让你可以看到它下方的值
Liquid Glass 有两种类型: 透明型和常规型
透明型 Liquid Glass 始终保持透明 能让下方内容的丰富细节呈现出来 并与玻璃质感 形成美妙的互动效果
为了保证符号和标签清晰可读 它需要一个暗化层 来使下方内容变暗
然后是常规型 Liquid Glass 这是你们 最常用的类型 它具有很强的适应性 能在不同条件下保证内容清晰可读
常规型 Liquid Glass 能感知背景的 明暗 因此它的面板和上方的符号 会在亮色和暗色之间切换 以保持可见 当你使用常规样式时 这种切换会自动进行 而且不受浅色 和深色模式影响
要将 Liquid Glass 融入你的 App 同时保持独特的品牌风格 可以借助常见的系统组件
如使用标签页栏在 App 的顶级区域之间导航
使用工具栏对操作进行分组 并方便在屏幕级别进行导航
使用表单以模态或非模态视图 呈现简单的内容或操作
我将从标签页栏开始介绍 它们让 App 的整体 结构变得一目了然 以支持在不同区域之间导航 而且它们始终可见 因此用户可以 随时轻松访问
标签页栏针对 Liquid Glass 进行了重新设计 它们悬浮在 App 内容上方 引导用户流畅导航
标签页栏采用半透明设计 可以配置为滚动时 先最小化再重新展开 这样既能让内容充分展示 又能让用户始终清楚所在位置
如果你要 更新现有标签页栏 可以利用 几项新功能
例如 新增的搜索标签页 这是一个专门的标签页 让搜索功能触手可及 在 App 的任何位置 都能随时使用
标签页栏还可以显示补充视图 类似于“音乐”App 中的 迷你播放器
系统将补充视图显示在标签页栏上方 并使它们具有一致的外观 如果标签页栏在滚动时最小化 补充视图会向下移动以使两者对齐 从而展示更多内容
由于补充视图 在整个 App 中始终可见 因此请避免将它用于 特定于屏幕的操作 如果混用来自 App 不同部分的元素 可能会模糊层次结构 让用户 难以区分哪些是持久存在的元素 哪些是随情境变化的元素
应该将这些操作放在内容区域中 将它们与所支持的内容放在一起
Curt 稍后会详细介绍如何 将这些更新应用于标签页栏
接下来是工具栏 工具栏沿屏幕 顶部或底部排列 方便用户访问 常用控件 它们还有助于用户 进行导航和确定所在位置 而 Liquid Glass 可以确保 内容始终是视觉焦点
为了使工具栏中的 操作一目了然 建议使用简单易识别的 符号而非文字
在新设计中 使用符号的 相关控件会共享玻璃背景
但是 对于像“编辑” 或“选择”这类难以 用符号清晰表达的操作 请勿使用符号
如果工具栏中 同时包含带文字的控件 和带符号的控件 建议将它们分开放置以避免 混淆或产生意想不到的联想
如果工具栏在 App 中显得拥挤 这正是对操作进行简化、 确定优先顺序和分组的大好时机
对于次要操作 可以使用由省略号 符号表示的 “更多”菜单
对工具栏所做的这些调整让界面 更具可预测性 也更具可操作性
Liquid Glass 的引入带来了 一种新的交互效果 称为滚动边缘效果 在 iOS 版“邮件”中 内容会 在 Liquid Glass 工具栏下方滚动 滚动边缘效果能让内容 上方的按钮保持清晰可见
请记得在 App 中 具有悬浮 Liquid Glass 控件的 所有地方都加入这一效果
不过 如果 App 工具栏中 有多种操作 最好使用硬样式 这种风格能让工具栏 与内容区域形成更明显的 分隔以提高易读性 它在 iPadOS 和 macOS App 中使用较为频繁
色彩能够增强信息传达效果 并彰显品牌风格 然而 如果过度使用 或在不当位置使用色彩 可能会造成视觉干扰 下面简单介绍一下在何处以及如何 有效地为 Liquid Glass 着色
首先 谨慎且一致地使用色彩 仅在强调真正有所帮助的 关键操作中使用色彩 避免单纯为了 彰显品牌风格而添加色彩
例如 一个常见的问题 是如何管理着色背景 如果为工具栏中的每个玻璃质感按钮 都着色 可能会分散注意力 让用户无法专注于内容
相反 应该在 重要的地方即内容区域 呈现品牌色 这种方式让 App 能够 继续彰显独特个性 而不会导致用户 将注意力放在工具栏上
最后 为 Liquid Glass 着色时 请使用内建着色功能 它会生成一系列色调 这些色调会根据 背后的内容 改变色相、亮度和饱和度 同时又不会 过度偏离预期的色彩
此外 它还能根据辅助功能进行调整 例如 对于“降低透明度” 它会让 Liquid Glass 更具磨砂质感 进一步模糊处理 背后的内容; 而对于“增强对比度” 它会添加对比鲜明的 边框来突出元素
我已经介绍了 Liquid Glass 正在从多个方面改变我们在 App 中 导航以及与之交互的方式 另一个关键组件是表单 表单用于 请求特定信息 或呈现简单任务 它们也针对 Liquid Glass 进行了精心的重新设计
可调整大小的表单 会根据停留尺寸展开 停留尺寸是表单 自然停靠时的特定高度 对于最小或中等停留尺寸 表单采用新的嵌入设计 呈现漂浮的玻璃质感 帮助用户保留对原始上下文的感知
对于完整高度 表单会完全展开 玻璃材质会变为 更不透明的材质 以提供专注体验 契合用户更深层次的参与度 Curt 将详细阐述如何 在 App 中实现这一效果
从可用性角度来说 使用表单时要记住 只有当表单支持多个停靠尺寸时 才显示控制柄 因为这能表明表单可以调整大小 另外 即使表单支持手势关闭 也请使用明确的 按钮指示如何关闭
这些组件已针对 新设计系统 Liquid Glass 进行了全面重新设计 以与 Apple 设备边角形成 同心布局 体现硬件与软件之间的微妙关系
因此 你的设计系统和视觉设计 也需要与 Liquid Glass 协调一致 这一点很重要
例如 如果在设计系统中 有任何边角 与整体形状不协调 可能需要调整为 同心形状 这在嵌套容器中尤为常见 例如卡片内的图案 不协调的边角可能造成 紧张感或破坏平衡感 这个系统的精妙之处在于 它会自动计算 相对于容器和 设备的圆角半径 实现无缝整合 Curt 稍后会详细介绍相关内容
最后 Liquid Glass 带来的和谐感、 层次感与灵动感 也融入到了 Mac、iPad、iPhone、 Apple Watch 和 CarPlay 车载 中的 App 图标
系统图标已重新设计 以充分发挥全新语言 及其动态特性的优势
这些图标由多层 Liquid Glass 材质堆叠而成 专为 App 图标而设计 用于打造真正有层次感的设计
这种材质能自动根据 所有外观模式进行调整 如浅色模式和深色模式 此外 还有一系列采用 Liquid Glass 的全新外观模式 其中单色玻璃 有浅色和深色 两个版本 最后 还有新的着色模式 其中深色着色 为前景添加色彩 而浅色着色 将色彩融入背景
要为不同的外观模式 和平台创建这些 富有表现力和立体感的 App 图标 可以使用新工具 Icon Composer 它可以集成到你的现有工作流程 并与你当前使用的 设计工具协同工作 借助它 你可以预览 并尝试所有这些 新材质和效果
以上就是如何开始使用新的 设计系统和 Liquid Glass 我今天介绍的所有功能 均为内建功能 帮助你打造更自然、更灵动、 更具沉浸感的 App 体验 接下来 有请 Curt 上台 为大家展示实现并 让你的 App 在新设计系统中 大放异彩是多么简单 谢谢大家 现在有请 Curt
谢谢 Majo
大家好 我叫 Curt 我是 Apple 开发者 关系团队的技术布道师 很高兴能与大家分享 如何将新设计融入你的 App 我将强化 Majo 提到的核心概念 并演示如何通过代码 让新设计成为现实 我主要以 Apple 开发者网站上 提供的示例项目 Landmarks 为例 这是它在 Mac、iPad 和 iPhone 上的样子 当你使用 Xcode 26 SDK 编译 App 时 会发现整个用户界面 都有变化 许多增强功能 是自动生效的 我将说明这些增强功能 并介绍 iOS 26 和 macOS Tahoe 中的一些新 API 它们能让你进一步自定用户体验 我的所有示例使用的都是 SwiftUI 但 UIKit 和 AppKit 也有对应的 API 我将首先探讨标签页和边栏等 结构化 App 组件的更新 然后介绍工具栏的 新外观和行为 并分享 搜索体验的更新
之后 我将谈论控件 如何借助 Liquid Glass 焕然一新 接着我将对新设计进行总结 说明如何在你自己的 自定 UI 元素中采用 Liquid Glass 最后 我将重点介绍 iPadOS 26 中的一些重要变更
首先从 App 结构说起
App 结构指的是用户在 App 中 进行导航的方式 标签页、边栏和表单等都是结构元素 它们都针对新设计 进行了优化 边栏允许在可能 包含多个路线类别的 层级结构中导航 在 macOS Tahoe 和 iPadOS 26 中 边栏现在采用 Liquid Glass 设计 悬浮在内容上方 在两个平台上 行为是一样的 但我会以 Mac 为例深入讲解 在 Landmarks App 中 内容区域的粉色花簇和沙滩 会在边栏形成反射效果 不过 这里的主横幅 却在边栏边缘戛然而止 如果使内容 位于边栏下方 Liquid glass 就能 呈现横幅的 更多绚丽色彩
为此 只需添加新的 backgroundExtensionEffect 修饰符 这样会在不裁剪内容的情况下 将视图扩展至安全区域之外 我将暂时隐藏边栏 以揭示背后发生了什么 实际上图像会经过 镜像和模糊处理 在保持所有内容可见的同时 将图像色调 延伸至边栏下方
标签页视图提供 持久显示的顶层导航 非常适合用于 关键区域数量不多的情况 通常不超过 5 个
在新设计中 iPhone 上的 标签页栏悬浮在内容上方 你可以将它配置为 在滚动时最小化
为此 只需在现有的 TabView 中 添加 tabBarMinimizeBehavior 修饰符即可 通过设置 onScrollDown 参数 标签页栏会在向下滚动时最小化 并在向上滚动时重新展开
正如 Majo 所说的 现在你可以 在标签页栏上方添加视图了 这适用于 你希望随时能快速访问的视图 如“音乐”中的播放视图
使用 tabViewBottomAccessory 修饰符 可在标签页栏上方放置视图 这样还能利用 标签页栏折叠后 留出的空间
为了响应这一折叠行为
只需从 Environment 中读取 tabViewBottomAccessoryPlacement 然后在补充视图 折叠到标签页栏区域中时 调整它的内容即可
与标签页与边栏一样 新设计也自动 改进了表单 在 Landmarks App 中 创建新收藏时 会呈现 Landmark 选项表单 在 iOS 26 中 部分高度的表单 默认嵌入了 Liquid Glass 背景 以最小高度呈现时 底部边缘会收起 以嵌套在显示屏的弧形边缘内 当表单过渡到 完整高度时 Liquid Glass 背景会 逐渐过渡到不透明状态 并贴合屏幕边缘
表单会直接从触发它们的 按钮中变形呈现 这是用于在 Landmarks App 中 呈现表单的现有代码 有一个工具栏按钮 用于呈现表单 还有一个 sheet 修饰符 定义了表单的内容 只需三步 我就能让内容 从源视图中变形呈现 第一步 引入一个命名空间 将表单和按钮关联起来 第二步 将按钮 标记为过渡的源 第三步 将表单内容 标记为具有缩放过渡 得到的效果是这样的
弹出窗口、警报 和菜单等其他展示元素也能从 Liquid Glass 控件中流畅地滑出 将焦点从操作转移到 它们所呈现的内容上 这一行为是自动实现的 在新设计中 对话框也会自动从触发它们的 按钮中变形呈现 只需将 confirmationDialog 修饰符附加到源按钮即可
接下来是工具栏
在新设计中 工具栏项目 被放置在悬浮于 App 上方的 Liquid Glass 表面上 这些项目会根据下方内容 进行调整并自动分组
当我使用 Xcode 26 编译 Landmarks App 时 自定工具栏项目 与系统提供的返回按钮 是分开分组的
在 Landmarks App 中 Favorite 和 Add to collection 按钮是关联操作
因此 我使用了新的 ToolbarSpacer API 并设置了固定间距 将它们分开放置到自己的组中 这样 在视觉上就清晰地表明了 这些成组的操作是关联的 而“Share Link” 和“Inspector Toggle”等 分开的操作具有不同的行为
ToolbarSpacer 还可以创建 在工具栏项目之间 扩展的灵活空间 “邮件”App 就采用了这种技术 将筛选项目 左对齐 而将搜索和撰写项目右对齐
这些工具栏布局增强功能 适用于 Mac、iPad 和 iPhone 新设计还对工具栏 进行了一些其他改动 新设计在更多地方 采用了单色配色方案 包括工具栏 这有助于减少视觉干扰 突出 App 内容 并提升易读性
可以使用 tint 修饰符 或醒目的按钮样式为图标着色 但同样应谨慎使用色彩 正如 Majo 所说的 对按钮进行着色是 为了传达含义 如行动号召 或后续行动 而不仅仅是为了视觉效果或品牌宣传
在新设计中 自动滚动边缘效果 可确保控件清晰可读 当内容在工具栏下方滚动时 会对内容巧妙地 应用模糊和淡出效果
如果你的 App 在工具栏项目后面应用了 任何额外的背景或变暗效果 请务必移除 否则会干扰这一效果
正如 Majo 所分享的 对于像“日历”App 这样 包含大量悬浮元素的更密集用户界面 可以通过 scrollEdgeEffectStyle 修饰符调整效果的锐度 例如使用硬边缘样式
好了 以上就是关于工具栏的内容 接下来 我将介绍搜索功能 新设计采用了两种 主要的搜索模式 第一种是将搜索功能放在工具栏中 在 iPhone 上 搜索栏位于屏幕底部 便于用户操作 而在 iPad 和 Mac 上 则位于工具栏的右上角 第二种模式是将搜索功能作为 多标签页 App 中的一个专用标签页 我将介绍如何构建这两种模式 在 Landmarks App 中 我将搜索功能放在了工具栏中 当用户可以通过搜索 获得全部或大部分内容时 可以选择在你的 App 中 使用这一展示位置
搜索栏显示在独立的 Liquid Glass 表面上 轻点搜索栏后 它会获得焦点并显示键盘
要在 Landmarks 中应用这一变体 需在现有 NavigationSplitView 上 添加 searchable 修饰符
在此处声明这个修饰符 表示搜索功能适用于整个视图 而不仅仅是其中一列
在 iPhone 上 这个变体会自动进行调整 将搜索栏显示在显示屏底部
根据设备尺寸 及其他因素 系统可能会选择 将搜索栏最小化为按钮 就像“邮件”中那样
当我轻点这个按钮时 一个完整宽度的搜索栏 会出现在键盘上方 如果出于搜索功能 并非 App 体验的 主要组成部分等原因 要显式启用最小化行为 可以使用新的 searchToolbarBehavior 修饰符
在标签页式 App 中通常 从一个专门的搜索标签页开始搜索
正如 Majo 所提到的 在所有 Apple 平台上 App 都采用 这种模式 如“健康”App
为此 请在你的 App 中 添加一个具有搜索功能 并在 TabView 上 添加 searchable 修饰符 现在 如果用户选择这个标签页 搜索栏将取而代之 同时显示搜索标签页的内容 用户可以在这里 与浏览建议进行互动 或轻点搜索栏调出键盘 并搜索特定关键词
在 Mac 和 iPad 上 当用户选择搜索标签页时 搜索栏会居中显示 在 App 的浏览建议上方
这些搜索模式 针对 App 搜索体验 赋予了你更高的灵活性 和控制权
新设计刷新了 按钮、滑块、菜单等控件 在各个平台上的 外观和风格 除了 Liquid Glass 效果外 新设计还让控件 在所有 Apple 平台上风格更统一 使用户在不同设备之间切换时 获得熟悉的体验
带边框的按钮 默认采用胶囊形状 延续了新设计的圆角风格 现在有一个例外 macOS 上的许多小型和中型控件 仍保留圆角矩形形状 以保证水平方向的紧凑性
可使用 buttonBorderShape 修饰符 调整任意尺寸控件的形状
新设计还提高了控件尺寸 在不同平台上的一致性
macOS 中的大多数 控件现在略高一些 这在控件标签 周围留出了更多自由空间 同时增大了 点按目标的尺寸 如果你已有高密度布局 如复杂的检查器 可以使用 controlSize 修饰符 指定更小的尺寸
除了通过更新尺寸和形状 来跨 Apple 平台标准化控件外 新设计还通过新的 glass 和 glassProminent 按钮样式 为 App 中的所有按钮 引入了 Liquid Glass
新设计还使滑块 在 macOS、iOS 和 iPadOS 上 实现了统一 在所有这些平台上 滑块现在支持 带刻度的离散值 你现在可以 设置任意起点 这非常适合用于可供 用户从一个中心默认值 向上或向下调整的值 比如在你常用的播客 App 中 调快或调慢播放速度
iOS 和 macOS 的菜单 也采用了新设计 macOS 还新增了一个特性 图标现在显示在菜单的左侧 与往常一样 创建菜单时 请使用标签 或其他标准控件构造器 现在同一 API 在 iOS 和 macOS 上 能够产生一致的效果
除了对控件的更新外 还有新的 API 可用于 根据新设计调整控件
许多系统控件的边角 会与容器对齐 无论是 macOS 上的根窗口 还是 iPhone 的边框
正如 Majo 所说的 这称为“边角同心性” 我特别喜欢这个动画效果
要构建自动与容器 保持同心性的视图 可以使用同心矩形形状 将 containerConcentric 配置 传递给矩形的 corner 参数 这个形状将在不同的 显示屏和窗口形状中 自动适应容器
采用新设计的 最佳方式是 使用标准控件、App 结构、 搜索展示位置和工具栏
但有时你的 App 可能需要进一步自定 接下来 我将分享如何为 App 构建 自定 Liquid Glass 元素 “地图”充分展示了这一使用场景 它的自定 Liquid Glass 控件 悬浮在地图内容上方 我将为 Landmarks App 添加 类似的自定 Liquid Glass 徽章 标记用户访问过的每个地标 首先 我将创建具有 Liquid Glass 效果的自定徽章视图
要为自定视图添加 Liquid Glass 效果 可使用 glassEffect 修饰符 默认 glassEffect 修饰符 将内容置于胶囊形状中 下方是 Liquid Glass 材质 上方是高亮效果
玻璃效果中的文本内容 自动使用能够动态调整的明艳色彩 以确保在彩色背景下 仍清晰可读
通过为修饰符提供形状 可以自定玻璃效果的形状
对于特别重要的视图 可以通过着色来修饰玻璃效果 与工具栏按钮类似 只能使用着色 来传递含义 而不能单纯出于 视觉效果或品牌宣传目的而使用
与玻璃效果中的文本一样 着色功能也会使用能够 根据背后内容进行调整的明艳色彩
在 iOS 上 对于包含交互元素的 自定控件或容器 可以向玻璃效果 添加 interactive 修饰符
添加这个修饰符后 Liquid Glass 会通过缩放、 弹跳和闪烁来响应交互 与工具栏按钮和 滑块的效果保持一致
现在我已经有了自定徽章 接下来要将多个徽章组合起来 实现相互交互和融合
要组合多个 Liquid Glass 元素 可以使用 GlassEffectContainer 这种分组至关重要 可以保证 视觉呈现精准无误、效果惊艳 Liquid Glass 材质 会反射和折射光线 并从周围内容中提取色彩 这通过对周围内容 进行采样来实现
通过使用 GlassEffectContainer 相邻元素可以 共享一个采样区域 从而避免发生干扰 共享采样区域 对提升性能也至关重要 因为它能减少采样次数
除了控制采样 GlassEffectContainer 还支持变形效果 在 Landmarks App 中 我使用 GlassEffectContainer 对徽章进行分组 在容器内部 当状态为展开时 会显示一组徽章标签 还有一个徽章开关 用于切换状态 当我轻点这个按钮 展开徽章时 会显示自然流畅的 变形动画
有了 GlassEffectContainer 后 构建这个动画 只需三个步骤 第一步 使用 Liquid Glass 渲染标签和开关
第二步 引入一个本地命名空间 第三步 通过 glassEffectID 修饰符 将标签和开关 与命名空间关联 让系统知道 它们是一体的
现在 当我再次轻点按钮时 这些成就徽章 会灵动地隐匿起来
Liquid Glass 效果 提供了突出 App 独特功能 的绝佳方式 在回顾了新设计中 内建的功能和 可自定的选项后 接下来介绍 iPadOS 26 中 即将发生的其他几项变更
iPadOS 26 发生的变更能够 让 iPad 变得更强大、用途更广泛 其中一项功能 是新的窗口系统 它带来了全新的 窗口尺寸调整方式 所有支持尺寸调整的 App 现在右下角 都会显示一个控制柄 就像在 visionOS 中那样 拖动这个控制柄 就能将 App 调整为 悬浮在壁纸上方的窗口
过去可以禁用 窗口尺寸调整功能 一些 iPad App 可能还在这样做 这一功能在 iPadOS 26 中已被弃用 从 iPadOS 26 的下一主要版本开始 所有 iPadOS App 都必须支持尺寸调整
除了尺寸调整 iPadOS 26 还引入了 全新的多任务处理方式 说到多任务处理 有几个重要注意事项需要牢记 多任务处理的核心是场景 一个场景代表 App 界面的一个实例 例如“邮件”允许用户 为每个邮箱打开一个窗口 方便他们整理内容
每个打开的邮箱 都在独立的场景中显示
基于 SwiftUI 的 App 原生自带场景支持 在基于 UIKit 的 App 中 自在 iOS 13 中引入场景以来 它一直是可选的 但从现在开始 场景是必需的 在 iPadOS、iPhone 以及 Mac Catalyst 上都是如此 从 iOS 26 的下一个主要版本开始 只有支持场景的 App 才能正常运行
需要明确的 一个重要差异是 我们鼓励支持多个场景 但唯一的要求是 采用基于场景的生命周期
网上有很棒的指南 可帮助你为 App 添加场景支持
支持尺寸调整 和多任务处理 是让用户能够更加灵活地 与 App 进行交互的绝佳方式 因此 现在正是绝佳时机 你可以提升 iPad App 让它变得更加灵活 并在平台上真正大放异彩
Majo、我以及我们的所有同事 都非常激动能与大家分享 Apple 设计的这一新篇章 我们迫不及待想要看到大家 利用 Liquid Glass 打造出色的作品
接下来 欢迎我的同事 Shashank 为大家介绍 Apple 智能方面的更新 Shashank 有请!
谢谢你
大家好 我叫 Shashank我是 Apple 的 AIML 技术布道师 今天 很高兴能带大家快速了解 我们在 WWDC 25 上 发布的机器学习 和 Apple 智能方面的 最新更新 我还将介绍如何利用这些功能 使你自己的 App 变得更加智能
我们将围绕三个方面展开 首先 我将概括介绍 直接内建在操作系统中的 智能功能 以及如何通过系统框架 利用这些功能 接着 我将介绍如何将 App 更深度地融入到系统中 最后 我将说明 Apple 的工具 和 API 如何帮助你优化 和部署自定机器学习模型 以便在设备端执行
让我们从全局视角开始切入 机器学习和 Apple 智能 是 Apple 操作系统中 众多内建 App 和功能的核心 去年 我们将生成式智能 融入到了 Apple 操作系统的核心 并通过 Foundation Models 为 Apple 智能提供支持 这样便将写作工具、 智绘表情和图乐园 直接内建到了系统中 你可以将这些功能 直接集成到自己的 App 中 例如 如果你的 App 使用系统文本控件 你将自动获得智绘表情支持 你还可以使用新的 API 让智绘表情在文本中 显示在理想位置
在图乐园中 用户可以 使用 ChatGPT 生成图像 并探索油画或矢量图 等新风格 你可以借助 Image Playground 框架 直接在 App 中显示图乐园表单 也可以使用 Image Creator API 以编程方式创建图像
如果你的 App 使用标准 UI 框架来显示文本视图 那么它已支持写作工具 借助写作工具 用户可以通过原地 改写、校对 或总结文本来优化 他们所写的内容这些工具 现在具备更多功能 在 iOS、iPadOS 和 macOS 26 中 用户现在 可以采纳写作工具的建议 改写后 你可以要求它 让文本更温暖、 更口语化、更鼓舞人心
虽然写作工具 在用户选择文本时出现 但如果你的 App 文本较多 你可以通过添加工具栏按钮 让它们更容易被找到
同样 在上下文菜单中 系统会自动添加 写作工具项 如果你使用自定菜单或想要 以不同方式排列这些项 可以使用 API 获取标准项 并将它们放置在理想位置 在 WWDC 25 上 我们还扩大了 Apple 智能 支持的语言范围
你们中的许多人表示希望能 使用为 Apple 智能功能 提供支持的底层语言模型 现在 很高兴地告诉大家 可以直接使用了 这需要用到 Foundation Models 框架 Foundation Models 框架 让你可以直接访问 为 Apple 智能提供支持的 设备端大语言模型 这通过一个便捷且强大的 Swift API 来实现 现在 你可以直接 在 App 中构建先进的新功能 例如 你可以使用这个框架 增强现有功能 如提供个性化 搜索建议
或者 你也可以打造 全新的体验 想象一下 在你的旅行 App 中 即时生成量身定制的行程
你甚至可以使用它 为游戏中的角色生成对话 所有这些完全在设备端进行
我觉得这很酷
由于这个框架 完全在设备端运行 因此能确保用户数据的私密性 用户数据无需发送到任何地方
这些 AI 功能随时可用 并且可以离线工作 无需设置账户 也无需管理 API 密钥 所有一切想用随时都能用
最棒的是 无论发起多少次请求 对你或你的用户来说 都不会产生任何成本
最重要的是 它完全内建在操作系统中 因此不会影响 App 的大小
它在 macOS、iOS、iPadOS 和 visionOS 中提供 可以在所有支持 Apple 智能 的硬件和语言环境中运行 我们来详细了解 这个框架及其工作方式 Foundation Models 框架 让你能够使用一个拥有 30 亿参数的模型 这是一个设备级模型 针对内容生成、总结、 分类、多轮对话等 设备端使用场景 进行了优化 它并非为处理通用知识 或高级推理任务而设计 这些任务通常仍 需要使用服务器级 LLM 我们来了解一下它的工作方式
你可以使用 Foundation Models 框架 向简称 LLM 的 设备端大语言模型发送提示词 然后模型可以根据提示词 进行推理并生成文本
例如 你可以让它编写 一个关于狐狸的睡前故事 模型将返回一个细节丰富、 充满想象力的睡前故事进行响应 这与为系统中的 写作工具等功能提供支持的 通用模型是同一个 让我们回到 个性化搜索示例 看看如何使用 Foundation Models 框架来实现
向模型发送提示词需 3 行代码
首先导入框架 接着创建语言模型会话 然后向模型发送提示词 提示词可以由你提供 也可以由 App 用户提供 你甚至可以根据用户的输入 动态生成提示词 提供提示词后 即可收到响应 默认情况下 语言模型会生成 非结构化的自然语言输出 就像你在这里看到的 这对于人类来说很容易阅读 但可能很难映射到 App 中可能存在的自定视图 为解决这个问题 Foundation Models 框架提供了引导式生成 它的工作方式是这样的
首先我们使用结构体指定 输出应该是什么样子
SearchSuggestions 是简单的 结构体 包含字符串搜索项列表 现在 这个列表更容易 映射到你的视图 但还需进一步处理
对于这个结构体 我们将应用 Generable 宏 借助 Generable 可以轻松 让模型使用 Swift 类型 生成结构化数据 接下来我们指定引导信息
通过引导信息 你可以为关联的类型 提供描述和控制值 在本示例中 我们希望以字符串 列表的形式生成 4 个搜索词 现在 你可以使用 generating 参数传递给模型 输出为可以 轻松映射到 视图的 建议字符串列表
引导式生成 让你能够控制 模型的生成内容 这可以是字符串、 数字、数组 或你定义的自定数据结构 引导式生成采用了一种 名为约束解码的技术 能够从根本上保证 结构的正确性 借助引导式生成 你的提示词现在可以更简洁 只需聚焦于期望的行为 而无需在提示中 包含格式说明 所有这些都有助于提高 模型的准确性和性能
除了你在提示词中 提供的信息 模型还会从自身的训练数据中 提取自己的核心知识 但请记住 模型内建于操作系统中 它自身的知识是固定不变的 例如 如果你询问 现在库比提诺 外面的天气如何 模型无法获取 这一信息 为了应对需要实时 或动态数据的使用场景 这个框架支持工具调用
工具调用
还让你能够 突破文本生成的局限来执行操作 你可以使用工具向模型授予 对天气或日历日程等 实时或个人数据的 访问权限 你甚至可以引用来源 方便用户对输出进行事实检查 工具还可以 在你的 App 中、 在系统中 或在现实世界中执行实际操作 接下来 我们来了解一下 Foundation Models 如何 赋予 App 全新的功能
以手记 App 为例 Foundation Models 可以 根据以往的手记内容 和日历日程 生成个人化的建议 而不是提供通用手记建议 由于所有内容都在设备端运行 因此能确保健康信息等 用户敏感数据的私密性
再以支出管理 App 为例 不再需要繁琐地手动录入了 借助 Foundation Models App 可以直接从文本中 提取消费数据详情 你还可以更进一步 与 Vision 框架相结合 从收据照片或截屏中 提取数据 所有这些都在设备端处理
在效率 App 中 用户可以即时改写冗长的笔记 以使意思清晰明了 或者将会议转录内容总结为 切实可行的要点 这可以节省大量时间 帮助用户专注于真正重要的事情
通过将语音识别 与 Foundation Models 相结合 App 可以支持 自然语言搜索 例如 你可以说 给我找一个 允许养宠物的三居室房子 App 会从你的语音中 提取详细信息 并使用工具调用 简单、自然、快捷地完成搜索
这一切仅仅只是开始 借助这些功能 你可以创造更多精彩
你可以将这些模型 用于许多常见的语言任务 如内容生成、总结、 输入分析等
对于受众中的 高级 ML 从业者 如果你有专业化的使用场景 可以使用适配器训练工具包 训练自己的自定适配器 但请记住 这伴随着重大责任 因为随着时间的推移 Apple 会不断改进模型 因此你需要重新训练适配器 如需了解详细信息 可以查看开发者网站
如果你准备开始试用 Xcode 中的全新 Playground 功能是不错的着手点
只需在项目的 任意代码文件中 添加 #Playground 宏 然后开始编写提示词 模型的响应就会立即 显示在右侧的画布上 就像 SwiftUI 预览功能一样 在这个示例中 画布上同时显示了非结构化生成 和引导式生成的模型响应 Playground 是试用 Foundation Models 框架的绝佳方法 我们建议尝试 多个提示词 找到最适合 使用场景的提示词 Playground 还可以 帮助你快速迭代
总结一下 Apple Foundation Models 是经过 专门优化和压缩的设备端模型 可以在移动设备上运行 由于体量较小 模型的通用知识有限 你可以使用工具调用 来引入现实世界的数据 使用 Playground 功能 你可以轻松 评估和测试提示词 正如示例中所示 当你使用 Foundation Models 构建 App 时 请考虑通过“反馈助理” 分享你的反馈 帮助我们改进 模型和 API
以上就是关于 Foundation Models 框架的内容 我们迫不及待想要看到大家 利用它打造令人惊叹的产品
除了 Foundation Models 你还可以使用其他 强大的机器学习 API
每个都针对特定领域量身定制 Vision 用于理解 图像和视频 Natural Language 用于处理文本 Translation 用于处理多语言文本 Sound Analysis 用于 识别声音类别 Speech 用于 转录音频文字
我们先来了解一下 Vision Vision 拥有 30 多个 API 可用于进行不同类型的图像分析 如今 Vision 又新增了两个 API RecognizeDocumentsRequest API 用于理解结构化文档 DetectCameraLensSmudgeRequest API 用于识别 使用带污渍的镜头 拍摄的照片 我们来更详细地 探讨一下
今年 Vision 对文本识别功能 进行了改进 Vision 现在不仅能读取文本行 还能进行文档识别 它可以对文档结构进行分组 让文档处理和理解 变得简单 例如 如果你有 一份手写的登记表 无需手动输入 姓名和详细联系信息 Vision 会直接为你处理表格 行和单元格 会自动分组 从而减少解析数据的时间 这很酷
此外 今年 Vision 还有新功能 现在 我们甚至可以 检测相机镜头上的污渍 帮助确保用户 拍摄清晰的高质量图像
例如 有人在扫描文档时 可能不小心 用手指弄脏了镜头
这会导致图像模糊 难以处理
污迹检测 API 能发现这种情况 因此 你可以提示用户 清洁镜头或重新拍摄照片 确保始终处理高质量的图像 以上是关于 Vision 框架的内容 现在 我们来了解一下 Speech 框架
今年 我们推出了新的 SpeechAnalyzer API 它是语音 转文本 API 完全在设备端运行 只需几行代码即可使用 新模型比以往 更快、更灵活 SpeechAnalyzer 模型 为备忘录、语音备忘录、 手记等功能提供支持 除了 SpeechAnalyzer SpeechTranscriber 也有更新 它采用了全新模型 支持广泛的使用场景 我们希望创建模型 来支持内容较长、对话形式 且某些讲话人可能 离麦克风较远的场景 例如在录制会议时
我们还希望支持 实时转录体验 既要保证低延迟 又不能牺牲准确性和可读性 同时还要确保语音内容的私密性 我们的全新设备模型 实现了所有这些目标
现在 你可以在自己的应用程序中 支持相同的使用场景
最棒的是 你不必自行购买或管理模型 这些资源在需要时下载 它们保留在系统储存空间中 不会增加 App 的大小 或占用的内存 还会随着 Apple 的改进而自动更新 SpeechTranscriber 目前可以 转录这些语言 未来还会支持更多语言
以上就是关于 平台智能的内容
接下来 我们来看看将系统功能 融入 App 的更多方式
App Intents 让你能够将 App 的核心功能 融入各种用户设备
借助 App Intents 框架 即使用户没有打开你的 App 也能轻松发现并使用 App 提供的功能 它将 App 的操作和内容 与系统体验深度关联 这非常实用 因为你的功能 会显示在视觉智能、 快捷指令和聚焦等位置 App Intents 不仅仅是 另一个框架 还能扩大 App 在整个系统中的触达范围 我们先来了解一下视觉智能 视觉智能 以 Apple 智能为基础 帮助用户 探索周围环境 它最早在 iOS 18 中推出 用户可以通过对准相机 来了解途中看到的咖啡馆 或心仪运动鞋 在 iOS 26 中 这项功能 现在也支持 iPhone 截屏 因此用户可以 对屏幕上 他们喜欢的内容 进行搜索或操作
例如 用户可以 对地标进行截屏 然后进行图像搜索 系统会显示一个搜索面板
他们可以选择所需的 App 来查看其中的结果
然后轻点打开 App 直接进入相关页面
如果他们没有看到所需内容 可以轻点“更多结果”按钮
App 将打开并进入搜索视图 如果你的 App 提供了 图像搜索功能 与视觉智能的集成 会带来一项功能 让用户能够以强大的全新方式 来发现你的内容并与之互动 即使没有打开 你的 App 也是如此 这一集成将 App 搜索功能 扩展到了系统级别 让用户能够从现实世界的 物体或图像无缝 过渡到 App 中的 相关信息和操作
以购物 App 为例 如今的流程是打开 App 导航到图片搜索 然后开始搜索 借助视觉智能 你可以对社交媒体上的 心仪包包或连衣裙进行截屏 并立即启动 App 搜索 这能减少阻碍 让互动变得更自然
接下来是快捷指令 快捷指令让你能够 自动执行重复任务 并将不同 App 的 功能关联起来 今年 通过全新的智能操作功能 我们将 Apple 智能的强大功能 引入到了快捷指令 借助 App Intents App 的操作可以与快捷指令相结合 使用户能够构建 强大的自定工作流程 其中一个亮点是使用模型操作 用户可以利用 Apple 智能模型 获得响应 并融入到快捷指令中 传递文本或设置数据格式 非常简单 只需简单输入几个词 用户可以选择 专用云计算中基于服务器的 大型模型来处理复杂请求 同时保护自己的隐私 也可以选择设备模型 这样无需网络连接 即可处理请求
如果要利用广泛的通用知识和 专业知识 也可选择 ChatGPT
使用模型操作只是 iOS 26 中的众多全新 智能操作之一 除此之外 还有图乐园、写作工具等
接下来是几个其他使用场景 例如 用户可以使用模型 来筛选行程的日历日程
或者总结网页上的内容 如提取每日一词
要利用使用模型操作 首先要通过 App Intents 公开 App 的功能 这样 用户就可以将 App 直接集成到模型驱动的快捷指令 使用快捷指令的用户可以 明确选择模型的输出类型 例如富文本、列表或词典 作为开发者 你需要确保 App Intents 做好接收 这些输出类型的准备 用户可以将 App 中的内容 传递给模型 你可以使用 App Intents 框架 将这些内容定义为 App 实体 这样模型能够 对来自 App 的数据进行推理 这些集成让使用模型操作 成为扩大 App 触达范围的 强大工具
总结一下 App Intents 可帮助将 App 融入整个系统 借助它 你可以 将图像搜索引入视觉智能 向快捷指令公开 来自 App 的内容 让用户能够直接从 Mac 上的聚焦中 运行 App 中的操作
到目前为止 我们已介绍 如何利用系统中内建 且有 ML 和 AI 加持的功能
接下来 我们来探讨如何 将任意模型引入设备 以及与之相关的 所有注意事项 这可能让人感觉有点复杂 但有了 Core ML 就变得简单了 你只需拥有一个 Core ML 格式的机器学习模型即可 这些模型资源包含 有关模型输入、 输出和架构 以及学习到的参数 或权重的说明
有许多公开发布的模型 可供选择 种类繁多 例如 用于音频的 Whisper 用于图像生成的 Stable Diffusion 用于语言处理的 Mistral 等模型 这些模型都适用于 Apple 设备 并针对 Apple 设备进行了优化
在哪里可以获得这些模型呢? 可以直接从 Hugging Face 上的 Apple 页面或 从 developer.apple.com/cn 下载 所有这些模型都专门 针对 Apple 芯片进行了优化 并以 ML 软件包格式提供 因此它们可以轻松集成到 你的 Xcode 项目中 下面介绍如何使用它们
下载模型后 只需将模型拖放到 Xcode 中 即可开始使用 Xcode 不仅能识别你的模型 还能根据模型的输入和输出 生成用于与模型进行交互的 Swift 代码 Xcode 还会在你导入模型后 立即显示所有元数据 让你能够深入了解模型的 结构和功能
如果你拥有一个 计算密集型模型 务必确保根据模型的预测性能 延迟达到理想水平 以确保 App 能够提供 卓越的用户体验 只需点按几下 Xcode 就可以 生成性能报告
总结载入时间、
设备端完成时间 和预测的延迟 即从模型获得响应所需的时间
你还可以检查神经网络引擎 是否支持这个模型 以便实现更优的性能 和更低的延迟 那么 如果你所需模型并非 以 Core ML 格式提供 该怎么做?
假设你或你的数据科学团队 使用 PyTorch 等框架 来训练和微调自定模型 以满足你的特定需求 在你对模型的性能 感到满意后 就可以将模型集成到 App 了 这时候就需要用到 Core ML 工具 它是一个开源 Python 软件包 其中的 API 可用于优化 基于 PyTorch 等各种开源框架 构建的模型 并转换为兼容 Core ML 的格式
最后 对于在 AI 研究领域 处于前沿的开发者 可以充分利用 Apple 芯片 的强大性能 使用最新的研究模型 对自定解决方案进行原型设计 要跟上探索的 最新前沿进展 你需要能够运行大型模型 修改独特的架构 并加入开放 ML 社区 进行学习和协作 我们提供了先进的工具和资源 来帮助你探索这一前沿领域
MLX 是一个开源 ML 框架 专为 Apple 芯片打造 它是一个灵活的工具 既可用于基本的数值计算 也可用于在 Apple 设备上 运行更大规模的 前沿机器学习模型 你可以使用 MLX 通过大语言模型生成文本 通过最新模型生成图像、 音频甚至视频 你还可以直接在 Mac 上 使用它来训练、微调 和自定机器学习模型
借助 MLX 可以在 Mac 上 使用单行命令行调用 对 Mistral 等大语言模型 进行先进的 ML 推理 例如 在这里 它正在通过 LLM 为快速排序算法生成 Swift 代码
MLX 让你能够紧跟前沿研究的步伐 这要归功于 开源社区的努力 他们让这些模型 可以在 MLX 上使用
所有 MLX 软件都基于 宽松的 MIT 许可协议开源发布 核心软件已在 GitHub 上提供 还提供了使用 Python 和 Swift API 构建的一些示例和软件包 MLX 在 Hugging Face 上还有 一个活跃的模型创作者社区 许多最新模型 已发布在 Hugging Face 组织 维护的 MLX 社区中 并且几乎每天都有 新的模型上传
除 MLX 之外 如果你使用 PyTorch 或 JAX 等其他框架 它们也通过 Metal API 在 Apple 芯片上实现了加速 这意味着你可以继续使用 自己熟悉和喜爱的工具 进行模型探索 当你准备好在 App 中 使用这些模型时 可以使用 Core ML 来部署
以上就是关于机器学习 和 Apple 智能的所有最新更新 根据你对机器学习的 需求和经验 选择最适合你项目的 框架和工具 无论要微调 LLM、为 Apple Vision Pro 优化计算机视觉 还是利用有 ML 加持的 API 我们都能为你提供支持
所有这些都 针对 Apple 芯片进行了优化 可以针对机器学习和 AI 工作负载高效而强大地执行
要将 ML 和 AI 融入 Apple 平台上的 App 现在就是绝佳时机 不妨试试 Foundation Models 使用 Xcode Playground 开始探索 将图像搜索添加到视觉智能 并进行试验 探索无限可能 非常期待能看到 你们打造的产品 谢谢 非常感谢 大家今天的参与现在
接下来的时间交回给 Leah
哇 我已经在构思 如何使用 Foundation Models 了 现在 有请 Allan 再次上台 谈谈 visionOS 的最新
谢谢大家
大家好 感觉怎么样? 太好了非常感谢 大家的参与 也感谢所有 在线收看的观众 我叫 Allan Schaffer 我是开发者关系团队的 技术布道师 很高兴能为大家 全面介绍 visionOS 26 以及 WWDC 上发布的更新 我们上个月举行了 WWDC 对吧? 这次大会发布了 visionOS 的重大更新 今年我们有 14 个 专门介绍 visionOS 的视频 所有视频都旨在帮助你 了解所有最新的 空间计算更新 内容涵盖将 Metal 与 Compositor Services 结合使用、 SwiftUI 的更新、 RealityKit 的增强功能、 第三方配件、 新的视频技术等 各个方面 实在太多了 远不是我在接下来 半小时内能讲完的 所以今天的计划是 介绍有关新技术的亮点 还有一些 重大更新 言归正传 我们来深入探讨 visionOS 26 并了解一下今天的议程 首先我将介绍 SwiftUI 中的 一些视体功能 这些功能让你的 App 更具沉浸感 然后还有新的系统功能 例如 Apple 智能 还有让 App 内容 可以在房间内持久显示的 全新方式还有新的 交互方式和配件支持 可用于更精细地控制 按钮输入和触觉反馈 之后我将介绍 沉浸式媒体的一些更新 包括专为 Vision Pro 设计的 一些新型视频格式
今年 我们还推出了许多 新的分享和协作功能 最后 我将向在座 从事企业 App 开发的 人员分享 API 的新功能 好了 我们首先来了解 SwiftUI 中即将推出的 视体功能
我相信你们 之前有所耳闻 但我觉得仍有必要再重复一遍 要利用原生工具和技术 构建适用于 Vision Pro 的 出色 App 最佳方式是使用 SwiftUI 现在你可以利用 SwiftUI 通过一些全新的方式 来构建 3D App 并让它们更具沉浸感 SwiftUI 和 visionOS 26 的 一个主要新增功能 与内容布局有关 许多我们熟悉的 SwiftUI 布局工具和 视图修饰符 现在都添加了一流的对应 3D 版本 以便为视图添加深度和 Z 位置 并进行处理 因此 如果你熟悉 在 SwiftUI 中开发 2D App 现在便可以 采用与过去 一样的方式 创建非常丰富的 3D 布局
我想重点介绍两个修饰符 新增的 depthAlignment 和 rotation3DLayout 首先介绍一下 depthAlignment 这是为常见 3D 布局处理组合操作的 一种非常简单的方式 例如 在这里我们使用 front depthAlignment 自动将这张名片 放置在包含 3D 模型的 空间容器前面 非常简单
另一项 新增功能是 rotation3DLayout 修饰符 这里要注意的一点是 顶部的飞机模型如何 为中间的飞机模型自由旋转腾出空间 实际上 rotation3DLayout 的作用是 允许你在布局系统中 旋转几何体 并将这些旋转信息 反馈给视图 以便 App 能够做出响应
我还想简单提一下 呈现方面的 其他几项更新 你可以启用临时内容 例如有关步道的这张内容卡片 这类内容现在能够在空间容器内呈现 或者作为装饰性空间容器呈现 这适用于菜单、 工具提示、警报、 表单、弹出窗口等 呈现内容还可以穿透 3D 内容 在被遮挡时仍然可见 这有助于在所有情境中 清晰展示
接下来再介绍一项功能 通常窗口和空间容器 在共享空间中 充当 App UI 及其内容的容器 但是借助一项名为 动态边界限制的新功能 可以允许 App 内容中的物体 超出窗口或空间容器的边界 就像在这里 你看到的云朵一样 这有助于你的内容 看起来更具沉浸感
现在换个话题 这不是我的手 现在手势和物体操控 变得更加容易实现 大家知道 对于与虚拟内容的交互 必须让人感觉自然流畅 并贴近现实世界 这些始终非常重要 所以现在物体当然可以 通过简单的手部动作 进行操控 可以用一只手或双手 重新调整方向 可以通过双手捏合和拖动来缩放 甚至可以将物体从一只手 传递到另一只手 现在这些功能均已内建 因此你无需实现 一组复杂的手势处理
你可以根据 App 中的对象 是自定视图 还是 RealityKit 实体 在 SwiftUI 或 RealityKit 中 将这一行为应用于对象 因此 你可以在 SwiftUI 中 使用 manipulable 视图修饰符 或在 RealityKit 中添加 ManipulationComponent 如果要使用 QuickLook3DView 它已经内建你可以直接使用
顺便说一下 说到 RealityKit 现在 SwiftUI、RealityKit 和 ARKit 之间的 契合度更高了 特别是进行了一系列改进后 简化了在 SwiftUI 代码中 与 RealityKit 交互的方式 例如 RealityKit 实体 及其动画现在具备可观察性 这使得在 SwiftUI 视图中 观察变化变得更加容易 有一个改进的 Coordinate Conversion API 你可以在 SwiftUI 中 编写手势处理程序 并将这些手势直接 附加到 RealityKit 实体 现在 Model3D 的功能更加强大 例如它可以播放动画、 载入 USD 变体 或者在模型中的 不同配置之间切换
顺便说一下 我用来展示 这些新 API 的示例 App 名为 Canyon Crosser 你也可以下载 它已发布到以下网站 developer.apple.com/cn
好了 继续我们的议程 接下来是系统功能 刚才 Shashank 向大家介绍了 我们的所有操作系统 在 Apple 智能 和机器学习方面的 诸多改进 这些功能也是 visionOS 不可或缺的组成部分
visionOS 在机器学习 方面最重要的变化之一是 我们现在提供了 无需经过特殊授权 即可访问 神经网络引擎的 API 这意义重大 这让你能够直接通过 神经网络引擎 在设备上运行自己的模型 而不仅仅是在 CPU 或 GPU 上运行
此外 我们还将全新的 Foundation Models 框架 引入了 visionOS 这样你就能直接使用 作为所有 Apple 智能功能 核心所在的 大语言模型等 我们在其他平台上采用的 也是这个框架 因此你可以向位于设备上的 大语言模型发送提示词 这样可以通过引导式生成 来创建结构化输出 我们还为模型 提供了工具调用 它允许模型获取数据 或执行你在代码中 定义的操作
此外 我们还引入了 全新的语音转文本 API 名为 SpeechAnalyzer 它适用于 iOS、macOS 以及 visionOS 它在系统中得到了广泛应用 它已应用于实时字幕、 FaceTime 通话、 “备忘录”App 中的音频转录 现在你还可以 将它引入自己的 App 此外 它还包括一个全新的 语音到文本模型 即 Shashank 提到的 SpeechTranscriber 它速度更快、灵活度更高 非常适合处理 媒体字幕等 当然 整个处理过程 完全在设备端进行
好了 接下来 我们聊聊小组件 小组件是轻量级 App 扩展 提供一目了然的信息 如天气预报 或日历日程 小组件的核心价值 在于为用户 提供一目了然、 相关且个性化的信息 无需打开 App 情境信息就能呈现给用户 作为空间平台 visionOS 让小组件 呈现出新的形态 它们变成了三维物体 与周围环境 融为一体 并且外观的 许多方面 都可以定制 以便与你的空间完美契合
现在 小组件可以放置在 水平或垂直表面上 如墙上、架子、 桌子、台面等 它们会固定在这个位置 并在不同会话中持久保留 即便你离开房间后再返回 或者摘下设备后 重新戴上 它们依然会在留原地 它们俨然成为了你空间的一部分
小组件有多种 尺寸模板可供选择 但在 visionOS 中 这些尺寸对应现实世界的尺寸 这让它们在你所处的房间里 具有实实在在的存在感 如果你正在开发小组件 不妨考虑 它可能会被放在何处 是挂在墙上 放在某人的桌子上 还是其他位置 然后选择一个 在这一情境中显得合适的尺寸
visionOS 独有的 另一项功能是接近感知 这意味着小组件可以 根据用户与它的距离 调整自身的外观和布局 例如 这个运动小组件 当我们走近时 会显示更多详细信息
顺便说一下 有一个好消息 如果你的 iPhone App 或 iPad App 已经包含小组件 那么你就有了一个良好的开端 因为如果你的 App 在兼容模式下运行 小组件将直接迁移到 visionOS 并且它们会自动适应 新的空间特性
好了 以上就是 visionOS 中的几项新系统功能 现在我想聊聊交互 大家知道 手和眼睛是 Vision Pro 的主要输入方式 我们构建 visionOS 时便希望 用户能完全基于 视线的聚焦位置和 直观的手部动作来浏览界面 顺便说一下 我们在 visionOS 26 中 改进了手部跟踪 速度与之前相比提升了高达 3 倍 现在达到了 90 赫兹 这让你的 App 应用和游戏 能够更快地做出响应 而且无需编写任何代码 这是内建功能 因为运行速度就是这么快
我们还新增了一种 仅靠眼睛浏览 网页内容和 App 的方式 我们称之为注视滚动 这是一项很棒的改进 属于轻量级交互 可以与手部滚动 配合使用 你也可以通过 SwiftUI 和 UIKit 中的 API 将它集成到自己的 App 中
visionOS 还支持 蓝牙键盘和触控板 只要这些输入方式 适合你的使用场景 当然也支持游戏手柄 它也可能适合你的使用场景 也许你需要操纵杆、按钮和方向键 或者你可能要将其他平台的 游戏移植过来 而游戏本就是 围绕手柄输入设计的
但在 visionOS 26 中 现在我们新增了另一种选项 那就是空间配件 它们能为用户提供六个自由度的 精细控制跟踪、 触感按钮和触觉反馈 我们通过 Game Controller 框架 新增了对两款 空间配件的支持
第一款是你在这里看到的是 PlayStation VR2 Sense 手柄 由 Sony 打造 当然 它非常适合 高性能游戏 和其他完全沉浸式体验 它配备了按钮、操纵杆、扳机 但最重要的是 它能以六个自由度跟踪 自身在世界空间中的位置和方向
另一款新配件 是 Logitech Muse 它非常适合绘图和雕刻等 精细任务 它有 4 个传感器 支持笔尖和侧边按钮的 可变输入 以及触觉反馈 举个例子 这是来自 Spatial Inc. 的 Spatial Analog 这是一个协作设计工具 支持 USD 模型 和其他 3D 资源 他们在这里使用 Muse 来标注虚拟椅子的尺寸
他们利用了 配件提供的 丰富数据 位置和旋转是 通过 Vision Pro 上的 板载相机 以及配件内建的 传感器共同跟踪的 而且 ARKit 还能让你 获取更多数据 如哪只手握着配件 配件在世界空间 中的移动速度 以及旋转运动
现在 空间配件 还能提供触觉反馈 这始终是一种 出色的反馈机制 它能让交互体验 更加逼真
此外 值得注意的是 可以使用 RealityKit 中的 锚点实体 将虚拟内容锚定到 配件本身 例如 在游戏中 当用户移动手柄时 你可以将一个 游戏棋子 锚定到手柄的握把 下面就是一个这样的例子 这是 Resolution Games 开发的 PicklePro 玩家正在打匹克球 他们将一个虚拟球拍直接 锚定到了手柄的握把 球也是同理 效果 非常出色 位置跟踪 极其精准
好了 以上就是关于空间配件的内容 你可以支持 特殊的空间配件 让用户能够 更精细地控制输入 如果你能提供触觉反馈 让玩家和其他用户 感受到这些虚拟交互 那就更棒了 所有这些功能都通过 Game Controller 框架 以及 RealityKit 和 ARKit 提供支持
好了 接下来 我们谈谈沉浸式媒体 我实际上想 从照片说起 现在 visionOS 能以全新的方式 呈现照片和其他 2D 图像 我们称之为空间场景 空间场景是具有 真实深度的 3D 图像 它们是从 2D 图像生成的 就像这样 这有点像照片的立体版本 当观看者相对于场景 移动头部时 将通过运动视差来 凸显空间场景的深度
这是来自 Zillow 的 一个真实示例 这些是房地产经纪人 拍摄的普通照片 从中可以看出 这种效果适用于任何图像 包括照片、 网上的图像、 老式宝丽来照片 无论你拥有什么图像 它都能营造出这些图像 具有立体深度的感觉 好了 这是第一个方面即空间场景
现在来说说视频 Vision Pro 提供了 全面的媒体格式 或者说它支持全面的 媒体格式 这包括 2D 视频、 3D 立体电影、空间视频 和 Apple 沉浸视频 现在在 visionOS 26 中 我们增加了 对另外三种媒体类型的支持 即 180 度视频、 360 度视频和广角视频 现在 所有这些功能 为沉浸式媒体提供了 全面的选择 但这也意味着 作为开发者 需要为你的 App 考虑许多不同的格式 和不同类型的体验
为了支持你这样做 我们推出了 一种新的 QuickTime 影片描述文件 称为 Apple Projected Media Profile 或 APMP APMP 使用视频文件中的元数据 来识别它们代表的 媒体类型 然后指示视频播放器 对内容进行投影 下面 我通过一个例子 来说明这个概念 在这里 左边是 用运动相机拍摄的 一些广角媒体
呃... 从帧的静态图像中 你可以看到 由于鱼眼镜头 带来了更宽广的视野 画面呈现出 一定的曲度 现在 我来让这两个画面动起来
在右边 APMP 让我们的媒体框架 能够将这段视频 投影到一个曲面上 而观看者的视线正好处于 运动画面的中心位置由于曲面弧度 与相机的镜头轮廓一致 鱼眼效应基本上被消除了 因此 在 Vision Pro 中 作为观看者 你会看到 直线是直的 即使是画面两侧的直线也是如此
好了APMP 具有非常广泛的应用 为了支持它 我们新增了自动转换功能 能将多款相机拍摄的 180 度、 360 度和广角视频转换为 APMP 格式 如 Canon、GoPro、 Insta 360 等品牌的相机
此外 目前已经有大量 现成的 180 度和 360 度内容 所以我们更新了 macOS 上的 AV 转换命令行工具 以支持将 180 度和 360 度 内容转换为 APMP
我想回过头来 简单提一下 Apple 沉浸视频 Apple 沉浸视频是一种专为 Apple Vision Pro 设计的格式 它采用 180 度 3D 8K 视频和空间音频 打造出深度沉浸式 观看体验 现在 在 visionOS 26 中 我们向开发者和内容创作者 开放了 Apple 沉浸视频
内容创作者现在 采用的流程是这样的 你可以使用 Black Magic 的 URSA Cine Immersive 相机 拍摄 Apple 沉浸视频 这是一款非常出色的相机 然后在 DaVinci Resolve 中 进行剪辑和调色 你可以使用 App Store 中 上架的新 Apple 沉浸视频实用工具 进行预览和验证 之后根据你的目标 进行后续操作 假设你要进行流媒体播放 可以创建片段 例如使用 Compressor 等工具 以通过 HTTP Live Streaming 进行分发
现在 对于想创建自己的工具来处理 Apple 沉浸视频的专业 App 开发者 macOS 和 visionOS 中 新增了一个名为 Immersive Media Support 的框架 它让你能够以编程方式 读写 Apple 沉浸内容 我们还有一些很棒的示例代码 名为“创作 Apple 沉浸视频” 可以帮助你入门
好了 希望所有这些 都能帮助你在自己的 App 中 打造出色的播放体验 现在 在 visionOS 26 中 Apple 沉浸视频可以通过 我们所有的媒体播放框架播放 如 RealityKit、AVKit、 Quick Look、WebKit 等 所以你可以将它整合到你可能 正在打造的任何类型的体验中
好了 以上是关于沉浸式媒体的介绍 我从赋予 2D 照片真实深度 和视差的空间场景开始说起 接着我提到了新的 APMP 描述文件以及自动转换工具 正如我所说的 对于创作者和 专业 App 开发者 可以深入探索 Apple 沉浸视频 为观众带来极致的观影体验
好了 接下来 让我们深入探讨一下 共享和协作方面的新功能 空间计算的基石之一 就是能让用户 保持联系 我们实现这个目标的 方式之一就是通过空间自影像 当你佩戴 Vision Pro 时 空间自影像就是 你真实的空间形象 让其他人可以实时看到 你的面部表情 和手部动作 现在 在 visionOS 26 中 空间自影像已结束测试阶段 在头发、肤色、表情、 呈现等方面 进行了诸多改进 还有更多方面的提升
此外 visionOS 26 还为同播共享和 FaceTime 通话 新增了一项功能 名为附近窗口共享 附近窗口共享 让身处同一 物理空间的用户 能够共享一个应用程序 并共同与之交互 这款 App 是 Defenderella 由 Rock Paper Reality 开发 它是一款多人塔防游戏 能在你的空间中 鲜活生动地呈现 与附近的其他人一起玩 这款游戏超级有趣
所有这些都以一种 全新的 App 共享方式为基础 现在 每个窗口的窗口栏旁边 都有一个共享按钮 轻点会打开 共享窗口 再次轻点 会显示附近的人 你可以轻松地 开始与他们共享
当有人发起共享时 系统会确保你的 App 针对在场的每个人 以相同的尺寸出现在相同的位置 由于 App 就存在于 你们所在的空间中 你们可以交谈、 通过指向动作示意 还可以像对待房间里的实物一样 与 App 进行交互 用户甚至可以 互相传递内容
任何参与的人员都可以 与共享窗口进行交互 移动窗口、调整窗口大小 甚至可以拿起来并贴到 共享环境中的 墙壁或其他表面上 或现实世界 中的某个位置 如果有人按住 数码旋钮重新定位 App 会移动到一个 对每个人都合适的位置 现在 如果有人 指向某个物体时 挡住了 虚拟窗口 则内容会淡出 以确保其他人 可以看到这个人
以家具 App 为例 你甚至可以让用户 放置内容 同时仍留在 共享场景中 这是通过 共享场景锚点实现的 例如 如果你有一个 App 可供用户在房间里 放置虚拟家具 它会对附近的所有参与者 显示同一个场所
此外 要提及的一点是 这种共享情境并非 只适用于同一房间内的人员 你还可以通过 FaceTime 通话 邀请远程参与者加入 如果他们使用的是 Vision Pro 会以空间自影像的形式与你同处一室
要提及的另外一点是 由于 Apple Vision Pro 是整个 Apple 生态系统的一部分 因此你可以轻松打造 跨设备的协作体验 我来给大家看一个例子 这是 Demeo 它是 Resolution Games 的 合作式地牢探索游戏 与一群人玩这款游戏很有意思 你可以看到 有一位玩家 正在使用 Vision Pro 享受沉浸式体验 她的朋友们 则通过 iPad 和 Mac 加入 享受游戏带来的乐趣
这种体验非常棒 好了 很棒 以上就是关于同播共享和 附近窗口共享相关更新的简单介绍 当你将同播共享 引入你的 App 时 有几点建议可供参考 首先确保你在设计体验时同时兼顾了 附近和远程参与者 此外 在构建 App 时 要考虑到空间自影像 并思考打造的体验如何 能让用户跨 Apple 平台 保持联系
好了 接下来是最后一个部分 去年 我们推出了首批适用于 visionOS 的企业 API 这涵盖 访问主摄像头、 条形码扫描、 额外提升性能余量 等各个方面 自那以后 这个团队一直在努力 为企业开发者带来更多功能 这是在 visionOS 26 中 为企业开发者 带来的一些新功能 要提及的一点是 由于这些功能提供了 更深层次的设备访问权限 对 API 的访问通过 与开发者账户绑定的 授权和许可证 进行管理 好了 我们来逐项了解一下 首先是 更高的相机访问权限 之前 授权的企业 App 可以访问左侧主摄像头 即左眼对应的摄像头的 视频源 但我们扩大了这一访问权限 现在可以单独访问 左侧或右侧摄像头 或者同时访问两者 以进行立体处理和分析 如果你熟悉这一方面 就会知道 这里说的是 ARKit 中的 CameraFrameProvider API 顺便说一下 我前面提到过 现在 App 可以访问 神经网络引擎 你可以想象 将这些功能结合起来 通过运行在 神经网络引擎上的 自定机器学习模型 来处理摄像头源
此外 在 visionOS 26 中 我们还引入了一项新功能 允许用户在现实世界视图中 选择特定区域 并在独立窗口中 获取这一区域的专用视频流 这是一个新的 SwiftUI 视图 我们称之为摄像头区域视图 举个例子 我将在左侧我想要 捕捉的区域放置一个窗口 也就是压力表上方 现在我可以在做其他工作的同时 密切关注它 甚至可以将这个视频流 共享给远程参与者
顺便说一下 说到共享 刚才我介绍了使用同播共享 实现的附近共享体验 但有些企业目前可能并未使用 FaceTime 通话或同播共享 他们可能有独特的 网络或其他要求 因此 我们在 ARKit 中 为他们引入了新的 API 用于与身处 同一物理空间中的人员 建立共享坐标空间 它被称为 SharedCoordinateSpaceProvider 它的作用是 让多个参与者能够 对齐他们的坐标系 并通过本地网络 交换协作数据 和场景锚点 这是进行项目协作 的绝佳方式
接下来是窗口跟随模式 有时当你处理一项任务时 需要四处走动 但同时可能需要 关注仪表盘 或参考一组说明 如维修说明 或培训说明 具体视情况而定
跟随模式实现了这一点: 它让用户可以选择一个窗口 在他们四处走动时 这个窗口会一直跟随他们 顺便说一下 当你这样做时 不必一直行走 只需四处走动 窗口就会一直跟着你
我要介绍的最后一项内容是 关于数据隐私的 许多企业 App 会处理 敏感信息 如财务数据、 患者病例 或其他专有信息 他们不希望 这些信息 在有人开始屏幕共享时 被录制或被看到 现在 App 实际上可以 隐藏视图内容 防止这些内容在进行截屏、 屏幕镜像等操作时出现这使用 contentCaptureProtected 来实现 它是 SwiftUI 的一个视图修饰符 现在 这些内容 对设备佩戴者来说完全可见 但是会被限制 不能被截屏、被录制 也不能出现在镜像视图 和其他共享视图中
好了 所有这些功能 都已包含在我们的 企业 API 系列中 帮助你创建更强大的解决方案 并为内部 App 打造空间体验
我的介绍就到这里 以上就是 visionOS 26 带来的 一些新功能 重申一遍 我讲了很多 但都非常浅显 还有更多功能 和 API 等着你 去探索 很多内容都包含在讲座视频中 所以请查看我们 在 WWDC 上发布的那些视频 此外 今年我们发布了 很多新的 visionOS 示例代码 它们都可以在以下位置下载: developer.apple.com/cn 好了 我讲完了 接下来的时间交回给 Leah 谢谢大家
谢谢大家
哇 竟然有这么多 重磅 visionOS 更新! 感谢大家抽出时间参加 与我们一起回顾 WWDC 上的重大更新 今天我们介绍了很多内容 我们首先概述了 新的设计系统 以及如何在 App 中 巧妙运用 Liquid Glass 让它们与 iOS 26 和 macOS Tahoe 融为一体 我们还分享了为什么通过使用 SwiftUI、UIKit 和 AppKit 等 原生 UI 框架进行构建 可以更轻松地利用新设计 带来简洁的界面 并跨平台打造一致的体验
然后我们深入探讨了 Apple 智能的最新进展 你可以开始使用 写作工具、图乐园等 有 AI 加持的功能 利用设备端 Foundation Models 通过 App Intents 扩大 App 的触达范围 甚至利用 Apple 芯片的强大性能 运行自己的模型
最后 我们探讨了 visionOS 26 SwiftUI 中的新视体功能 让 App 更具沉浸感 可以通过全新的方式 使用同播共享打造协作体验 借助沉浸式媒体格式 可以打造令人惊叹的观看体验 可以利用空间配件通过 各种方式控制 Apple Vision Pro 正如我今天早些时候提到的 这些话题 只是冰山一角 无论你想更深入地了解 今天讨论的一些主题 还是想探索我们 来不及介绍的其他主题 都可以访问 Apple 开发者网站 其中提供了大量文档、 视频和示例代码
今天晚些时候 我们还将发送一封电子邮件 提供今天讨论的所有内容的 相关资源链接 以便你可以 进一步了解并深入探索这些主题 全球开发者团队 很高兴能在 今年夏季和秋季 与大家交流互动 很高兴能帮助大家 在 App 中采用 这些新系统和技术 如需详细了解即将到来的 与我们会面交流的机会 请查看“与 Apple 会面交流” 和“开发者你好”简报 并访问 Developer App 和开发者网站 对于线上参与的人员 非常感谢大家今天的参与 我们希望有机会再次见到你们 无论是在开发者中心 还是在线上 对于来到库比提诺现场 与我们会面交流的所有人员 请到大厅享用茶点 并与 Apple 工程师 和设计师畅快交流 感谢大家的参与 非常期待看到你们接下来的创作
-