肘子的 Swift 周报 #024 | 秀出你的 WWDC 24 愿望单

肘子的话

我调整了周报的域名,换成了国内可以直接访问的网址。欢迎访问 weekly.fatbobman.com 订阅本周报的中英文电子邮件版本。

时间过得飞快,转瞬间我们已经迎来了 3 月底,距离 WWDC 2024 的召开也只有两个多月的时间。最近,一些开发者开始列出他们期待在 WWDC 2024 上见到的新功能和新特性清单。每位苹果生态的开发者心中都有属于自己的期待和愿望,你心中又期待着什么呢?欢迎将你的愿望清单通过 Twitter 或评论分享给我,我计划在 5 月的某一期周报中作一个愿望单特辑。

自从 2023 年 10 月 9 日推出首期 "肘子的 Swift 周报" 以来,到下一期,正好是半年的里程碑( 中间因为春节休息了一期)。目前,周报通过邮件、微信公众号、Medium、知乎和掘金等多个平台与大家见面。邮件订阅者已突破 1300 人,且开启率稳定在近 60%。这样的数据,特别是邮件订阅量,超出了我的预期,也极大地激励了我。我希望到 2024 年底,邮件订阅者能达到 3000 人。如果你还未 订阅邮件,请帮我实现这个目标。

下周,我将参加在北京举办的 Let's VisionOS 2024 活动,并分享一些关于 SwiftData 和 Observation 相关的内容。我也非常期待在此次活动中能与更多朋友进行面对面的交流。

前一期内容全部周报列表

原创

SwiftData 实战:用现代方法构建 SwiftUI 应用

Fatbobman( 东坡肘子 )

在之前的文章 SwiftData 中的并发编程 中,我们深入探讨了 SwiftData 提出的创新并发编程模式,包括它的原理、核心操作及相关的注意事项。这种优雅的编程解决方案赢得了不少赞誉。然而,随着更多开发者在实际的 SwiftUI 应用中尝试使用 SwiftData,他们遇到了一些挑战:尤其在启用 Swift 的严格并发检查后,发现 SwiftData 基于 Actor 的并发模型与传统的应用构建方法很难融合。本文将采用类似教程的方式阐述如何将 SwiftData 与现代编程理念相结合,顺畅地融入 SwiftUI 应用之中,同时提供策略来应对目前开发者面临的挑战。

近期推荐

利用 SwiftUI 构建 ML 的 App ( Part 1 )

DanielJia

虽然苹果在生成式人工智能领域尚在努力赶超,但其早已为开发者提供了成熟的本地 AI 模型解决方案。DanielJia 计划通过一系列文章,展现如何从零开始训练一个机器学习模型,并将其整合到 iOS 应用开发中,着重强调了与 SwiftUI 的高度兼容性。本篇文章选取 YOLO 模型作为实例,讲解了数据的准备、数据集的下载与处理,以及设置训练环境进行模型训练的全过程,旨在为 iOS 开发者提供一个清晰的机器学习应用开发指南。

Prompt to code in Xcode with Claude 3

James Rochabrun

虽然有传言称苹果计划今年为 Xcode 引入 AI 功能,但许多开发者已经迫不及待地将各种 AI 服务融入他们的开发流程中。在本文中,James Rochabrun 向我们展示了如何开发一个 Xcode 插件,这个插件利用 Anthropic 的最新语言模型 Claude 3 来提供类似于 Copilot 的辅助功能。文章的一个亮点是如何编写有效的提示,这一点对于生成精确的代码输出极为关键。下图展示了实现的最终效果。

Oh Sh*t, My App is Successful and I Didn't Think About Accessibility

Jacob Bartlett

无障碍设计能让更多用户受益,但由于成本和资源的限制,真正在开发过程中全面考虑无障碍性的项目并不常见。在这篇文章中,Jacob Bartlett 深入讲解了在 SwiftUI 应用中实施无障碍设计的重要性,并通过实际示例展示了如何在 SwiftUI 项目的不同环节中应用无障碍开发技巧。他强调,一旦掌握了这些可访问性策略,开发者就应该把这些做法整合到标准开发流程中,以预防未来可能出现的相关问题。文章不仅提供了详细的技术指导,也强调了开发者的社会责任,提醒他们在追求应用成功的同时,不应忽略那些依赖无障碍功能的用户。

Sending Trial Notifications with Provisional Authorization on iOS

Natalia Panferova

苹果的通知框架中包含了一项临时通知功能,这使得应用能够在未获得用户直接许可的情况下,静默地将通知发送至通知中心。这一策略巧妙地引导用户初步了解应用的通知功能。在这篇文章中,Natalia Panferova 详细阐述了如何有效利用这一功能。她认为,实施临时通知是一种极佳的策略,能够在尊重用户偏好的同时,展示应用保持通信的价值,不过开发者在实现各种通知时,必须确保信息的有用性、及时性,并且尊重用户的选择。

Getting Started with Structured Concurrency in Swift

Joannis Orlandos

通过结构化并发,开发者能够有效管理并发任务,减少如竞态条件和死锁等常见的并发编程难题。随着 Swift 6 的发展,开发者预计将全面转向采用结构化并发的开发范式。Joannis Orlandos 在本文中介绍了如何在应用程序中运用任务组和其他结构化概念,以编写更加可维护且易于理解的并发代码。他还计划在未来的文章中探讨 Swift 的 actor 模型,以及如何利用该模型编写无竞态条件的代码。

往期内容

THANK YOU

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

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

相关推荐
Swift社区2 天前
Swift LeetCode 246 题解:中心对称数(Strobogrammatic Number)
开发语言·leetcode·swift
iOS阿玮2 天前
苹果 iOS 19 曝光,你的iPhone 还能再战一年?
app·apple
Lexiaoyao202 天前
SwiftUI 字体系统详解
swiftui·swift
YungFan2 天前
Swift 6.1 新特性
swift
光阴独白3 天前
Apple Login for JavaScript
前端·apple
1024小神3 天前
theos工具来编译xcode的swiftUI项目为ipa文件
macos·swiftui·xcode
Invisible_He4 天前
iOS自定义collection view的page size(width/height)分页效果
ui·ios·swift·collection
无知的前端4 天前
iOS性能优化:OC和Swift实战指南
ios·性能优化·swift
iOS阿玮4 天前
都2025年,你竟然还敢买iOS的源码?
前端·app·apple
JQShan4 天前
为什么 Swift 的反射像个“玩具”?聊聊 Mirror 背后的设计哲学
面试·swift·设计