Xcode 13.2 beta 发布,Swift 这个更新太赞了

知识小集

共 2775字,需浏览 6分钟

 · 2021-11-01

苹果在 10 月 27 号 发布了 Xcode 13.2 beta 版本,这个版本最受开发者欢迎的无疑是 Swift Concurrency 的向后兼容性了,现在可以在部署到 macOS 10.15、iOS 13、tvOS 13 和 watchOS 6 或更高版本的应用程序中使用 Swift Concurrency。这种支持包括异步/等待、参与者、全局参与者、结构化并发和任务 API。


当然,除了这一条外,还有其它的一些更新,一起来看看。

Large Content Viewer

VStack {
Button("Tap me") { print("Button Tapped") }
.accessibilityShowsLargeContentViewer()

Button("Tap me 2") { print("Button Tapped") }
.accessibilityShowsLargeContentViewer {
Text("A different text")
}
}

Large Content Viewer 是自 iOS 13 以来一直存在的辅助功能。


简而言之,当启用可访问性动态类型大小时,它允许我们通过系统 HUD 放大/突出显示用户悬停的 UI 元素。

使用 Xcode 13.2,我们现在也可以将它与 SwiftUI 一起使用。

除了示例中显示的两个视图修饰符之外,SwiftUI 现在还带有一个新的 accessibilityLargeContentViewerEnabled 环境变量,可用于我们需要更改某些手势行为以适应此辅助功能的情况。

视图修饰符和环境变量均可从 iOS 15.0、macOS 12.0、tvOS 15.0、watchOS 8.0 获得。

文档

虽然 Xcode 13.2b1 没有带来许多新的 SwiftUI 功能,但苹果在 SwiftUI 的文档中进行了重大且受欢迎的升级。

新文档可用于:

  • SectionedFetchRequest

  • SectionedFetchResults

  • Text

  • TextField

  • ToggleStyle

  • toggleStyle(_:)

  • ToggleStyleConfiguration

  • ToggleStyle.automatic

  • 所有最近的 background 和 overlay 视图修改器

让我们重点介绍一些重要的变化。

TextField 的 prompt 与 title

更新后的 TextField 文档有一整节解释为什么我们有标题/标签和提示参数,以及两者的使用:

/// Each text field style determines where and when the text field uses a prompt and label.
/// For example, a form on macOS always places the label at the leading edge of the field
/// and uses a prompt, when available, as placeholder text within the field itself. In the
/// same context on iOS, the text field uses either the prompt or label as placeholder
/// text, depending on whether the initializer provided a prompt.

(Toggle) 样式默认值和上下文默认值

SwiftUI 的样式具有很强的适应性,可以根据上下文进行广泛的更改。之前大家都在猜测在哪些场景中采用了哪种风格(并且只能通过实验来回答)。

在这次更新之后,不再需要猜测,因为文档清楚地说明了我们的 Toggle 在不同场景中的显示方式。

一些措辞的变更:从“primitive”到“build-in”

当提到视图、样式、命令等的内置 SwiftUI 定义时,官方措辞是“primitive”。


然而,术语“primitive”并不总是正确的,因为有时,甚至内置定义也由其他 SwiftUI 组件组成。为了解决这个问题,文档已将措辞从“primitive”更改为“build-in”。

更大胆的弃用

尽管 SwiftUI 对使用哪种语法有明确的指导,但大多数旧定义仍然可用,并且被弃用,并带有诸如“您也可以使用 X”之类的温和消息。Xcode 13.2 中的新功能,这些消息更加粗体,并使用命令式词来指导开发人员使用什么。


通用

  • Xcode 13.2 beta 包括对使用 Swift Playgrounds 4 创建的应用项目的支持。

Metal

  • TextureConverter 1.1 添加了对在构建期间解压缩纹理的支持。还可以使用 TextureConverter 作为独立工具在构建过程之外解压缩纹理。要使用,请使用 --decompressed 选项设置解压缩文件的文件路径。

  • TextureConverter 1.1 添加了对错误度量的支持。设置 --metrics 选项在压缩时计算,或使用 --compare 计算两个纹理文件之间的误差。

  • 当输出纹理是最新的时,TextureConverter 1.1 添加了对跳过压缩的支持。使用 --check_date 选项比较输入和输出纹理的修改日期和时间。使用 --check_details 选项比较用于压缩的 TextureConverter 版本和使用的压缩选项(仅限 KTX 文件)。

Organizer

  • 添加了对智能洞察通知的支持。在您的应用程序中监控电源和性能回归时接收通知。单击 Xcode Organizer 的 Regressions 视图右上角的钟形图标以启用通知。

小结

Swift Concurrency 的向后兼容性无疑是本次更新最大的亮点,借助这一能力,开发者可以更高效去处理并发问题。关于 Xcode 13.2 beta 版本更多信息,可以参考 Xcode 13.2 Beta Release Notes , https://developer.apple.com/documentation/xcode-release-notes/xcode-13_2-release-notes

浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报