大多数浏览器和
Developer App 均支持流媒体播放。
-
Mac Catalyst 的新功能
了解 Mac Catalyst 的最新更新以及如何将 iPadOS 中的 app 转化到 Mac 上。探索 app 生命周期得到的改进,将新的扩展整合到你的 app,并认识 macOS 的全新面貌与感觉是如何影响 Mac Catalyst app 的。尝鲜全新的为 Mac 优化模式。了解本次的所有更新,这些更新能够让你将 iPad app 转化到 Mac 的过程变得前所未有地容易,其中包括框架可用性和靓丽的外观设计。 要充分利用本次更新的内容,你需要对 Mac Catalyst 有基本的了解。我们推荐你观看“将 iPad app 带入 Mac”来了解基础内容。 如果想对完善 Mac Catalyst app 有进一步了解,我们推荐观看“优化你的 Mac Catalyst app 界面”。
资源
相关视频
WWDC20
- 为你介绍 WidgetKit
- 优化 Mac Catalyst app 的界面
- 使用 iOS 选择器、菜单和操作进行设计
- 在你的 app 中支持硬件键盘
- 适配 macOS 新外观
- SwiftUI 新功能
WWDC19
-
下载
(你好 WWDC 2020)
大家好 欢迎来到 WWDC
欢迎观看“Mac Catalyst 的新功能” 我是 Jason Beaver 稍后我的同事 Brycen Wershing 也将加入我 正如大家所知 Mac Catalyst 是一个 允许我们将 iOS app 引入 macOS 的基础设施
我们是在 macOS Catalina 中 将 Mac Catalyst 作为公共 API 推出的 开发者社区已利用这项技术 为 Mac 带来了一些惊人的 iPad app 这些 app 可以利用更大的显示屏 其中许多还添加了自定义工具条和菜单 它们可以自动获得大量的 macOS 外观 这让它们极适合 Mac
在 macOS Big Sur 中 我很高兴的宣布 我们对 Mac Catalyst 进行了许多改进 这些改进将使你 更轻松地将 iOS app 引入 macOS 并有助于你的 app 在 Mac 上获得更好的体验 开发者将其 iOS app 引入 Mac 时 面临的最大挑战之一 是许多 iOS 框架 对 Mac Catalyst app 不可用 在过去的一年里 我们一直在努力 为 Mac Catalyst 引入许多其他的 iOS 框架 或弥补缺少的功能 以使你的 app 与 macOS 更兼容 我们甚至引入了 macOS 上不可用的框架 从而让你更轻松地 将 app 引入Mac Catalyst 而无需在为 Mac 编译时有条件地排除代码
例如 如果你的 app 依赖于 ARKit 之前 你需要从 macOS 目标中删除框架 条件化你的代码 这样你在构建 macOS 时 就无需引用 ARKit 符号
现在 如果你的目标是 macOS Big Sur 或更高版本 那么你的 iOS 代码的工作方式 与不支持 AR 的 iOS 设备完全相同 你可以链接 ARKit 并使用运行完整性检查 来确定是否应启用 AR 特性 当然 这也适用于许多 Mac Catalyst app 的 macOS SDK 中的其他框架 现在让我们关注一下 我们在过去一年中添加的一些新 API
我们最近增加了对 在 iOS 中处理实体键盘举动的支持 Mac Catalyst app 可以在最新的 macOS Catalina 更新中获得这些支持 可以通过 在响应者链中的一个响应者上实现 pressesBegan 和 pressesEnded 方法 将它们添加到你的 app 中 作为多点触控的另一种应用 游戏尤其可以从中受益 请参考 “在你的 App 中支持硬件键盘”会话 在那里将深入介绍这一点 此外 tvOS 的焦点引擎 API 现在可用于 Mac Catalyst 中的 app 这允许你在视图上设置焦点组标识符 从而控制哪些视图是相关的 并在焦点变更时接收调回 以便更新用户界面 请参阅技术文档 了解有关如何自定义 app 中 可以关注的内容的详细信息 UICollectionView 和 UITableView 允许选择跟随键盘焦点 例如 用户可以使用箭头键 在侧边栏中的单元之间导航 但是 如果在详细视图中 导航表或集合视图 则键盘导航将更多地用作突出显示 在这种情况下 按回车键或空格键 将触发焦点单元的选择 你可以通过更改 “选择跟随焦点”来覆盖此默认行为 UISceneActivationRequestOptions 和 CollectionJoinBehavior 允许你指定窗口创建行为 通过在激活场景时指定集合联接行为 可以控制它是 在现有窗口中显示为新标签页 还是作为新的顶级窗口出现 在 Catalina 的一次更新中 我们将 AppKit 级的 NSCursor 引入了 Mac Catalyst app 这将允许你隐藏 app 中的光标 例如 在开始播放一个全屏视频时 NSCursor 还允许你更改光标的图像 以下是一些可用的光标图像 这些光标图像可用于 app 的某些区域 以帮助用户了解如何与之交互 UIKit 现在包括一个调色板生成软件 和一个颜色挑选器视图控件 在 Mac Catalyst app 中 这会自动打开 AppKit 提供的 标准系统颜色挑选器 UIDatePicker 现在使用 AppKit 提供的内联日期挑选器 从而让 Mac Catalyst app 更适 Mac UIButtons 现在支持打开下拉菜单 在 macOS Big Sur上 它们是常规的 Mac 下拉菜单 你可以在 “UIKit 菜单 、挑选器和控件”会话中 中找到有关这些控件的更多信息 现在 列表显示在各自单独的 NS 窗口中 这些窗口可以调整尺寸 但默认为模式视图控件的偏好内容尺寸 使用自动布局将确保调整好内容的尺寸 弹出视窗现在以 NS 弹出视窗的形式呈现 NS 弹出视窗有自己的独立窗口 扩展到显示视图控件的窗口之外 最后 UISplitViewController 现在支持三列 且前导列可以是侧边栏 当然 Catalina 的 Mac Catalyst app 支持侧边栏 但是有了 Big Sur 我们使其更具 Mac 风格 在 macOS Big Sur 中 UIKit 和 AppKit 完全支持 SF Symbols 并在系统 app 中得到了广泛的应用 SF Symbols 与 San Francisco 系统字体无缝集成 因此符号会自动确保 与所有粗细和尺寸的文本 进行视觉上的垂直对齐 采用 SF Symbols 将使你的 app 在 iOS 和 macOS 上正常工作 甚至感觉更好 Podcast 在侧边栏中使用 SF Symbols 从而使它可以很好地适应不同的尺寸 而不必为每个支持的尺寸包含图像资源 现在 我将让我的同事 Brycen 为你介绍我们对 Mac Catalyst 进行一些其他更改 谢谢你 Jason 大家好 我是来自 Core Darwin 的 Brycen Wershing 我将带你了解更多 Mac Catalyst 今年的新特性 首先 简单回顾一下 可以优化用户界面的新方法 “针对 Mac 的优化” 是一种新的 Mac Catalyst 模式 你可以为 app 选择该模式 从而朝真正优化的 Mac 体验更进一步 它将默认比例从现在的 77% 更改为 100% 这将产生更清晰的文本和图形 但可能会干扰 app 的布局 这种变化在文本中尤其明显 例如我们的示例 app 中的“tarte”一词 通过增加默认的缩放比例 “tarte”将看起来更加清楚、明晰 (按比例缩放以匹配 iPAD) (针对 Mac 的优化) 针对 Mac 的优化还允许各种控件 更改 app 的度量和行为以匹配 Mac 另外还有一些其他的 API 用于访问复选框之类的内容 而这些内容 以前还不可用于 Catalyst app 这是 Mac Catalyst 今年最大的新增内容 你可以查看 “针对 Mac Idiom 优化 Catalyst 用户界面”会话 了解所有相关信息 以及如何 在 app 中采用“针对 Mac 的优化” 接下来 让我们来看看 SwiftUI 如果你的 app 是用 SwiftUI 编写的 那么你不需要 Catalyst 但如果你在 iPad app 中 同时使用了 SwiftUI 和 UIKit 同样的代码 也可以在 Mac Catalyst 中使用 今年 SwiftUI 有许多新特性 这些特性将完美配合 Catalyst 看一些例子 SwiftUI 中的命令 对 Mac Catalyst app 来说效果很好 这与主菜单等 Mac 特性无缝集成
SwiftUI 中新的工具条支持 将在 Mac Catalyst 中正常工作 通过使用语义放置 可以将工具条项 自动放置在 Mac 工具条中 而无需额外操作 当 app 针对 Mac 进行了优化时 SwiftUI 的效果非常好 这一部分将在“针对 Mac Idiom 优化 Catalyst 用户界面”会话中展开 大体上 UIKit iPad app 中使用 SwiftUI 的部分 将继续在 Mac Catalyst 中工作 有关 SwiftUI 的更多信息 请查看“SwiftUI 的新增功能” 现在让我们看看一些与众不同的功能 App 生命周期 UIKit 中的 app 生命周期 围绕 app 可能处于的几种状态 具体取决于用户所关注的点 对此 macOS big Sur 做了一些重大改变 快速复习一下 在 iPad 和 Mac 上 app 在用户面前时都处于前台活动状态 当 app 移到后台时 例如 当你切换到 iPad 上 的另一个 app 时 它将从前台的非活动状态 过渡到后台状态 在 Mac上 当用户退出 app 时 app 将终止运行 在 app 状态之间转换时 Mac 上的委托调用和通知 以及其序列与 iPad 上的相同 如想了解更多关于状态变更期间的情况 请查看 WWDC 2019 中的 “将 Mac 版 iPad App 提升到新高度” 虽然在状态改变期间的情况 在 iPad 和 Mac 上是一样的 但是当状态改变发生时 并没有直接的平行关系 话虽这么说 但可以做出一些粗略估算 今年 我们添加了更多场景 即使 app 被认为正在运行 场景也可能会转换为背景状态 值得一提的是 多窗口 app 中的总体 app 状态 取决于各个场景的激活状态 考虑到这一点 你可能需要处理每个场景的状态更改 当用户不再将包含该场景的窗口 视为活动空间的一部分时 场景将进入背景状态 例如 当窗口最小化 窗口的空间移出视图 或 app 隐藏时 场景将转换为背景 此外 当至少有一个窗口是前台时 或者 app 控制菜单栏时 整个 app 都将是前台 我说得再清楚一点 当你的 app 在活动空间中获得或失去菜单栏时 或者当窗口被遮挡时 它不会转换到背景 总之 我们 使 Mac Catalyst App 的生命周期更像 iOS 这让你的 app 可以更容易地获得用户期望的行为 我们看一个例子 就说你的 app 是一个游戏 根据该游戏与用户的交互方式 你可能希望或不希望 该游戏在移动到后台时暂停 通常 你会想要和 iPad 上一样的行为 但请仔细考虑 你的 app 在 Mac 上的最佳行为 请注意 虽然 Mac Catalyst app 确实获得了 App 小憩的所有好处 但它们并没有获得被挂起的好处 即使是在后台 现在让我们看看 Mac Catalyst 扩展的新功能 照片编辑扩展程序现在已可用 你可以将出色的照片编辑扩展引入 Mac Mac Catalyst 扩展 现在拥有更像 iOS 的生命周期 (使用中挂起未运行) 这方面的一个例子是 当扩展未使用时 它不会被终止 而是会被挂起 并且它们会在需要时立即取消挂起 我们还为 Mac 引入了 iOS 风格的内存限制和内存压力控制 确保在系统内存压力下 你的扩展能够按预期的方式运行 当把所有这些组合在一起时 就意味着更多的 iOS 扩展 将按照预期在 macOS 上开箱即用 你无需执行任何操作即可获得此行为 它将自动应用于所有 Catalyst 扩展 出色的 WidgetKit iPad 小组件 也能成为出色的 Mac 小组件 只要选择使用 Mac Catalyst 你的小组件就可以在 Mac 上正常工作 查看“WidgetKit 入门” 了解如何为 iOS 和 Mac Catalyst 创建 WidgetKit 小组件 现在让我们来看看 今年的一个新特性 通用购买 现在 当你将你的 iPad app 通过 Catalyst 引入 Mac 时 你在 iOS 上的现有用户 不需要再次购买你的 app 此外 你的 app 功能 和 App Store 元数据 可以在一个地方统一管理 换句话说 任何通用购买 app 的购买 都将促使用户可以跨所有平台访问该 app 所有新的 Mac Catalyst app 都选择了通用购买 如果他们愿意 也可以选择退出 若要退出 只需取消选中项目设置中的 “使用 iOS 捆绑包标识符”复选框 如果你有一个非 Catalyst Mac app 或者如果你有一个在 Catalystina 中 创建的现有 Catalyst app 并且你希望 让一款 iOS app 采用通用购买 请参阅有关提供通用购买的文档 以了解如何为你的 app 启用此功能 接下来 让我们看看 macOS 新外观背景下的 Mac Catalyst 已经引入的许多新 Mac 用户界面 也可用于帮助制作 Catalyst app 事实上 大多数这些 都会自动为你的 app 工作 让我们来看看几个例子 看看你的 app 如何利用 这个新的用户界面 今年的一个新特性是工具条样式 你可以对此进行尝试 并确保获得一个 适合你 app 的工具条外观 所有这些外观现在都可以通过 用户界面标题栏工具条样式 用于 Catalyst app (统一紧凑的扩展偏好) 此外 可以在窗口场景的用户界面标题栏上 设置每个窗口的工具条样式 有关 Mac 上 所有新工具条样式的更多信息 请查看“采用 macOS 的新外观”会话 接下来 让我们看看分隔符项 这是一个帮助在 Mac Catalyst 中 定位工具条项的工具 在设计工具条项的外观时 你可能希望项出现在 app 的不同区域 UIKit 提供了分隔符标示符 来帮助你进行此操作 当你将这些分隔符标识符 添加到工具条时 我们将在 app 中自动创建 以分隔符位置为边界的区域 例如 在信息工具条中 从左到右 编写图标在侧边栏中 然后侧边栏分隔符项指示从侧边栏跳出 之后 “收件人”栏显示左对齐 然后 一个灵活的空格侧边栏项 指示对齐方式的更改 最后 信息图标 最终出现在 app 的最右边 描述消息工具条布局的代码 简单易懂 分隔符标示符只是添加到 工具栏默认项标示符方法中 这就是让这种行为 自动运行所需要做的一切 现在让我们看看强调色 今年 你可以指定品牌颜色 用于像选择之类的操作 这种颜色 在 iPad 和 Mac 上同样效果出众 只需在资源目录中创建符号颜色 然后将其设置为强调色 UIKit 将使用此颜色 在用户界面中突出显示
将此强调色用作全 app 范围的颜色 基本上 它会成为 app 的默认色调 当然 对于用户界面的特定部分 你可以在本地将其覆盖
现在让我们看看侧边栏 现在你的 app 侧边栏拥有了更多灵活性 这都是系统自动提供的 一个例子是集合视图的自动拖动重新排序 如果你在 app 中使用集合视图 你的用户将能够拖动和重新排序包含的项 你不需要做任何事就能获得这种行为 总的来说 我们鼓励你尽可能使用集合视图 使用列表布局时 采用集合视图应该不费吹灰之力 现在 有了新的框架和 API 的支持 更多的 iOS 代码 将在 macOS 上开箱即用 如果你选择使用 SwiftUI 它将在你的 Catalyst app 中 发挥出色作用 为你提供更多有关编写 app 的选项
随着 app 和扩展生命周期的改进 在运行完整性上 你的 Catalyst app 将像在 iPad 上一样运行 既然我们有了通用购买 对你的用户来说 app 发现和启用将更简单
而且你的 Catalyst app 将自动获得 macOS Big Sur 中引入的 所有用户界面改进 对于我们对 Mac Catalyst 所做的所有改进 以及它将对你的 app 产生的影响 我们感到非常激动 感谢观看 请尽情享受 WWDC 20
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。