Apple 发布 Swift 新版本 ,增强并发性,正则表达式支持与新SwiftUI
导读:在 WWDC 2022 上,Apple 宣布了SwiftUI 的新迭代版本,这是它为 iOS、iPadOS、macOS 和 watchOS 构建 UI 的声明性框架。其中最重要的亮点是 SwiftUI 新的图表功能、精致的导航、新的控件等等。
Swift是 Apple 开发的一种编程语言,用于构建在其体系内的应用程序。自 2014 年 WWDC 大会上发布以来,这款开源语言已经经历了一系列的重大更新或功能迭代。
时至今日,Apple 仍然没有任何放松,不遗余力的扩展 Swift 。除了应用程序市场仍然火热外,其它公司,比如微软等也在寻求成为应用程序开发的权威。
在2022年的 WWDC 上,Apple 发布了新的开发人员工具——它为 Swift 提供了更多更广泛的功能列表。
在Swift 语言主题演讲中,Apple 主任工程师 Ben Cohen 这样做开篇总结:
“在过去的一年里,Swift 在并发性方面的改进、功能升级,以使 Swift 代码更易于阅读和编写、为客户工作流提供工具以及在语言引擎等改进。”
Swift 版本的新功能
本次 Swift 更新最重要一点是支持并发性。Apple 主任工程师 Cohen 如此说:
“现在已经可以将带有 Swift Concurrency 的代码部署到过去三年发布的所有mac操作系统中”
很多 Apple 开发者也能明显看到,苹果的开发团队付出了很多努力来简化读写并行运行的代码。
“代码其中很大一部分是Swift 的Actor模型,Actor 允许开发使用线程安全、并发执行的代码来隔离数据。Swift 可以防止用户意外地在并行线程之间共享该状态,从而消除原来主要发生的Bug来源。”
Cohen 补充说,Swift 新的更新在“分布式Actor”方面更进了一步:
“分布式参与者可以跨多个进程或设备通信,‘分布式’关键字标记可以远程访问的这些工作和方法,无论是 Mac 上的单独进程、其它不同设备间点对点,还是从设备与服务器上使用 Swift 编写的后端通信。”
Cohen 在WWDC 会上宣布 Apple 发布Swift的新的源代码包,其中概述:
“为 Swift 现有的序列算法集带来了并发性。在 Swift 序列协议支持 Zip 算法,从组合到序列化的不同形式,异步算法带来了一个用于将两个异步序列压缩在一起的方法版本。”
Actors 透过 async/await 经典方法进行通信。
SwiftUI 自定义布局
SwiftUI是 Apple 用于在其平台上构建用户界面的框架,此次升级的接收布局选项比过去的要强大,但也会稍微复杂一些。
其中,一个新的 Grid (表格)容器功能可以帮助开发者构建多维和动态的布局。开发者还可以创建自己的容器,这些容器的行为将100%完全可自定义。
新的图表构建工具以 Swift Charts 的形式出现在 SwiftUI 中。Swift Charts的功能包括在图表上反映应用程序的风格,提供纵向和横向视图的开发能力,以下是创建条形图和折线图的方法:
Chart(datapoints) { datapoint BarMark(
x: .value("X-Axis-Label", datapoint.valueX),
y: .value("Y-Axis-Label", datapoint.valueY)
)}Chart(datapoints) { datapoint LineMark(
x: .value("X-Axis-Label", datapoint.valueX),
y: .value("Y-Axis-Label", datapoint.valueY)
)
.foregroundStyle(by: .value("Category", task.category))}
此外,还有预览数据结果以及其它可视化工具,从而使用户和开发者更加容易理解数据。
而如今数据是每个人最关心的问题,因此SwiftUI提供的能力可以帮助开发者更好的解决问题。
Swift 更新还包含一个升级的字符串处理能力。
它的能力主要用于帮助开发者描述希望在字符串中的查找模式,查看特定信息的正则表达式正在不断得到增强。
Apple 负责 XCode 的工程经理Ken Orr 提到说,新的正则表达式已经直接内置于语言中,Swift 编译器会直接检查代码中正则表达式的正确性 。
更多关于SwiftUI的新功能,各位同学可移动至苹果开发者频道:
https://developer.apple.com/videos/play/wwdc2022/10052/
编辑:场长
相关阅读:
史上首次!苹果、谷歌、微软、Mozilla 达成共识,让Web开发者更轻松