肘子的 Swift 周报 #034 | WWDC 2024,AI 并非全部

肘子的话

欢迎访问 weekly.fatbobman.com 订阅本周报的中英文电子邮件版本。你也可以直接访问我的博客 [肘子的 Swift 记事本]

苹果一直是 AI 领域的务实参与者,提供了卓越的设备端 AI 功能。然而,自从去年生成式 AI 的兴起,投资者、消费者、开发者都渴望苹果能够提供更加直观和感知丰富的 AI 技术。鉴于当前市场的需求,可以预见,在今年的 WWDC 2024 上,与 AI 相关的内容将占据极其重要的地位。

然而,即便撇开 AI 不谈,我预测 WWDC 2024 仍将是近年来议题最多、更新最为显著的一次。这主要基于以下两点原因:

首先,大有可能在本届 WWDC 上宣布 Swift 6 的发布。自 2019 年 Swift 5 推出以来,Swift 社区花了五年时间准备这一重大版本更新,这也是 Swift 发展史上时间间隔最长的一次。接下来,开发者将需要适应新语言特性和一些破坏性的更新,WWDC 2024 上必将围绕这些变化展开深入讨论。

其次,作为苹果生态中首个要求使用 SwiftUI 开发原生应用的硬件产品,年初推出的 Apple Vision Pro 将极大推动 SwiftUI 的发展。预计在本次大会上,SwiftUI 和 SwiftData 将获得重大功能提升,苹果也可能给出将 SwiftUI 定位为首要 UI 框架的明确信号。对于尚未学习或使用 SwiftUI 的开发者来说,这意味着需要投入更多精力去掌握这些新工具。

鉴于今年的 WWDC 充满看点,建议大家调整好状态,全情投入到一周后的盛会中。AI 虽然是亮点之一,但它绝非 WWDC 2024 的全部内容!

为了养精蓄锐,本周我的博客也将停更一期 😎 。

前一期内容全部周报列表

原创

写在 WWDC 2024 之前:SwiftData 的未来潜力与现实挑战

Fatbobman( 东坡肘子 )

在 2023 年的全球开发者大会(WWDC)上,苹果公司推出了备受期待的新一代数据管理框架 ------ SwiftData。作为 Core Data 的继任者,SwiftData 是否能在苹果生态系统中扮演关键角色?随着 2024 年的 WWDC 迫近,本文将评估 SwiftData 自首次发布以来,在 Xcode 15 期间(即首个大版本)的整体表现,并对其未来发展进行展望。

在本文的结尾,列举了 SwiftData 首个版本中缺失的一些关键功能、主要存在的问题,以及若干临时的解决方案。

近期推荐

解密 AttributeGraph ( Untangling the AttributeGraph )

Rens Breur

AttributeGraph 是一个基于 C++ 的私有框架,它在 SwiftUI 的背后默默发挥着关键作用,主要负责跟踪数据依赖关系以确定视图的更新时机。尽管在 SwiftUI 的架构中它扮演着至关重要的角色,相关文献却十分稀少。在本文中,Rens Breur 将展示如何通过堆栈跟踪来阅读和理解 AttributeGraph 的函数,以及如何利用 LLDB 命令行工具来调用和查看 AttributeGraph 的各种打印功能。此外,文章还探讨了如何利用 AttributeGraph 的特性来优化和理解 SwiftUI 中环境变量和偏好( PreferenceKey )的更新机制,并提供了一些实用的调试技巧和函数,帮助开发者更深入地理解和使用 AttributeGraph。

为 iOS 应用图标添加动画效果 ( Tricking iOS Into Animating App Icons )

Bryce Bostwick

在 iOS 系统中,通过替代应用图标系统(Alternate App Icons system),用户可以从预设的静态图像集中选择应用图标。本文中,Bryce Bostwick 探讨了如何通过频繁更换图标来创造动画效果的技术手段。文章详细介绍了如何利用私有 API 进行实现,并且阐释了相关的技术细节。尽管使用私有 API 会导致应用无法通过 App Store 的审核,但开发者仍可以通过这种方式了解到 iOS 系统图标处理机制的内部工作原理,为其他合规的创新应用提供灵感。

@preconcurrency 在 Swift 中的应用解析 ( @preconcurrency Usage in Swift Explained )

Donny Wals

随着 Swift 6 的即将到来,越来越多的开发者在他们的项目中启用了严格的并发检查。在这一过程中,开发者们常常会发现,即便是使用官方框架时,编译器也会发出并发相关的警告。为了抑制这些警告,开发者通常会在导入模块前添加 @preconcurrency。然而,@preconcurrency 的应用远不止于此。在本文中,Donny Wals 将详细介绍 @preconcurrency 的多种用途,@preconcurrency 不仅有助于将旧模块整合进新代码中,也使得新代码能够在旧项目中使用,从而为 Swift 6 的发布做好充分准备。

SwiftUI Mac 应用中的场景类型 ( Scenes Types in a SwiftUI Mac App )

Natalia Panferova

在使用 SwiftUI 构建 macOS 应用程序时,了解并运用各种场景类型是创建多功能且高效应用的关键。每个窗口在 SwiftUI 中都对应一个场景(Scene),这些场景不仅包括常见的应用窗口(WindowGroup),还包含了 DocumentGroup、Settings、Window,以及位于系统菜单栏中的 MenuBarExtra。在本文中,Natalia Panferova 深入分析了这些场景类型的用途和实现方式,帮助开发者充分利用 SwiftUI 的强大功能,构建出更丰富、更高效的 macOS 应用程序。

用 WeatherKit 构建天气应用

Stewart Lynch

WeatherKit 是由苹果开发的一个功能强大的天气信息框架,提供了大量的免费调用次数,极大地降低了开发者构建天气应用或为现有项目增添天气信息的门槛。在这一系列教程中,Stewart Lynch 将指导你通过结合 SwiftUI 和 WeatherKit,一步一步地构建一个完整的天气应用。这一系列共包含 7 个视频,不仅涵盖基础知识,还包括一些高级技巧,旨在帮助开发者充分利用这两个强大工具的潜力。

学习路径 ( Pathways )

对许多初次接触苹果开发生态的开发者来说,面对苹果提供的丰富而零散的资料常常会感到无从下手。为了解决这个问题,苹果特别设立了 Pathways 页面。这里针对设计、Swift、SwiftUI、游戏、visionOS 和 App Store 分发等多个领域,提供了明确的学习路径,集成了相关的文档、视频和其他资源。无论是初学者还是经验丰富的开发者,都可以在这里找到合适的指南,系统地学习和提升自己的技能。

Swift 并发迁移指南 ( The Swift Concurrency Migration Guide )

Swift 6 引入了更加严格的并发检查机制,以彻底消除数据竞争。苹果公司在 GitHub 上发布了这一指南,旨在帮助开发者在启用严格的并发检查后,能够正确编写符合规范的代码。该指南内容全面,包括:详解 Swift 的数据竞争安全模型、指导如何在 Swift 5 项目中开启完整的并发检查、如何渐进式采用并发技术,以及介绍解决常见问题的有效策略。

活动

线下派对:与 Apple 爱好者一起观看 WWDC24 Keynote

参与由 SwiftGG、XR 基地、少数派、初心资本、清华创客空间、西顾视频、超脑 AI 孵化器共同主办的 WWDC 2024 观看派对。这次活动将在 6 月 10 日同步在北京、上海、杭州和深圳举办,为 Apple 爱好者提供一个线下交流的平台,共同观看并讨论 WWDC 2024 的精彩瞬间。

抽奖公告

本次 WWDC 2024 愿望单征集活动已经圆满落幕。明年将继续举办此活动,期待大家届时能再次踊跃参与!点击查看中奖名单

往期内容

THANK YOU

如果你觉得这份周报或者我的文章对你有所帮助,欢迎 点赞 并将其 转发 给更多的朋友。

欢迎访问 weekly.fatbobman.com 订阅本周报的中英文电子邮件版本。

相关推荐
今天啥也没干17 小时前
使用 Sparkle 实现 macOS 应用自定义更新弹窗
前端·javascript·swift
yngsqq1 天前
037集——JoinEntities连接多段线polyline和圆弧arc(CAD—C#二次开发入门)
开发语言·c#·swift
_黎明1 天前
【Swift】字符串和字符
开发语言·ios·swift
RickeyBoy2 天前
基于 Swift 从零到一开发贪吃蛇游戏(四)
swift
Swift社区4 天前
LeetCode - #138 随机链表的复制
leetcode·ios·swift
iOS阿玮5 天前
Appstore的产品突然被下架,还是4.3(a)?
swift·apple
yujunlong39195 天前
flutter pigeon gomobile 插件中使用go工具类
flutter·golang·kotlin·swift
多彩电脑5 天前
Swift的可选绑定(Optional binding)
开发语言·ios·swift
hxx2215 天前
ios swift开发--ios远程推送通知配置
ios·swift
#摩斯先生5 天前
Swift从0开始学习 函数和闭包 day2
ios·xcode·swift