欢迎访问 weekly.fatbobman.com[1] 订阅本周报的中英文电子邮件版本。你也可以直接访问我的网站 肘子的 Swift 记事本[2] 更多的周报内容。
WWDC 2024 观后感
WWDC 2024 已圆满落幕。在这一周里,苹果向开发者们展示了一系列对未来将产生深远意义的新特性和功能。我将对几个感触较深的方面分享一下看法和感受,回顾这次 WWDC 的亮点。
AI
尽管因为信息提前泄漏和长时间的预渲染,许多人在 WWDC 之前已对苹果即将带来的 AI 领域变革有所预知,但在亲眼见到 Keynotes 上的演示后,依然令人振奋和鼓舞。苹果在演示中展现了其对 AI 的理解:避免华而不实的技术炫耀,重视隐私保护,让 AI 技术自然融入日常操作中,并利用设备与用户之间的紧密联系,借助更丰富的上下文信息,提供更为个性化的 AI 体验。
总的来说,苹果的 AI 技术并不会让与会者感受到跨时代的革命性创新,但其将渗透到用户日常生活中的细微之处,让越来越多的人在不经意间享受到 AI 时代的便捷。
Swift
时间飞逝,Swift 已迎来其十周年。随着 Swift 6 的正式推出,这一里程碑标志着 Swift 迈向成熟的重要一步。从 Swift 6 开始,Swift 社区更加明确地展示了将 Swift 打造为跨平台主流开发语言的决心。在此次 WWDC 中,苹果一如既往地展现了对 Swift 的热情和更开放的态度。除了继续加大对社区的支持,苹果推出的新官方框架和应用显著提升了 Swift 的应用广度。这些措施无疑将进一步激发社区的活力,增强开发者对使用 Swift 的信心。
SwiftData
SwiftData 的最新版本带来了意外的震撼。虽然表面上新增的功能似乎并不多,但底层的大幅调整却是颠覆性的。考虑到 SwiftData 仅成立一年,这样的变化尤为出人意料。从首个测试版本的表现来看,稳定性目前仍是主要挑战。这可能会让许多对 SwiftData 抱有高期望的开发者感到失望,然而,深入研究后,我认为这些重大调整背后有其合理之处。新版本的 SwiftData 几乎实现了与苹果生态系统的解耦,并且一旦其增加了一个独立于苹果生态的默认存储实现,它将具备成为一个跨平台开源框架的所有条件。虽然这只是我的个人期望,但鉴于苹果对社区展示出的日益开放的态度,这一变革的可能性不容小觑。如果这成为现实,那么当前的一切等待和努力都将是值得的。
SwiftUI
初次接触 SwiftUI 今年的新特性时,我并未感到特别兴奋。然而,做了更多的研究后,我意识到此次更新在 SwiftUI 的发展史上将具有十分重要的意义。从这个版本开始,SwiftUI 开发团队似乎找到了快速发展 SwiftUI 的正确路径,探索出了在保持声明式框架特性的同时,有效提升其表现力的方法。
在这次更新中,SwiftUI 团队转变了其以往的 API 设计策略——过往的设计高度封装且调整空间较小,现在则为开发者提供了更多的底层控制能力。例如,集成了 UIKit 的手势系统,引入了功能更丰富的自定义容器,Text 自定义渲染以及提供了精确的滚动控制等。这些改进显著提升了 SwiftUI 的能力上限,为高级开发者开辟了更广阔的技术实现空间。
随着 SwiftUI 与 UIKit 框架之间动画、转场和手势等机制的共享,SwiftUI 正逐渐从仅基于 UIKit/AppKit 的框架,转变为与苹果生态中其他 UI 框架更平等的合作伙伴。它不再仅是汲取其他框架的功能,而是开始具备了反哺其他框架新特性的能力。
新版本的 SwiftUI 框架还在代码层面进行了分层处理,单独划分出了 SwiftUICore 框架。这可能主要是为了更好地与 UIKit 和 AppKit 平等合作,但这也给了我对其它可能性的充分遐想空间。
最后
我对 WWDC 2024 的满意程度无疑非常高,这种满意是随着我对新功能和新特性的逐步了解与深入体验而逐渐增强的。这种情况在最近几届 WWDC 中相对罕见。
我也清楚,许多开发者对 WWDC 推出的新功能不甚关心,认为这些新功能短期内与他们无关。然而,了解这些新功能和趋势不仅仅是为了应对未来市场的需求,通过学习新的 API,我们能够吸收许多创新思维和技巧,并将它们应用于当前的开发实践。
因此,WWDC 不只是观察未来趋势的窗口,它同样是一个促进交流、推动进步和自我提升的重要平台。
如果你觉得这份周报或者我的文章对你有所帮助,欢迎 点赞、赞赏,并将其 转发 给更多的朋友。
参考资料
[1]
weekly.fatbobman.com: https://weekly.fatbobman.com
[2]
肘子的 Swift 记事本: https://fatbobman.com
[3]
SwiftData in WWDC 2024:革命仍在继续、稳定还需时日: https://t.ly/c0Cpe
[4]
Fatbobman( 东坡肘子 ): https://x.com/fatbobman
[5]
ScrollView, but better: https://t.ly/UgF6w
[6]
Alex Logan: https://twitter.com/SwiftyAlex
[7]
Hello Adaptive Tab Views: https://t.ly/7BD6y
[8]
Alex Logan: https://twitter.com/SwiftyAlex
[9]
Customizing Gestures in SwiftUI ( Adding new gesture features introduced at WWDC 2024 ): https://t.ly/kEpVp
[10]
Fatbobman( 东坡肘子 ): https://x.com/fatbobman
[11]
@Previewable: Dynamic SwiftUI Previews Made Easy: https://t.ly/dko04
[12]
Antoine van der Lee: https://x.com/twannl
[13]
Building a stretchy header view with SwiftUI on iOS 18: https://t.ly/_Sju1
[14]
Donny Wals: https://twitter.com/donnywals
[15]
Using iOS 18’s new TabView with a sidebar: https://t.ly/6faFm
[16]
Donny Wals: https://twitter.com/donnywals
[17]
Present a form sheet in SwiftUI: https://t.ly/teuIS
[18]
Natalia Panferova: https://twitter.com/natpanferova
[19]
Enhanced replace transition for SF Symbols in iOS 18: https://t.ly/gtlNF
[20]
Natalia Panferova: https://twitter.com/natpanferova
[21]
How to create a SwiftUI floating window in macOS 15: https://t.ly/y21wS
[22]
Pol Piella: https://twitter.com/polpielladev
[23]
Responding to keyboard modifiers on macOS in SwiftUI: https://t.ly/Vm2Sq
[24]
Matthaus Woolard: https://twitter.com/hishnash
[25]
What’s New in SwiftUI - Xcode 16 - iOS 18 (Video): https://t.ly/KowDz
[26]
Kavsoft: https://x.com/_Kavsoft
[27]
MeshGradient Creator (Video): https://t.ly/e9EWV
[28]
Stewart Lynch: https://x.com/StewartLynch
[29]
Drawing a Custom Spiral using SwiftUI's new LinePlot: https://t.ly/mO-eI
[30]
Lucas van Dongen: https://twitter.com/lucasvandongen
[31]
New GitHub Organization for the Swift Project: https://t.ly/noxEU
[32]
Ted Kremenek: https://twitter.com/tkremenek
[33]
Getting Started with Swift Testing in iOS 18 and Xcode 16: https://t.ly/IrJLS
[34]
Chase: https://github.com/JPM-Tech
[35]
WWDC24: What's new in the Human Interface Guidelines: https://t.ly/F04vZ
[36]
Tiago Gomes Pereira: https://twitter.com/tiagogogo
[37]
Emanuele Agosta: https://twitter.com/emanueleagosta1
[38]
Dark Mode App Icons: https://t.ly/wl4Nf
[39]
Louie Mantia, Jr: https://lmnt.me/intro/
[40]
All new frameworks presented at WWDC24: https://t.ly/nE6VZ
[41]
Marco Eidinger: https://twitter.com/MarcoEidinger
[42]
Exploring Conferences: WWDC 2024 and Beyond!: https://t.ly/jNYiz
[43]
Rudrank.: https://twitter.com/rudrankriyam
[44]
Top 5 Exciting Features From WWDC24: https://t.ly/0EtuR
[45]
Vera Dias: https://codingwithvera.com/ask-an-ios-dev/
[46]
WWDC 2024: What's new in the Swift community?: https://t.ly/5FNHw
[47]
Tiago Gomes Pereira: https://twitter.com/tiagogogo
[48]
Pasquale Vittoriosi: https://twitter.com/pasqualevitt
[49]
WWDC 2024 Sample Code: https://t.ly/WqfE6
[50]
探索 WWDC24 上公布的重大更新: https://t.ly/IMW1e
[51]
注册: https://developer.apple.com/login/?return=%2Fevents%2Fview%2FR8SN9874JK%2Fdashboard
[52]
adventure-x.org: https://t.ly/2KV9T
[53]
https://nexus.adventure-x.org: https://t.ly/brRri