大多数浏览器和
Developer App 均支持流媒体播放。
-
Platforms State of the Union
Learn about the latest tools, technologies, and advancements to help you create even better apps across Apple platforms, including the all-new visionOS.
章节
- 0:00:00 - Introduction
- 0:04:03 - Swift, SwiftUI, SwiftData
- 0:19:22 - WidgetKit, App Intents, TipKit, AirDrop
- 0:27:03 - Gaming, Camera, Video conferencing, watchOS
- 0:39:41 - Accessibility, Privacy, App Store
- 0:52:21 - Xcode
- 1:00:30 - visionOS
- 1:28:06 - Conclusion
资源
-
下载
♪ ♪
♪ ♪
欢迎来到 2023 State of the Union 我们很高兴能和大家进一步分享 如何利用好我们新发布的功能 新功能包括 iOS 和 iPadOS 端的交互式小组件 提供了更多在系统间呈现 app 的方式 还有 macOS 端小组件新体验 watchOS 10 的精美设计 tvOS 上的连续互通相机 当然还有全新的 visionOS 平台 通过 State of the Union 大家能了解到今年度新发布中 最振奋人心、影响力最大以及最为重要的内容 我们为你准备的东西 可以满足所有这些方面的需求 在进入正题之前 我想花时间讨论一下 优秀的平台和 app 需要具备哪些特点 优秀的平台不仅是一系列框架和技术的集合 它还应该汇聚关键要素 从而创造出真正独特的东西 优秀的平台融合了语言、框架、工具和服务 使得四者无缝协作 让人们以最自然的方式写出最好的代码 优秀的平台提供丰富的 API 帮助你打造与系统深度集成的卓越体验 无论是否打开了 app 都是如此 优秀的平台提供周到的方式 可以让你安全地利用尖端硬件技术 应用到各类产品之中 并且优秀的平台可以与时俱进 以应对新的挑战 从而帮助你快速满足用户需求 平台提供超过 300 个框架 让你能专注于 app 的创新、创意和独特之处 它们不仅能节省时间 或者帮你添加某个特定的功能 当你带着目的去使用这些框架时 你的 app 将完美适应系统 并且扩展系统本身的功能 这就是打造优秀 app 的方法 优秀的 app 能够在合适的时间 合适的位置 向用户突出合适的信息 这个位置可以是共享表、锁定屏幕 Spotlight、Siri 等等 通过将各类功能置于指尖的框架 优秀的 app 能充分利用硬件设备 例如新的传感器、功能强大的芯片等 优秀的 app 能够完成不容出错的任务 比如确保产品安全可用 保护用户隐私 将我们的平台和你们的 app 结合 能交付一致、可靠的产品 不辜负人们的重视和期待 而这一切有着重大的意义 我们热衷打造优秀的平台和优秀的程序 用户可以感受到他们所带来的不同 iOS、iPadOS、macOS tvOS、watchOS、以及现在的 visionOS 有着共同的基础 组成了一个紧密连接的生态系统 使得你可以在所有 Apple 平台 以及所有 Apple 产品上发布 app 你们的 app 对这个生态系统非常重要 它们让用户在日常生活中 实现了设备间的无缝切换 为用户提供了便捷易用的体验 在 Apple 我们常说要打造自己愿意用的东西 这一点最能体现在我们对平台的态度上 因为我们自己也是开发者 在 Apple 我们和你使用同样的语言、工具和框架 今天的内容涵盖很多方面 首先我们将和大家分享 Swift 和 SwiftUI 的最新发展动态 以及如何在全平台上使用它们 来打造精妙的体验 我们会分享如何充分利用硬件功能 如何在你创造的体验中 优先考虑价值 我们会展示 每天都使用的那些强大的工具 现在有了哪些改进内容 最后 我们将深入介绍 最新的 visionOS 平台所采用的技术 并向大家演示如何开发 应用于 Apple Vision Pro 的新一代app 首先 让我们欢迎 Holly 为大家介绍 Swift 的新功能
Swift 是我们日常使用的诸多 API 的基础 它是一种快速、现代、安全的语言 能够指引你写出 高效、表达性强、准确的代码 通过 API 你可以利用库和平台功能 并创建独特的 app 体验 但是有的 API 比较难使用 光是上手就要写很多样板代码 这也是为什么 Swift 要推出一种新的 API 这种 API 更便于使用、准确率更高 是通过 引入宏实现的 这些宏以 Swift 的方式运行 宏是一种注解 能够利用代码结构 在项目中生成新的代码 宏可以作为属性附加到代码上 也可以独立存在 用井号键做前缀进行定义 宏让 API 就像 Swift 语言的的一部分一样 而且仅需一个注解 就有多种方法来使用新的 API 宏在 Xcode 中变得更加真实有用 生成的代码就像项目的一部分一般 我来给大家展示一下 我创建了一个 URL 宏 用于检查有效的 URL 字符串 由于宏可以生成普通的 Swift 代码 可以用 Xcode 中的〝扩展宏〞功能 查看它具体可以做什么 这个宏看上去十分简单 它调用了 URL 的初始化器 并强制解包了结果 URL 宏的功能远不止于此 它还检测出编译时字符串为有效 URL 例如 URL 不能包含空格 因此如果我在 URL 中添加空格 宏就会跳出一条自定义错误消息 以及修改建议 点击可以自动移除字符串中的空格 通过这一功能 原本在 app 运行时出现的错误 转化成了编写代码阶段的反馈 使得我马上能够修正错误 所有的宏都具有自定义反馈的功能 这样可以帮助你编写正确的代码 附加宏的功能更加强大 能够给已经写成的代码增加新功能 让我们来看一看附加宏能做什么 这里有一个叫 fetchContent 的函数 能够在异步任务完成后执行处理程序 但是我现在想用 async/await 我就不用再加上一个 fetchContent 函数 只需要把 AddAsync 宏附加上去即可 就这么简单 现在在我调用 fetchContent 函数时 无需通过处理程序就可以等待结果了 和其它 API 一样 我可以在宏上使用快速帮助来查看文档 而如果想要知道工作原理 还可以设置断点 运行代码 进入异步函数 Xcode 会在源代码编辑器中展开宏
这个功能很酷 它让秘密无影遁形 在调试的时候查看展开宏 能够让我看到幕后的原理 使我了解代码的执行过程 你可以编写自己的宏 扩展 Swift 语言 从前要做到这一点 只能在 Swift 编译器添加新功能 由于 Swift 是开源的 开发者早已实用宏 来构建一些常见的语言功能 包括自动生成断言失败的描述 提供可自定义的默认协议一致性 诸如此类 而这个列表还在不断壮大 今年推出的新 API 中 你也将看到许多宏的身影 通过 Swift 软件包 你可以使用社群成员编写的宏 也可以把你的宏分享给其他人
通过宏和其它语言进展 使得 Swift 能够被更多项目采用 让我们来谈一谈 那些不是用 Swift 编写的代码 自诞生以来 Swift 就提供 与 C 和 Objective-C 的双向互操作性 你可以逐个文件或逐个模块地 将 Swift 引入项目中 而无需重写整个代码库 Swift 将把互操作性拓展到 C++ Swift-C++ 互操作性 可以让你在同一项目中使用两种语言 并且无需搭建桥接层 你可以在两种语言之间共享类别、函数 甚至是特化模板 例如向量 只需设置编译器标志就可以 在 Swift 中使用 C++ 将消除代码中未定义行为的根源 如在变量初始化之前使用它们 桥接层效率很高 在 Swift 和 C++ 代码间形成本地调用 额外资源占用最少 Swift-C++ 互操作性 已经在开源项目中得到了应用 这有助于 Swift 编译器实现自举 能够用 Swift 来实现 Swift 这让我非常激动 写出安全、表达性强的代码是 Swift 的基本目标 这些目标根植于 Swift 自带的库之中 在 SwiftUI 里这一点尤为明显 下面请 Josh 为大家介绍 在所有苹果平台上构建现代用户界面 最好的方式就是使用 SwiftUI SwiftUI 可以帮助你用更少的代码 写出更好的 app 从而让你集中精力 开发 app 的与众不同之处 它让你重用界面代码的能力最大化 Crunchy Bagel 开发的健康习惯 app Streaks 就是一个很好的例子 团队在构建 iOS 小组件时 第一次使用了 SwiftUI 后来他们把这组代码分享给了 watchOS 端的 app 并增加了动画作为补充 现在他们已经把这组代码 整合到了 iOS app 上 这种逐步采用的方法 让团队按照自己的节奏来分享 UI 代码 并且从已有的 app 中了解 SwiftUI 的优点 SwiftUI 功能强大 还能帮助 app 实现复杂界面设计 例如 iPad 端的最新 Logic Pro Final Cut Pro 等 在你的 app 中采用 SwiftUI 能够帮助你做好准备 构建新一代用户界面 可以用 SwiftUI 构建的内容与日俱增 与往年一样 今年发布的新功能 集中在影响力高 开发者呼声最强的领域 例如 在 Swift Chart 支持饼图和选择功能 全新的检查器 API 扩展 MapKit 支持功能 包括 Overlays、Look Around 等等 这些提升涵盖诸多功能 多数集中在改进动画效果方面 改进动画效果非常重要 因为设计精良的动画能让界面便于使用 通过提供反馈 动画能让用户知道到正在发生什么 动画也能让用户确认 一项任务已经成功完成 正因如此 SwiftUI 从一开始就配备了一些高级功能 比如可逆、可中断和可取消的动画效果 今年 SwiftUI 进一步增强了动画功能 我们从动画移动的方式入手 动画通常是由用户手势触发的 现在 SwiftUI 能够自动识别手势速度 并将其转移为动画 还能带来平滑自然的过渡效果 现在的动画默认使用基于弹簧的运动 仅使用两个简单参数就可以进行配置 也就是持续时间和弹跳 SwiftUI 能使用 SF Symbols 里的 最新动画效果 让 app 中的图标变得更加生动 当你需要构建多部分动画时 可以使用 SwiftUI 的 AnimationPhase 这是一个新的API 能帮你生成复杂的动画效果 而且只需要寥寥数行代码 为解释 AnimationPhase 这样的新 API 我做了一个演示用的 app 灵感来源于 Apple Park 的美景 这款 app 提供了一种宁静舒缓的体验 用户可以在这里创建户外空间 为来访的小鸟提供食物和水 为了不遗漏一只新来的小鸟 我在列表顶部加入了一个提醒 让我们切换到预览模式看一下这个视图 我希望能添加一些动画效果 把这个 SF Symbol 突显出来 首先我会添加一个枚举 定义自定义动画的不同状态 然后通过 PhaseAnimator 包装视图 这个新视图能在一组状态间 自动进行动画处理 最后 在 .highlighted 动画阶段 我会对图标进行缩放和旋转 看上去效果不错 如果背景能和图标一起动起来 我想效果会更好 所以我要再添加一些修饰符
为了实现更高级的动画效果 今年 SwiftUI 全面支持关键帧技术 这个 API 功能强大 能让我对任何东西进行动画处理 包括基于 SwiftUI 的最新 MapKit API 的属性 关键帧能够让你在动画的特定时间内 定义多个属性的值 并让 SwiftUI 插入中间值 这里我用关键帧对地图相机进行了处理 做出了访问 Cupertino 各类地标的 动画效果 关键帧技术能让你定义不同属性的运动 我们可以对地图相机的俯仰角、航向 和位置 进行独立的动画处理 实现平滑连续的运动效果 从 Cupertino 一直拍摄到 Apple Park 利用 SwiftUI 动画功能打造 app 使用感 从未像今天这样简单 接下来我们探一探数据流 通过 SwiftUI 构建 app 时 你可以选择几个不同方式 把数据传递到视图中 SwiftUI 有着一系列属性包装器 用于管理本地视图中使用的数据 并引用其他位置的数据 今年数据流变得更加简单 你只需要关注 @State 和 @Environment 想把模型导入 SwiftUI 你可能会写一段类似这样的代码 遵循 ObservableObject 协议 为每个属性添加 @Published 属性包装器 Swift 推出的新宏 也就是 Observable 宏 让这个过程大大简化 只需在类上注释 @Observable 即可 所有公开的属性都会自动发布 在 SwiftUI 视图中使用 Observable 宏时 无需使用属性包装器来更新视图 只需直接引用变量即可 这样一来 你编写的代码更少 并且在默认情况下可获得快速 准确的行为 Observable 宏可以让 SwiftUI 跟踪每个字段的访问情况 因此只有当视图中特定属性发生变化时 视图主体才会被重新评估 如果修改了一个没有被视图使用的字段 就不会发生任何失效操作 现在当把模型连接到视图时 你可以像使用 SwiftUI 其它部分一样 用最自然的方式编写出正确的代码 SwiftUI 曾是为 Swift 设计的 新一代框架的开端 但是 Swift 本地框架的优势 不仅局限于 UI 代码 Core Data 长期为数据管理提供工具 但它的设计诞生于 Objective-C 时代 它不能充分利用 Swift 提供的功能 许多人一直在寻求Swift 的本地解决方案 并用它来管理数据 希望这个解决方案支持所有 Swift 功能 让我向大家介绍 SwiftData SwiftData 是一个用于数据建模 和管理的框架 它是基于 Core Data 验证有效的 持久层构建的 但是重新设计和构思了 API 以便适应 Swift 和 SwiftUI一样 SwiftCode 专注于代码本身 不依赖外部文件格式 通过 Swift 的新宏系统 SwiftData 可以提供简化的 API 在 Swift 上定义模型 从前你可能会使用常规的 Swift 类型 编写这样一段代码 如果用 Core Data 来进行管理 接下来就要在 Xcode 模型编辑器中 对这一模型进行重新定义 但现在有了 SwiftData 你只需要在类上注释 @Model 宏即可 短短一行代码包含了很多功能 包括自动启用持久化 iCloud 同步 撤销和重做等 你还可以细化这些自动化行为 只要在属性上注释附加属性就能做到 例如指示在所有实例中值必须为唯一 SwiftData 使用 Codable 协议 来理解结构体和枚举 使你能利用友好的工具进行数据建模 这些类型在底层数据存储中完全建模 使得你可以进行快速高效的查询 复杂结构数据也不在话下 要将 SwiftData 与 SwiftUI 集成在一起 也非常简单 我们用新的 Observable 宏 驱动 SwiftUI 视图更新 构建了我们的演示 app 每当我看到新的小鸟 界面就会更新 但是我的修改内容无法保存 供下一次运行使用 通过导入 SwiftData 我就可以轻松添加持久化功能 把现有类中的两个 Observable 宏 替换成 SwiftData 的 Model 宏 这样我的模型就生成好了 我要在 app 的根目录添加一个修饰符 来设置 SwiftData 的容器 在创建新的后院之后 我会把它插入模型上下文中使之持久化 最后我将把 BackyardList 视图连接到 持久化数据 使用新的 @Query 属性包装器 能非常轻松地实现这一点 由于现在可以加载已保存的数据 我可以删除在进行原形设计阶段 所使用的默认样本数据 开始测试之前 我们来更新一个我一直在开发的小组件 我会用同样的方法来设置容器和查询 启用 app 共享容器后 通过使用相同 API 的小组件 SwiftData 可以自动直接访问我的数据 现在后院的数据就被 SwiftData 持久化了 通过 @Query 可以将数据传给视图 先前我已经在数据库中填充了一些 初始数据 所以你现在就可以看到一些小鸟 如果我添加一个新的后院对象 列表上会自动将其添加 不需要额外进行操作 除了持久化 SwiftData 能做的还有很多 包括支持撤销和重做 也不需要进行额外操作 不难发现小组件上显示的后院 和我们刚才创建的一样 从中可以看出使用 SwiftData 进行 数据保存和恢复有多么简单 SwiftUI 和 SwiftData 默契搭配 帮助你打造吸引用户、功能强大的 app 两者为由 Swift 支持的新开发方法 奠定了基础 通过这种方法 你将节省编写样板代码的时间 从而有更多时间去构建想法 接下来 Jonathan 会为大家展示 如何运用这类技术 通过全新的方法 让你的 app 在系统中脱颖而出 十分高兴能和大家聊四种新的 app 体验 WidgetKit 可以帮助你 在系统的多种位置中呈现内容 App Intent 可以将 app 功能集成到系统 而且更加连贯无缝 通过 TipKit 你可以在 app 中直接呈现美观的贴士 使用 AirDrop 你可以让用户更加便捷地 同附近的人分享内容 让我们从 WidgetKit 谈起 小组件可以突出展示 app 的重要信息 让用户在日常使用 app 时 可以更轻松地了解和获取信息 小组件原先只在主屏幕上使用 现在被应用到了更多位置上 这是为了进一步提升体验 让用户随时随地使用小组件 今年 小组件的功能更加强大 为 iOS 17 完全重建 app 后 仅需简单改变几处 在 iPhone 的 StandBy 功能里 你的小组件就能呈现赏心悦目的效果 这一功能中小组件可以放大至屏幕边缘 而且移除了背景 因此他们并排呈现时 会有非常惊艳的效果 这个功能也将登陆 iPad 的锁定屏幕 同样可以放大至屏幕边缘 同样也移除了背景 这些小组件将有统一的视觉呈现效果 可以和锁定屏幕完美融合 小组件将以全色彩的形式登陆 macOS Sonoma 的桌面 打开新窗口后 小组件将与背景色融合 现在通过新的交互性支持 你就能够打造使用性更强的小组件了 通过轻触就能完成的简单的操作 比如勾选提醒事项 如今可以直接通过小组件来做了 小组件功能的更新 是通过基于 SwiftUI 的架构实现的 小组件的代码异步运行 用来生成内容 构建的 SwiftUI 视图将被保存到档案中 当小组件要被调用时 可以加载档案 在后台进行渲染 然后将其作为系统 UI 的一部分显示 用户点击某个按钮后 将会再次运行扩展程序 来处理用户操作 并且更新小组件的 UI 这一架构使得 iPhone 小组件 能在 Mac 端无缝展示 得益于连续互通的魔力 小组件档案能够发送到 Mac 端 而用户交互操作能被发送回 iPhone 上 进行处理 让现有小组件实现这一功能也非常简单 只需识别小组件背景 更新内边距 使用 WidgetKit 提供的默认值即可 SwiftUI 的堆栈式布局 可以让系统根据环境自动调整 小组件的颜色和间距 在小组件中添加 SwiftUI Button 或 Toggles 就可以轻松实现交互性 新的支持能从控件中触发 App Intent 从而按需启动扩展程序 一旦小组件的内容更新 系统会触发转场动画 看上去就像 Keynote 软件中的 神奇移动 一样 被移动的元素会滑到新的位置上 被新添加或删除的元素则会淡入淡出 你也可以使用标准 SwiftUI 转场 API 进一步自定义以达到你想要的转场效果 把这些新功能加入到现有的小组件里其实非常简单 让我们来看一看 演示 app 里的一个小组件 是用来追踪后院发生的事件的 第一个步骤就是识别背景 在这个小组件视图中 我们可以看到背景就在 ZStack 里 我要做的就是把它移到新的 容器背景视图修饰符里 从 iOS 17 开始 系统提供小组件内边距 所以我要把之间添加的内边距删掉 得益于 Swift Macros 我可以直接在 Xcode 预览界面看到 小组件的整个时间轴 预览画布的底端展示了所有时间轴条目 点击这些条目就可以预览 有更新时的动画效果 这个转场效果很好 让我们看看有什么方法 能模拟出小鸟到来的效果 我可以直接使用标准 SwiftUI 转场动画 在编辑器界面我会给 BirdView 添加一个 转场修饰符 让我们试试 leading edge push 这个效果 看起来非常不错 更新后的预览画布能更清晰地展示 不同环境中的小组件看上去是怎么样的 例如新的 iPad 锁定界面、 iPhone 的 StandBy 界面等 让我们看一下 StandBy 的效果 移除了背景后 我希望能够突显出小鸟 现在的效果看上去不太好 让我们加一个鸟盆试试 SwiftUI 提供了一个新的 showsWidgetContainerBackground 变量 能让我们在移除背景后自定义小组件外观
好极了 许多人希望通过小组件和 app 进行交互 现在这个功能实现了 我来增加一个给小鸟换水的按钮 我已为这项操作定义了一个 App Intent 所以现在只需要在小组件中 将两者关联即可 我们在模拟器中试试看
就这样 我给小鸟换完了水 这就是 WidgetKit 在系统的多种位置呈现内容 变得前所未有的简单 你可以通过多种方法 利用交互性和转场动画 从而增强小组件功能 这让我们非常激动 App Intent 不仅能给小组件提供交互性 还能提升 app 在系统中的功能性 包括 Spotlight、快捷指令和 Siri 当你要把意图包装到 App 快捷指令中时 在 Spotlight 搜索结果栏 它会显示在 app 图标的旁边 以更加丰富、互动更强的方式呈现 而你只需要提供几样东西 在 App 快捷指令中 提供一个短标题、一张图像或一个符号 在 app 的 Info.plist 里 提供和 app 图标相衬的背景色 为这个 app 设置的快捷指令 就会呈现在更新后的快捷指令 app 里了 用户可以自行设置快捷指令 实现自动运行 也可以把快捷指令添加到主屏幕 或者生成自己的快捷指令 Siri 也变得更加出色了 用户可以用更自然的语言调用快捷指令 通过 WidgetKit 和 App Intent 用户能用全新的方式使用 app 的新功能 接下来 我们来聊一聊你的 app 的功能发现 每一年 我们的开发者都会花大量的时间 来构建我们认为用户会喜欢的功能 但是有时候最需要这些功能的用户 甚至不知道有这个功能 TipKit 这一个新的框架 能够帮助解决这一问题 它可以在合适的时间 智能地向用户介绍合适的功能 TipKit 提供了许多模板 符合用户在系统 app 中习惯见到的风格 你可以轻松自定义这些模板 使其在外观和使用感上匹配你的 app TipKit 的强大之处 在于它可以立即使用 只需要简单地自定义模板 添加制定目标 就能向用户介绍 与当前上下文相关的功能 你还能管理整体提示频率 避免用户收到重复提示 甚至避免先前在其他设备出现过的提示 最后 我们开发了一个有趣的方法 利用 AirDrop 帮助用户 分享 app 里的内容 在 iOS 17 系统中你可以跳过分享表 直接把内容分享给附近的设备 要实现这一点 你可以使用 SwiftUI 中的 ShareLink 或者是 app UIKit 视图控制器里的 activityItemsConfiguration 系统提供的 ViewController 例如 ShareSheet 和 QuickLook 默认情况下可以正常工作 WidgetKit、App Intents、TipKit 以及 AirDrop 将帮你打造卓越体验 使你的 app 内容 能在合适的位置、合适的时间 提供给用户使用 我们非常期待看到你们运用这些工具 进一步提升你的 app 现在让我们回到 Darin 我们的平台能够让你快速获取 我们产品独特的硬件功能 不论你是在利用神经引擎处理照片 亦或是在通过加速度计监测睡眠 我们的 API 能够让你 拥有轻松驾驭硬件科技的能力 接下来 我们将会分享 今年针对游戏、相机、显示器 以及 Apple Watch 方面的改进 有请 Brandon 为大家讲解 这一切是如何发生的 Mac 搭载 Apple 芯片 性能卓越、电池续航能力强 图形效果出众 是运行大型游戏的完美平台 在 macOS Sonoma 上开放的游戏模式 使得 Mac 上的游戏体验更上一层楼 如今 Mac 的人气比从前更旺 正是把你的游戏带给上百万 新用户的绝佳时机 如果你是从事 Windows 或游戏主机端 游戏的开发人员 你会发现开发 Mac 端的游戏非常简单 使用全新的 Game Porting Toolkit 就能实现 这个工具通过三个简单的步骤 加速了游戏开发的过程 第一步 通过我们提供的仿真环境 你可以评估现有的 Windows 游戏 在 Mac 端的运行情况 这一步骤能帮你快速分析 游戏的潜在性能表现 为你省去几个月的前期工作 第二步 转换和编译着色器 Game Porting Toolkit 自带 Metal Shader Converter 能够将已有的 HLSL GPU 着色器 自动转换为 Metal 这一功能在游戏中的所有高级着色管道 都适用 包括几何着色、镶嵌着色、网格着色 以及光线追踪阶段 你可以在 Xcode 中构建游戏时 使用这一工具 或者在自定义的 Windows 的工具链中 进行着色器编译 接下来是第三步 转换游戏代码、优化游戏 Metal 配备有现代大型游戏使用的 所有高级图形和计算功能 能让你以一种非常直接的方式 转化图形代码 Xcode 中集成了强大的图形性能和调试工具 可以为你提供必要的指导 以便充分优化游戏 我们迫不及待地 想要看到你使用这些工具 利用 Apple 芯片绝妙的强大性能 以及我们强大的 图形、显示、音频、输入和游戏性能 更快速地将你们的游戏带到 Mac 平台 说到更快 我们也要和大家分享相机的消息 Apple 持续推动移动摄影技术的进步 同时扩展了 API 让你能够在全球最受欢迎的相机上 完成难以置信的事 iOS 上的 app有超过三分之一 需要使用 AVCapture 技术 这些 app 从属于各种类别 例如创意、生产力、社交媒体乃至健康 AVCapture 在今年有了强大的性能提升 通过 Zero Shutter Lag 你能够记录下按快门那一瞬间的图像 使用重叠捕捉技术 在高速按动快门时 相机将动态调整图像质量 延迟处理技术 可以在后台处理高质量照片 包括 Deep Fusion 这些性能提升 将 iOS 和 iPad OS端 两次按下快门的间隔时间 至多缩短了三倍 而且在拍摄高质量照片期间也适用 今年晚些时候 你将能够使用音量键触发相机快门 在 app 上显示照片方面也有大新闻 近年来支持 HDR 的显示器已经不断普及 包括 iPhone、iPad 以及 Mac 通过捕捉额外的动态范围 HDR 摄影更加真实和逼真地 展示明亮的高光和黑暗的阴影 就像现实生活中看到的那样 Apple 一直是将 HDR 摄影代入主流的领导者 iPhone 12 及以后的机型 拍摄了数以万亿计的 HDR 照片 为了拍摄 HDR 照片 相机 app 会智能分析场景 并在拍摄时存储额外的高光和阴影数据 虽然有关于 HDR 视频的行业标准 但目前尚没有储存和显示 HDR 照片的标准 这使得处理 HDR 照片十分困难 但今年一切就不一样了 Apple 带领整个行业共同努力 最终形成了一种编码和展示 HDR 照片的规范 这一规范日前已被国际标准化组织 正式批准 现在 这一标准能以 API 的形式 在 iOS、iPadOS 及 macOS 端进行访问 只需几行代码 就能让你在 app 中显示兼容的照片 不仅是对显示照片的 app 对所有需要显示图像的 app 而言 这都无疑是一个非常好的消息 生成式内容 app 能够通过它 来增加图像的动态范围 使图像更生动 现在完整的 HDR 工作流已经可以实现 从图像捕捉到编辑 再到分享 所有人都能不打折扣地享受 HDR 之美 一切和摄影师拍摄时体验到的如出一辙 接下来让我们聊聊视频 如今 人们会花很长时间使用相机 可能是进行电话会议 也可能是在创作类 app 里使用 我们不断投入资源 提升视频照明和特效功能 包括新的手势 reaction 以及演讲者叠层效果 这些效果内置于你收到的相机视频流中 因此可以在 app 上直接使用 App 能够观察到这些特效何时被调用 你也可以执行其他操作 例如弹出用户图块 让大家看到他们做出了反应 如果你有视频会议的 app 就可以感受到我们在共享屏幕 和 ScreenCaptureKit 的相机功能性上 做了一些提升 新的 ScreenCaptureKit 选取器 能帮助用户更加轻松地开始共享屏幕 同时更加私密和安全 选取器也能让更加轻松地 同时共享多个窗口 乃至共享多个 app 用户可以从正在使用的 app 界面 开始屏幕共享 他们也会心存感激 因为可以通过新的视频效果菜单 预览即将共享的页面 ScreenCaptureKit 的另一个优点 就是在共享单个窗口时 内容清晰度更高 屏幕分享界面更美观 我们也为 iPad 提供了外置相机的支持 现在所有 USB 相机都能够 连接并使用 iPad app 了 我们非常高兴地宣布 我们将相机和麦克风功能 添加到了全新的平台上:tvOS 通过 tvOS 上的连续互通相机 你能将 iPhone 甚至是 iPad 上的音频和视频 首次整合到 tvOS 的 app 之中 以电视所在的客厅为舞台 你能用 app 做到非常多令人惊叹的事 比如会议 app 可以使用人物居中功能 在家里最大的屏幕前召开群组会议时 利用这一功能 可以使会议更具活力 也能把相机和音频流整合到游戏动作中 而创造类 app 则可以在直播或录制视频时 启用肖像模式 或者使用其它有趣的效果 如果你有 Apple TV 的 app 可以通过你熟悉的框架 让体验更加互联 更具社交属性 有些开发者想要使用连续互通相机 但尚未开发过 tvOS 端 app 其实上手使用 SwiftUI 非常容易 让我来展示一下 这个是演示用的 app 名叫 PartyCam 可以拍摄带滤镜的自拍照 首先我们把 Apple TV 设置为目标平台
接下来我们要添加一个选择器 以便让用户知道选择哪一个手机 然后我们来添加呈现选择器的代码 接着运行代码 好了 现在我要拿起遥控器拍个照片 你们好啊 Susan 和 Serenity
棒极了 我们都等不及要知道 你会如何让客厅变得更加妙趣横生 现在交给 Lori 让他带来 watchOS 上的新内容 Apple Watch 是我们的第一款可穿戴设备 它给开发者带来了新的可能性 将即时通知 健康和健身情况 以及便捷的 app 体验 带到人们的手腕之上 今年推出的 watchOS 10 在设计上进行了巨大的改动 改动得益于更大、更亮的显示屏 以及现代 Apple Watch 模块 功能更为强大、更加互连的硬件 在这次重新设计中 SwiftUI 发挥了至关重要的作用 我们在系统中 使用 SwiftUI 几乎更新了所有的 app 让他们更具活力、更加多彩 并且更加一目了然 让我向你展示几个例子 watchOS 10 重新关注分页问题 Vertical TabView 允许各种页面大小 这样就能够在不牺牲内容空间的前提下 更好地利用表冠在 app 内进行滑动 新的 containerBackground 修饰符 能让你使用渐变色 从而提升可读性 帮助用户了解他们在 app 的哪一位置 也能让数据更便于浏览 针对填满屏幕的 app 设计 新的 ToolbarItem placement 可以 更好利用角落空间 必要时会将时间自动移到中央 针对强源 list/detail 视图关联的布局 NavigationSplitView 在 Apple Watch 平台非常具有说服力 无需更改 可以直接把其他平台的代码拿来使用 Apple Watch 上细节视图的放大和缩小 甚至用到了 SwiftUI 最新的交互弹簧动画功能 这个动画效果由 12 条轨道组成 为视图的尺寸和位置加入了动画效果 可以通过用户的手指滑动速度来驱动 当然 我们也更新了所有主要 UI 组件 进行了材料加工 使得在 UI 组件在任意背景下清晰可见 而且能根据硬件自动调整大小 如果你已经在 app 中采用了 SwiftUI 当你构建 watchOS 10 SDK 时 就会自动获取这些升级 让我借助 Backyard Birds 来为大家演示一下 这是我最初为 watchOS 9 设计的 app 它是基于 NacigationStack 构建的 list/detail app 当使用 watchOS 10 进行重新编译时 甚至不用变动代码 它就能很好地运行 视图能够自动适应新的导航栏高度 在我滑动时 大标题也会缩小到时间下面 现在让我们做一些改动 让这个 app 更加适应 watchOS 10 每次登陆 app 时 我希望能看到主院的最新状态 而不是每次都手动从列表中进行选择 NavigationSplitView 就是为强源 list/detail app 所设计的 我现在把 NavigationStack 替换成 NavigationSplitView 从来源列表中删除标题 因为 app 的入口点现在不是这里了 并且指示需要默认打开的细节视图 现在的来源列表 就被藏在细节视图后面了 我非常注重细节 但是我的细节视图太长了 它是一个滚动的 List 由三个清晰的节组成 因此我要拆分这段内容 将 List 转化为 Vertical TabView 每一结单独成页 每一页的高度都默认为屏幕高度 因为最后一节包含 ForEach 循环 每只小鸟都能有自己单独的页面 我更愿意把包含所有小鸟的列表 做成一个标签 如果标签超过屏幕高度就采用滚动功能 所以我把 ForEach 改成了 List 从而做出可滚动的视图 接下来我要增加颜色 以便区分不同标签 我给每个标签都增加了一个 .containerBackground 修饰器 为了迅速发现食物和水供应不足的情况 我会把补给这一节的背景动态化 基于不同的补给供应水平 背景颜色会在绿色、黄色和红色间切换 在 Live Previews 里预览代码变化 你可以发现背景颜色提供了一种 在 app 中的场所感 也让我更容易发现 什么时候需要换水添粮 最后一个标签能让内容划出屏幕 但我还是能够返回后院列表 点击 Source List 按钮就可以 只需要不多的改变 就能让我的 app 适应 watchOS 10 SwiftUI 给我们提供了很多便利 帮助我们让系统上的 app 更加出色 就像刚才展示的一样 Swift UI 能更轻松地 升级你的 app 使之适应新的设计范式 如果开发 app 时你还没有使用 SwiftUI 现在是时候行动了 除了这些基于 Swift UI 的 app 更新 watchOS 10 还有全新的系统空间 AppIntent relevance 可以帮助你的小组件在合适的时间 放置到智能叠放顶层 你可以使用之前提到过的 .containerBackground 修饰符 自定义小组件的背景 使之发挥更大的作用 训练 app 的开发者 可以帮助用户利用好 Apple Watch 的健身跟踪功能 我们最新的 Custom Workout API 能够从 app 中分享健身计划 而最新的 CoreMotion API 则能实现高保真动作捕捉 利用加速计数据可以提升高尔夫 网球等运动的摆臂分析性能 我们知道 你们都有无限的创意 所以在进行各类训练时 都会监测这一数据 我们十分想要知道 你们将如何利用它来打造体验 以上就是今年 watchOS 端 重大改变的简短汇报 现在交还给 Darin 对于平台来说 用户也是它的一部分 从一开始就构建的价值也是它的一部分 在 Apple 这些核心价值意义重大 我们知道这些价值对你们同样意义非凡 我们双方协力合作 使得 app 适应人们的需求 人人都能使用 并且创造尊重所有用户需求的 app 保护用户 保护数据 首先从我们平台提供的 能让这份重要的工作 变得更加容易的部分开始 接下来由 Chris 来为大家介绍 我们相信每个人都应该 能够用我们的设备 来做他们热爱的事 这就是让我们的设备易于使用 是 Apple 的核心价值的原因 世界卫生组织的数据显示 全世界残疾人口超过十亿 做出易于使用的科技就意味着 为更多人带来 能够用来创作、学习、保持联络 以及按照他们意愿生活的最好工具 这就是 Apple 产品 为盲人或有视力障碍的用户 耳聋或有听觉障碍的用户 失语或有失语风险的用户 有身体残疾或运动障碍的用户 以及那些有认知障碍的用户 带来开箱即用的辅助功能的原因 我们的框架内置了 对这些辅助功能的支持 同时还有工具和 API 来帮你确保 你的 app 对所有人都易于使用 辅助功能常常是指能够带来 强大影响的微小步骤 举例来讲 去年我们在 Magnifier 中添加了 探测和描述大门的功能 这样就能帮助人们独立地探索 他们的周边环境 今年我们把这样的支持扩大到 对动态图形和闪烁灯光敏感的用户中 这些用户们常常陷入两难的困境 他们也许常常不得不避免 有闪光灯警告开场的电影 以及其它有潜在风险的内容 或者在不够了解的情况下 接触这样的内容 这就意味着他们会为自己带来 像癫痫这样的健康风险 我们的框架现在将这两种功能 添加进了API 让你的 app 对这些用户 更易于使用的功能 第一个功能是 Pause Animated Images 它能够暂停 Safari、信息以及 其它页面中出现的 动态 GIF 的变化 并且要把它添加进你的 app 也很容易 假设你正在 SwiftUI中的 一连串图像制作 Timeline View 动画 你可以用新的环境属性来了解 用户是否想要暂停动画 如果他们想要暂停 就用静止图片代替动画 这样即可尊重他们的选择 第二个功能是 Dim Flashing Lights 它可以在一系列高亮度闪烁光线出现时 自动让视频的显示变暗
在 AVFoundation 的视频渲染管道中 有了新的 可以辨别并调暗闪烁元素的阶段 如果你用 AVFoundation 在 app 上播放媒体 就不需要任何额外工作 来支持这项功能了 然而如果你的 app 使用了 自定义媒体播放器 你就可以使用新的 API 来 识别有闪烁灯光的视频内容 并且自动将它变暗 我们甚至开放了算法 这样你就可以理解这项功能背后的原理 我们做出承诺要把辅助功能加入 每一项产品和框架 这承诺也扩展到了我们全新的平台: visionOS 因为我们相信世界一流的科技 应该顺应每一个人的需求 visionOS 含有许多 辅助功能 这些功能在初始时期 就被添加进了它的根基里 而作为开发人员的你们 将发挥至关重要的作用 使用与在 iPadOS 和 iOS 端中 相同的工具和 API 让你们的 visionOS app 对每个人都易于使用 我们非常开心能够与你们合作 为各种各样的用户群体 带来空间计算服务 很快你就能听到对 Vision Pro 上 辅助功能的更多介绍 现在让 Katie 来聊聊隐私部分 在 Apple 我们相信 隐私是一项基本的人权 我们从用户中了解到 他们十分在乎自己的隐私 我们会带来各种功能的同时保障隐私 多年以来我们创造了许多 能把隐私功能添加进 app 的方法 今年我们从隐私提醒开始 让用户在各个领域的 强大隐私保障 变得甚至更加容易 首先我们从日历许可开始 我们知道在许多情况下 你的 app 不需要读取日历 它们只需要写下新事项就好 在这些情况下 我们创造了新的仅添加许可 它能够帮助你获得你想要的许可权 并且用户也会得到 可以让他们感到合理的提醒 在照片中 我们为用户提供了两种 让你的 app 使用照片的选择 他们可以选择想要分享的图片 或者也可以提供 他们整个相簿的访问权限 我们想要让用户选取图片 分享到 app 的过程变得更加容易 这样你就可以获得你需要的信息 用户也只需要分享他们想分享的 所以我们加入了新的照片选取功能 你可以完美嵌入 app 这样用户从你 app 的内部就可以 便捷地选择可分享的照片 接下来就是 app 的隐私 帮助用户了解你如何保护他们的数据 非常重要 所以我们也创建了 能帮助你这样做的功能 例如 Privacy Nutrition Labels 帮助用户了解 你收集了什么数据 以及怎样使用它 你们之中很多人的 app 里 都有第三方 SDK 它能带来很棒的功能 但是使用它可能会让 把握你的产品变得更加困难 因为你也许不明白 它是怎样处理用户数据的 而且它们可能会为你的软件供应链 带来安全方面的挑战 今年我们带来了两项更新 首先为了帮助你了解 第三方 SDK 是如何使用数据的 我们带来了隐私声明 它们是用标准格式概述你 app 中 第三方代码隐私条款的文件 当你准备分发 app 时 Xcode 会结合第三方 SDK 的所有 隐私声明 你使用的是一整个非常简便的报告 这样一份总结了你所有 第三方 SDK 的报告 让在 App Store Connect 中 创造精准的标识变得前所未有地容易 我们也想要帮助你提升 你的软件供应链的完整性 在使用第三方 SDK 的时候 可能并不容易了解你所下载的代码 是否由你想要的开发人员编写 为了解决这个问题 我们为第三方 SDK 带来了签字功能 当你在你的app中使用 新版本的第三方 SDK 时 Xcode 会验证它是否由 同一个开发人员签字 这样就能让你更加安心 除了隐私条款和第三方 SDK 的签字 我们让保护用户并帮助他们理解 他们的数据会被怎样使用 变得更加容易了 最后还有 Communication Safety 它使用了隐私保护技术 来保护我们平台的儿童 我们的平台和你们制作的 app 在保护全世界许多家庭的生活方面 发挥着重要作用 尤其是在他们的交流方面 在 iOS 15 我们带来了信息中的 Communication Safety功能 为使用 Apple 设备的儿童带来了 更多保护 你们之中许多人制作了用户可以 分享内容的 app 与此同时也想保护弱势状况中的儿童 我们明白训练和实施一个模型 用来分类不安全内容 可能会成为难以解决的困难 并且也带来了很多额外工作 所以我们为整个平台带来了有 Sensitive Content Analysis 框架的 Communication Safety 功能 只需要几行代码 这个框架就能帮你探测到包含裸体的 图片和视频 并且这一切完全都在设备内完成 所以你可以在你的 app 中 为使用 Communication Safety 的儿童 带来积极正向的体验 Sensitive Content Analysis 框架 使用了与支持 Communication Safety 相同的框架 这样的框架采用完全于设备内 处理图片和视频的方式 来保护用户的隐私 除此之外我们还想要让每个人都能够 模糊处理敏感内容 于是就有了 Sensitive Content Warning Sensitive Content Analysis 框架 会让你了解 用户是否启用 Communication Safety 或者 Sensitive Content Warning 这样你就可以根据启用的功能 定制使用 app 的体验 这些新功能可以更容易地 保护用户的隐私 也能为用户带来安心 接下来 Chris 会告诉我们 Apple Store 中有怎样的更新 App Store 是用户们所信赖的 探索 app 的地方 探索 app 的地方 这些 app 可以满足我们对安全性 隐私性和性能的高标准 App Store 使用各种各样的商业模型 让你在世界范围内扩大 app 的分布 例如 app 内购买等 StoreKit 是安全并值得信赖的 app 内购买的基础 我们带来了强大的数据模型 来把你的产品连接到 app 的 UI 上 如果你提供 app 内购买的功能 你一定知道展示出关键细节信息的重要性 比如价钱和订阅时间 这样用户就能在知情的情况下进行购买 我们了解许多开发人员发现做好这点 并不容易 今年我们用来自 Human Interface Guidelines 的 最佳方法带来了新一系列的视图 让 app 的商品销售 UI 在整个平台都更强大 也让 StoreKit 进一步发展 使用 SwiftUI 的声明式语法 你可以精心设计商品销售体验 而 StoreKit 会处理剩下的一切 让我们来看一些例子吧 ProductView 允许你使用 App Store Connect 中自己界定的数据 展示你的产品 你也可以用简便的方式定制它 让它符合你 app 的外观和感受 SubscriptionStoreView 是专为 订阅而设计的视图 只需要一行代码 就能把对各个等级服务的描述、价钱 和时长 清晰地展示给用户 这些视图并不只是为 iPhone 带来的 同样的代码可以在所有 Apple 设备上 都创造出符合平台体验的视图 并且它的比例还可以适合 Apple Watch 紧凑的显示屏 当然它们也不会忘记为所有用户带来 辅助功能和本地化 在 app 中融合 SubscriptionStoreView 非常容易 让我们来试试 Backyard Birds Pass 所带来的订阅 我会进入 Xcode 为我的 SubscriptionStoreView 添加一些声明 这就可以让它符合 Backyard Birds 的 外观和感受 我可以在定制营销内容时拥有视图 添加背景底色 还能改变订阅选项的风格
现在我们介绍了这些看起来很棒 也符合 app 品牌风格的功能 让我们也快速看一下模拟器 在这里我可以获得和我用户相同的 全部体验 在这里我可以选择一项优惠 点击订阅 完成购买 只需要这些就可以制作出个性化的 购买体验 为用户展示他们做出知情决定 所需要的所有信息 我们也明白根据用户的购买历史 或者订阅状态 定制化你所提供的优惠非常困难 所以 SubscriptionStoreView 会自动决定用户的符合条件 展示出合适的优惠 新的 StoreKit 视图是推销 app 内购买的绝佳方式 还有一个获得业务增长的重要方面 是了解广告可以如何帮助用户 发现你的 app 现在 SKAdNetwork 能帮助广告网络 评估广告活动 能如何提高你 app 的下载量 同时保护用户的隐私 除了评估下载量我们也知道 了解广告能如何吸引用户回到 app 非常重要 SKAdNetwork 5 支持评估用户的 重新参与情况 除了评估用户下载你的 app 之后的 转换率之外 你也可以在用户点击广告打开 app 后 评估转化率 Version 5 也会在今年晚些时候发布的 iOS 中出现 我们 app 内购买的新功能 和 ASKAdNetwork 会帮助你负责任地发展你的业务 同时尊重用户的隐私 让用户拥有透明度并让他们安心 现在让我们回到 Darin 如同我们的编程语言和框架一样 我们的工具也是为彼此制作的 Xcode 在我们的全部平台上 把你发展、测试和分布 app 所需要的一切结合在了一起 TestFlight 和 Xcode Cloud 让这样的体验从你的第一行代码 到 App Store 的第一个下载无缝衔接 现在 Ken 会带我们了解最新的发展 对所有的 Apple 平台来说 有一个工具是你开发体验的中心 它能帮你做出所有优秀的 app 那就是 Xcode 它把强大的功能结合在一起 就像一个能融合编写代码和 设计用户界面的编辑器 同时还有互动预览和实时动画 以及可以用来制作、回顾和 与团队分享改变的 内置源码控制 调试、分析和测试工具可以帮助你 评估和完善你的 app 所有这些都在 Xcode Cloud 这样一个 提供可以简化在 TestFlight 和 App Store 的分布的 持续集成和交付服务上连接起来 对于 Xcode 15 也有一些重大更新 让我们从源码编辑这样一个你花费了 大部分时间的部分开始 完成代码可以帮助你更快获得 你想要的代码并且错误更少 有了 Xcode 15 你会从最相关的 完成情况开始 编辑器也会使用周围的代码 来确定优先次序 无论是你在使用的特定视图的 最合适的修改器 还是在你定制视图时把修改器 连接在一起 并且 Xcode 会自动为你的 资产目录资源生成符号 这就意味着它们会在代码完成时出现 并且它们在你的代码中非常易于使用 这为你提供了安全性能 并且让你安心 让你了解 你的资产在运行时是可用的 SwiftUI 视图是非常适合 使用这些资产的地方 Xcode 预览是对你的 UI进行迭代的 一种无缝方式 并且在你设计 app 的代码时 能带来几乎即时的反馈 在 Xcode 15 中预览更易于使用 并且能在更多地方用到 它以一种使用 Swift Macros 的新的语法开始 写出它非常简单并且容易让人记住 现在用不同的平台和设备工作 变得更加容易了 你可以在画布中直接选择它们 来确保你的视图在所有地方都很好看 你也可以在所有 UI 框架中使用预览 无论你是在使用 SwiftUI、UIKIt 还是 AppKit 你可以从代码的任何地方把 稳定一致的体验 在你的 UI 上迭代 为了赶上快速制作和预览改变的步伐 Xcode 精简了你回顾和 使用这些改变的过程 许多人在工作流程中使用 git 暂存 现在它直接融入进了 Xcode 中 只需要点击一下 你就可以 暂存和取消暂存任何改变 不用离开你的代码就可以 定制你的下个提交 在 Source Control navigator 上 你可以在一个视图中检阅你所有的改变 帮你在提交中完成收尾部分 并且 Xcode 还会展示未推送的提交 这样你就可以完美地 将你的所有提交合并成一个拉动请求 让我们来聊聊测试 这是创造出高质量 app 的重要部分 当你的代码在许多平台、设备、语言 和用户功能中 不断壮大时 掌控你的测试结果以及了解关注重点 就会变得具有挑战性 Xcode 15 完全重新设计了测试报告 为你带来能够更好理解你的结果 并采取相应措施的新产品 它由一个漂亮的结果预览开始 向我展示了包含常见错误模式的 重要见解 例如这些有相同断言信息的错误 我也能获得关于测试能如何 在配置间运行的完整总结 例如设备和语言 它就可以帮助我发现这样的模式 然后这里会有一个展示给我 应该关注哪部分的热力图 现在我正着手于 Backyard Birds 中 一个功能 看着我最新的运行测试 我能意识到一些问题 我首先点击这个见解 看来一个轻点手势在我最新的测试中 失败了 我点击这个失败的测试 它就能给我在左边这里 带来测试活动的细节视图 并且右边还有 app UI 的全部记录 我可以选择特定的活动 或者我也可以使用这个新的时间线 直接跳转到任何时刻 我可以看到对于有趣部分的标记 比如说测试滚动到视图的这里 或者在这里它点击了搜索栏 并且这是一个能够给我带来更多细节的 完整的视频记录 它向我展示了测试失败前 具体发生了什么 我现在播放它来看看发生了什么
在这里测试选取了一些食物来喂鸟 这个鸟开始四处飞 但它在我的动作完成之前就消失了 而这就是造成我测试失败的原因 这个新的测试细节有时间线和视频记录 这就使得为动画和手势 还有其它 UI 体验 回顾测试变得更快了 而当我不只需要视频时 我也可以看到辅助功能框架 它让我更加了解我的视图 这个新报告把一切都结合起来 给了你深层的见解 更细节的信息和更多互动 这样就能让你的测试发挥最大作用 它也能在 Xcode 和 Xcode Cloud 无缝衔接使用 Xcode Cloud 是一种持续的 集成和交付服务 它能帮你在 Apple 全平台制造、测试 以及分享你的 app 它深度融合进了 Xcode 让你只需关注一点 帮助你节省时间 它利用了 Apple 的云基础设施 来卸载你的构建和测试 甚至还有为分布而设计的代码 它连接起了 TestFlight 还有 App Store Connect 这些 Apple 服务 并且它拥有先进的安全性 可以保护你和你的项目 去年我们让 Apple Developer Program 所有成员都能使用 Xcode Cloud 上万个团队直接从 Xcode 加入了 他们的项目 并且反馈非常好 我们持续把 Xcode Cloud 做得更好 我们非常在乎性能 从去年开始我们就做出了大量投资 这样你就可以在运算时间内做出更多 我们也添加了你们最重要的要求 在分布到 TestFlight 时 你可以创建和分享测试人员注释了 这样可以帮助你的用户及时了解到 你最新的改进 Xcode Cloud 用 DeveloperID 分布时 也支持 macOS 公证 这样你可以在向你的用户分享这一切前 自动检查你的 app 中 是否有恶意组成部分 只需要用几分钟设置好你的工作流 你就可以利用几小时的运算时间 来创建、测试和部署你的 app 我们不断把 Xcode Cloud制作得更加快速 更安全也更灵活 我们对它的未来发展感到非常兴奋 在过去一年我们为 Apple silicon 的 多核架构优化了编译器 来让你们工作得更快也更具可扩展性 链接器从头到尾都经过了重新设计 在链接速度方面带来了巨大提升 链接现在可以比之前快上五倍 新的链接器还把调试二进制文件的大小 减少了 30% 而对于嵌入了许多框架的 app 我们带来了一种新的框架类型 可以在开发时提供更快的建造速度 还能减少 app 的大小 为生产带来更快的发布时间 最终我们要继续让 Xcode 变得更快 也更易于开始使用 在 Mac 的 App Store 里 Xcode 已经比之前小了 50% 并且所有的模拟器都可以按需求下载 这就意味着你可以快速开始工作 并且在合适的时间安装你需要的平台 那么现在让我们回到 Darin 我们试图构建的融合使用语言、框架 工具和服务的单一方法 终于和我们的新平台共同走入了现实 使用共享基础能让平台看起来更友好 并且确保它独到的优势也突出显示 visionOS 利用了我们为平台 所做出的多年投资 展示了这个方法的优势 接下来让 Mike 来告诉你关于它的一切吧
Apple Vision Pro 的发布 让空间计算这项旅程做出了开端 你现在可以超越你之前所理解的可能性 重新想象保持连接、有生产力 且获得娱乐意味着什么 Vision Pro 带来了许多开创性的技术 你的 app 可以使用新元素 与用户空间互动 并且和他们的房间无缝融合在一起 这一切的可能性都使用了 你已经知道的技术 那就是 SwiftUI、RealityKit 和 ARKit 它们都被扩展到了 visionOS 有这样的坚实基础和 全新的开发人员工具系列 你会感到为 Apple Vision Pro 创建全新的新系列 app 非常方便 今天我们会讲到开始使用 visionOS 你所需要的一切 从基础部分 到关键的框架、工具和技术 你会了解到你在 Vision Pro 上 实现你的 app 所需要的 为你提供支持的活动和程序 还有可以利用 Vision Pro 上 无线画布的 app 或者用来把房间变成 沉浸式媒体环境的 app 那么让我们开始吧 Vision Pro 让你重新思考 app 体验的可能性 不管你在创建什么样的 app 你都需要理解它在 3D 环境中 是如何存在的 也就是在你用户的空间中如何体现 这会为你做为开发人员作出的决策 提供依据 建立这样的理解能让你利用好 Vision Pro 的所有功能 为你的 app 带来前所未有的 关注点和沉浸式体验 默认情况下 app 在 the Shared Space 上发布 The Share Space 是各种 app 排列出现的地方 就像 Mac 桌面上的许多 app 一样 用户完全可以重新放置 app 到 他们喜欢的任何地方 让我们聊聊你在空间中可以使用的元素 首先就从我们熟悉的窗口开始 在 visionOS 中你的 app 可以打开 一个或几个窗口 也就是 SwiftUI 的场景 它就像你的那样 像太空中的飞船一样排列 它们包含了传统的视图和控制 也支持 3D 物体和 RealityViews 让 3D 内容和 2D 内容一起发挥作用 此外你的 app 还可以创建三维图形 这也是 SwiftUI 的场景 还能展示 3D 物品 例如游戏板或者地球仪 创建的体积可以在空间四处移动 也能从所有角度观看 在有些情况下你可能想要对 app 中的 沉浸水平有更多控制 或许可以让用户看视频、玩游戏 或者排练一次演讲 你可以打开专门的 Full Space 来做到这点 在此之中只有你的 app、窗口、图形和 3D 物品 会出现在用户的视野里 这就是空间运算的基本元素 窗口、图形和空间 它们为你带来了用来做出 app 的 灵活工具包 能够扩大沉浸体验的连续性 现在让 Geoff 来 告诉你更多如何开始制作 app 吧 Vision Pro 支持几种不同的 app 它支持 iPad 和 iPhone 端已有的 app 它们每个都能作为可扩展的 2D 窗口 并且保留了原始的外观和感受 但是这只是这么多可能性的开端 visionOS 的核心是与 iPadOS 和 iOS 十分相似的 并且包含了许多相同的基础框架 你用 SwiftUI 和 UIKit 来构建 你的用户界面 使用 RealityKit 来展示 3D 内容 动画和视觉效果 用 ARKit 来了解用户四周的空间 这些都是 visionOS SDK 中的部分 那么想要把你的 app 带来 Vision Pro 还需要做些什么呢? 首先在 Xcode 中 添加 visionOS 做为你项目的目标 在你重新制作的过程中 你的 app 会自动得到非常炫酷的改进
具有 visionOS 外观和感觉的材料 完全可调整大小的窗口 其间距还能为眼睛和手的输入进行调整 并且还能访问高亮调整你的自定义控件 然后你可以添加进 visionOS 端专用的 代码来扩充你的 app 让它成为窗口、图形和空间的组合 从这里你就可以开始利用 SwiftUI、RealityKit 和 ARKit 的 扩展功能了 那么 Enrica 会告诉你如何操作 在 visionOS 端我们有许多框架 都进行了扩展以支持空间体验 现在你可以使用 SwiftUI 在窗口中 增加层次或者添加 3D 物品了 在 iOS 和 MacOS 端 ZStack 通常 用于分层视图 visionOS 则让这一切走得更远 你可以把它和层次分开来 这让你的二维 app 也有了三维的感觉 你可以在你的 UI 元素中 用 z-offset 视图修改器 加入深度的改变 用较高的偏移值将视图呈现在 较低偏移值的视图前面 你可以使用这项功能来突出重点 或者显示出形式的改变 例如当展示一个选项的详细细节时 有了额外的视图修改器 你可以对宽度、高度和深度有更多控制 在 Vision Pro 中连手势都能意识到 额外的空间 我们已经习惯把物体在屏幕上拖拽 现在人们可以在他们的实体空间中 移动或者旋转物品 你也可以用 SwiftUI 来创建图形 它可以和你 app 的窗口共同存在 并且当在 the Shared Space 中运行时 它能和其它 app 一起排列 SwiftUI 窗口和图形也能 存在于 Full Space 中 你可以在用户的房间内各处 放置 3D 物品和 SwiftUI 元素 SwiftUI 不仅可以快速简便地把你的 app 添加进 visionOS 也可以呈现出完全沉浸式的体验 SwiftUI 现在通过 RealityKit 呈现 所以你可以轻松地把 SwiftUI 和 RealityKit API 混合在一起 你可以使用装饰物、材料和悬浮效果 等 UI 增强功能 装饰物可以让你把 UI 组件 贴在窗口和图形的边缘 它们非常适用于工具栏和菜单 这样的项目 悬浮效果能够根据用户所看的地点 强化 UI 元素 在系统控制自动得到这些效果的同时 你也可以自己决定自定义控制 是否使用突出显示或者发光效果 材料可以适应用户周边的世界 动态模糊和鲜艳的色彩 使你的应用程序 无论在什么样的情况下都有可读性 就像我们其它平台一样 我们推荐你使用 SwiftUI 来 打造 visionOS app 你现有的用 UIKit 打造的 app 也能为 visionOS 重新编译 而且也能使用装饰物、悬浮效果 还有材料 并且保持原本的外观和感受 SwiftUI 是你在 vision OS 创建空间体验时 会用到的框架的一种 Edwin 接下来会为大家讲更多内容 它们会对你们的探索旅程有所帮助 当你准备要扩展你的 app 为它带来动态 3D 模型的完整场景 动画和视觉效果时 你会需要使用 RealityKit 它是 Apple 从头开始创建出的 3D 呈现引擎 它可以呈现空间体验 我们在 2019 年带来了作为独立框架的 RealityKit 和 SwiftUI 在 Apple Vision Pro 中 它们深度融合在了一起 这样你就可以构建颜色鲜明、反应灵敏 并且有图形的界面 3D 内容可以与 SwiftUI 的视图和状态 连接在一起 让 2D 和 3D 视觉元素无缝结合在一起 RealityKit 可以自动根据外部 光线状况进行调整 然后在地面和桌子上打下阴影 把体验在现实中落实 这可以让 app 看起来属于这个房间
RealityKit 也有强大的新功能 包括创建进入 3D 场景入口的能力 例如我们在 Keynote 看到的恐龙 也可以呈现出及其鲜明的文字 这样你就可以舒适地阅读 并且它带有可自定义的材料系统 可以创造出美丽的视觉效果 除此之外 Apple Vision Pro 的呈现 使用叫做 Dynamic foveation 的技术 变得更加高效 RealityKit 利用眼神追踪 实现了有选择性地呈现用户关注的区域 并且保真度极高 还减少了内容边缘的渲染成本 让你的 app 最大化设备的处理能力 RealityKit 允许你指定它的实物特性 用令人惊叹的逼真效果 呈现出你的 3D 模型 例如它反光能力有多强 金属质感如何 默认情况下 RealityKit 可以呈现 视觉内容 这样它的光线就可以和房间中的 光线状况相结合 如果你想要根据你的创作意图 自定义甚至延伸它的真实感 你可以提供一张照明设备的图片 或者 IBL 来个性化它的外观 为编写你的材料 RealityKit 采用了 MaterialX 它是用来指定表面和几何着色器的 开放标准 行业领先的电影公司、视觉效果公司 娱乐和游戏公司都在使用 我们对 MaterialX 的广阔支持 还包括了各种各样的行业领先创作工具 这让编写着色器更加容易了 MaterialX 通过允许你定义阴影属性 让你设计并且迅速迭代 每个材料的外观 而且还有材料的储存库来供你选择 及 Houdini 和 Maya 这些有用的工具 它们都可以用来创作你自定义的 阴影效果 RealityKit 提供了新的 SwiftUI 视图 它叫做 RealityView RealityView 可以用于窗口、图形 和空间中 让你在你所控制的场景中 随心所欲放置 3D 内容 它也支持 Attachments 可以让你把 2D SwiftUI 视图嵌入 3D 内容 除了 SwiftUI 和 RealityKit 还有第三个强大的框架能让你 完全利用用户的周边环境 那就是ARKit ARKit 可以了解用户周边的空间 让 app 的内容与房间进行互动 无论是在地板上弹跳的球还是 泼在墙上的水 ARKit 承载了够为一系列核心系统功能 提供动力的 visionOS 的实时算法 这些算法永远都在运行 这就意味着你的 app 可以在 the Shared Space 中自动从 ARKit 获益 无论它们是如何构建的 系统也可以处理持久性和世界图谱 分割、消光和环境照明 可以自动在全部空间中应用 并且在用户许可的情况下 ARKit 功能可以直接在你的 Full Space app 上使用 你的 app 可以在 Full Space 内 利用 ARKit 的 Plane Estimation 和房间进行真实互动 Scene Reconstruction Image Anchoring 还有 World Tracking 都和 iOS 上的 ARKit 一样运用了 同样的锚定概念 这就让把你现有的 ARKit app 迁移到 visionOS 的过程变得非常容易 在 visionOS 端也也可以访问 Skeletal Hand Tracking 你可以使用手部追踪为你的 app 体验 创建自定义手势 或者用数字信息增强用户的手 ARKit 在与 iOS 相同的骨架模型中 提供了关节定位和导向功能 通过结合 SwiftUI、RealityKit 和 ARKit 的综合性方法 你可以充分利用这些年你投入在 Apple 平台的学习和投资机会 这就包含了为了让 app 易于访问 你所做出的努力 这一切都非常有意义 空间运算为辅助功能带来了许多 很棒的新机会 有身体和运动性残疾的用户 在 Apple Vision Pro 上 可以完全通过他们的眼睛、声音 或者二者结合 与他们的设备互动 用户也可以选择用他们的食指、手腕 或者头部 作为备选指示器来控制 Vision Pro 你可以用已经在我们其它平台上 使用了多年的技术 让 app 在 visionOS 端易于使用 Accessibility Inspector 会在你的 visionOS app 里 分析和报告辅助功能问题 并且为了让它们更易于使用 而给你提供建议 而且有了内置在我们框架中的 辅助功能支持 想要把你的 visionOS app 和体验 带给残障用户群体就变得非常容易 例如你可以在你的 app 中 添加传达信息的标签和描述 帮助 VoiceOver 对盲人或 有视力障碍的用户描述物品 比如描述物品的外观 你也可以把用户偏好融合进去 让你的 app 在设计上更易于使用 例如能带来更大字体的 Dynamic Type 带来更高可辨识度的 Reduced Transparency 还有头部锁定内容的替代品 通过使用这些友好的 API 和工具 你的 app 会让全世界的用户 都更易于使用空间运算的方面 发挥重大作用 这就是对你在制作优秀的 visionOS 端 app 时 可以使用的一个强大框架的介绍 接下来 Thessa 会聊到你可以使用的 所有工具 在你开始为 Vision Pro 创造 app 时 你会发现它不是只有框架 我们也更新了支持 visionOS 的 开发人员工具 就像在我们的其它平台一样 Xcode 是 Vision Pro 的开发体验的 核心 你可以把 visionOS 作为目标添加进 你现有的项目中 或者你也可以创建一个全新的 app 专门为这个平台的独特功能而设计 制作你 app 的第一步就是让它 在 2D 和 3D 的内容中都看起来没问题 Xcode Previews 让你不用离开编辑器 就可以对外观迭代 当开始测试你的整个 app 时 可以使用模拟器 它能为 app 的运行和调试提供 强大的环境 你也可以通过键盘、触控板或者 可兼容的游戏控制器 来移动和查看场景的四周 你也可以通过模拟系统手势和 app 互动 这个模拟器也提供了三种不同的 模拟场景 既有日间模式也有夜间光线模式 让你的 app 变得可视化 当需要使用 Vision Pro 来开发项目时 你需要在设备上构建并运行你的 app 来确保它可以正常运作 我非常激动能分享这个可以 改变你工作方式的 附加功能 Mac Virtual Display 只需你看一眼 就可以 把 Mac 的高保真度 4K 虚拟显示器 带入 Vision Pro 中 你可以在有 Xcode 的设备上 使用 Mac 端的全部功能 这是一项令人难以置信的端对端 开发体验 你可以完全使用 Vision Pro 编码、调试和测试 app 不用担心任何中断以及丢失语境 有时你需要深入挖掘 app 的内容与现实世界有关的细节 当你的 app 和用户的房间互动时 它也许会带来独一无二的挑战 例如 3D 内容在视觉上切割了墙体 Xcode 设有实用的调试可视化功能 来帮你探索冲撞、堵塞 以及关于 3D 内容的场景理解 这些可视化效果在模拟器和 Vision Pro 上都能运行 在开发你的 visionOS app 时 它们会变得更具空间性 打破扁平窗口的边界 为用户带来前所未有的 3D 体验 把这一切做好就需要新的视觉工具 所以我们推出 Reality Composer Pro Reality Composer Pro 是一个可以 让你为 visionOS app 预览和准备 3D 内容的应用程序 你可以输入和组建 3D 模型、动画 图片和声音等资产 它和 Xcode 建造过程紧密结合 能够优化你的资产 让它们在 Vision Pro 端使用 你在 Vision Pro 端发送内容 用来预览、调整大小和旋转也非常容易 你可以在任何时候添加新的改变 在输入代码前查看你的内容看起来怎样 接下来 Jason 会展示给大家 我一直着手于我们的样品项目其中之一 它能带你穿越太阳系 我想要确保我的 3D 内容在 Vision Pro 端也很好看 那我现在要用 Reality Composer Pro 来更新它 我要从导入我在 3D 模型应用程序中 制作的卫星模型和图片开始 这个模型有很多细节但目前没有材料 我会在 Reality Composer Pro 里 创建自定义材料 然后进入 Shader Graph 在那里进行 自定义制作 添加简单的画面和功能节点 来改变物品的外观既容易又有趣 都不需要编写代码 你可以尝试新事物并且马上看到结果 并且你永远都不会因为手动键入 着色器而出现编译错误 我也会在其它节点上重复这一步 我在任何时候都能从 Vision Pro 端 预览我的工作 我可以缩放它 移动它 或者旋转它 然后确保它完全是 我想要的外观和感受 我喜欢这些改变 然后我们回到 Xcode 我的改变在此已经体现到了我的项目上 并且已经在 Xcode 预览或者模拟器里 准备好使用了 就像这样 它已经为我准备好了代码 和在 app 内使用了 有了 Reality Composer Pro 你的 visionOS 开发过程 就配备了可以与 Xcode 共同使用的 强大的新工具 让预览和准备 3D 内容 像构建和运行你的代码一样容易 当你准备对 app 进行测试时 TestFlight 从一开始就可以 在 Vision Pro 端使用了 向 TestFlight 提交新的项目 就像你使用 App Store Connect Xcode 或 Xcode Cloud 时一样 测试人员可以直接从本地 TestFlight app 安装它们并提供有价值的反馈 它们还可以在 Vision Pro 上可兼容的 iPad 和 iPhone app里访问 测试版的构建 有了从 Xcode 到 TestFlight 再到 Reality Composer Pro 这样一系列的开发工具 你在 Vision Pro 创造优秀 app 的 过程一定顺风顺水 现在让我们回到 Mike 你们之中许多人在 Unity 上 花费了多年构建 3D app 为了让你们的 app 更容易进入 Vision Pro 端 Apple 和 Unity 进行了深度合作 将 Unity 的实时引擎置于 RealityKit 之上 并且让它们的开发工具 以 visionOS 为目标 这就意味着 Unity 创造的 app 可以 与其它 visionOS app 在 the Shared Space 共同存在 并且完全利用 Apple Vision Pro 的 独特优势 接下来请来自 Unity 的 Ralph 来为大家介绍更多 谢谢 Mike 与 Apple 在 visionOS 深度融合方面 进行合作真的是非常令人兴奋 现在你可以使用 Unity 强大又友好的 编辑工具 来创造新的 visionOS 游戏和 app 你可以把你们现有的 在 Unity 创建的项目带入 Vision Pro 为这个全新的平台重新构想你的体验 你的 app 可以获得 visionOS 上的 所有优势 例如高分辨率透视和 Dynamic Foveated Rendering 还有你所熟悉的 Unity 功能 例如 AR Foundation 有了 Unity 和 visionOS 的深度融合 你的 app 甚至能和 the Shared Space 其它 app 一起排列 把 Unity 的编辑和模拟功能 和 RealityKit 的管理 app 呈现功能 结合在一起 在 visionOS 用 Unity 创作内容 在外观和感受上就会非常舒适 有了 Unity 你就可以利用我们的社群 教程和模版 快速开始工作 我们相信 Apple Vision Pro 为空间运算开拓了新的边界 我们非常兴奋地期待你们所创作的 全新 app 和游戏 非常感谢 Ralph 和你一起工作非常开心 visionOS 还有更多几项基础功能 这些功能你在计划自己的下一步时 会需要了解 下面请 Jeff 为你介绍这些细节 你在 Vision Pro 端用来创建 app 的 框架 在设计之初是为了两个目标 首先是为了让你毫不费力就可以利用 平台上强大的硬件和软件 以及为了保护用户隐私 从 app 与它们的周边环境融为一体 到自然的用户互动 再到合作的新可能性 这些原则在整个系统的运作中都能体现 visionOS 为用户的周边构建了 3D 模型 来让极具现实感的光线和阴影成为可能 最终 app 能与它们周边环境自然融合 也不需要访问任何相机数据 visionOS 使用了同样的 3D 模型 为你的 app 实现新一代的空间音效 在现实世界中 声音会在空间中回荡 在到达人们的耳中之前就能 碰到墙壁和家具 你 app 中的虚拟音响也应该做到 同样的效果 这就需要对用户周边环境的成熟理解 visionOS 中的 PHASE 空间音效引擎 融合了声学传感和 3D 场景理解 创造出了详细的空间声学特征模型 当声源和用户在环境中移动时 PHASE 也会实时更新音频光线跟踪模拟 这个模型结合了 Apple 的 Personalized Spatial Audio 技术 为每个人和它们的环境 自动定制体验 所有这些令人难以置信的复杂功能 都由你管理 而你也不需要访问任何用户现实环境的 细节信息 有了 RealityKit 你只需要决定 你想要声音从哪里发出来 visionOS 就能自然地把它们 融入现实环境中 就像 app 中实现充满真实感的照明 和音频的算法一样 用户在 visionOS 输入的信息能 自动运作 并且在设计上具有隐私性 悬浮效果能够为任何使用 SwiftUI 或者 RealityKit 的 UI 元素自动呈现 如果用户看向一个按钮 它在用户点击之前就可以高亮显示 就像点击鼠标或在 iPhone 上轻点一样 当用户轻拍他们的手指时 你的 app 就会收到一系列选择 用户得到了他们需要的视觉反馈 你也能收到你期望的互动 并且也不需要知道用户在点击之前 看向何处 分享与合作 分享与合作是 Vision Pro 体验的 中心部分 就像和在 macOS 上一样 Vision Pro 用户可以和其他 在 FaceTime 通话的人分享 app 窗口 并且 SharePlay 也让最新一代的 分享体验成为可能 当你的 app 使用了有 GroupActivities API 的 SharePlay时 每一个窗口上的分享控制 都会添加一个选项 它可以为通话中的每一个人 都启动这个 app 这让他们在参与的过程中拥有真正的 实时群体分享体验 你可以决定如何让 app 在合作中使用 就像你在我们其它的平台也能使用 SharePlay 一样 在 FaceTime 通话的 Vision Pro用户 对其它的参与者以 Persona 方式呈现 它是一种用先进机器学习技术 创建的自然呈现 它可以动态匹配他们的面部和手部动作 Persona 为其他 Vision Pro 用户呈现 三维的图形和深度 但是我们想要把 FaceTime 在 Vision Pro 上带到更高的层次 让用户无论在何地都可以互动 就像真正在一个房间一样 这样的体验目前还在其初级形态 我们非常兴奋可以首次与大家在此分享 Spatial Persona 让 Vision Pro 用户 打破他们熟悉的 FaceTime 的壁垒 更具有临在感 像是他们真正在 实体空间相聚一样 visionOS 确保用户和 app 能拥有 共同且一致的空间语境 你的 app 可以和 SharePlay 一起 利用这个新语境 现在除了在用户之间同步 app 中的变化之外 你也可以回应用户的肢体动作 这样在 Freeform 面板上排一起 或者在桌面游戏上移动作品都显得 非常自然 我们希望你的 app 可以成为 这种绝佳新体验的一部分 并且你的反馈也对它的持续发展很重要 这就是我们制作了 Spatial Persona 开发者预览的原因 今年晚些时候你们就可以看到它 这些只是你能在 visionOS 端使用的 丰富又全面技术中的 几个例子而已 接下来让 Linda 来介绍这里的内容
现在你已经了解到了 Apple Vision Pro 和 visionOS 那么还有什么呢? 你的开发之旅今天启航 我们希望你们开始使用 Vision Pro 设计、开发和测试时 可以深入探索 尽可能多地学习一切 visionOS SDK 和更新后的 Xcode 以及 Simulator 还有 Reality Composer Pro 会在 本月晚些时候可供使用 这样你就可以开始着手进行你的想法了 你也可以使用大量的技术文档 全新的设计套装和工具 以及为 visionOS 更新后的 Human Interface GUidelines 除了 Vision Pro 模拟器 我们也让你能在 Vision Pro 上查看 app 的运行情况 这个夏天我们即将发布 Apple Vision Pro Developer Labs 在那里你可以在 Vision Pro 硬件上 测试你的 app 你会获得实践支持 并且又机会在 Vision Pro 面对用户发售之前 预览你创造的体验 这些实验室会分布在世界各地几个地点 包括我们 Cupertino 这里的开发中心 并且无论你在何处 都可以提交请求 让我们来评估你的 app 与 Vision Pro 的兼容性 我们会安装上你的 app 并分享 我们发现的问题
想要获得关于这些令人兴奋的机会的 更多更新 请访问开发人员网站 当然 Vision Pro 也会和全新的 App Store 一起发布 这样人们就可以发现和下载你所创建的 优秀 app 我们邀请你分享你对这个平台的想法 并且我们会对你实现这些想法做出 持续支持 现在让我们回到 Darin 这真是激动人心的一年 visionOS 带来了惊人的机会 每个平台都有那么多周密的附加服务 WidgetKit 带来了更多展示 app 的地方 对连续互通相机的扩展 以及 watchOS 的新设计 还有 Macros 和 Swift Data 对 Swift 的重大改进 以及对 Xcode 预览的极大升级 今年的开发包含多种语言、框架 工具和服务 这体现了我们为帮助你们 在我们全平台数十亿设备上 创造独特体验的深入承诺 这些平台包含了范围非常广泛且 不断增长的产品 并且保有一定水平的一致性和融合性 为作为开发人员的你们以及为用户 做出贡献 我们成功地触及了我们平台中 新内容的表面部分 但想要更深入地了解 我们有 175 个 深入视频绘画 仅关于 visionOS 的视频就有 40 个 还有超过 200 个配备了 Apple 专家的 实验室 在你们创造优秀 app 时来为你们回答 热切的提问 现在正是成为 Apple 开发人员 前所未有的好时机 我毫不怀疑你们能创造出能震惊用户 并让他们感到快乐的杰作 祝你们在 WWDC 有愉快的体验! ♪ ♪
♪ ♪
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。