肘子的话

欢迎拜访 fatbobman.substack.com 订阅本周报的中英文电子邮件

上周对苹果公司而言是适当繁忙的一周。他们发布了搭载 M3 芯片的 MacBook Air、推出 iOS 17.4 版别让欧盟用户能够接入第三方使用商铺,并且在官网上对 Spotify 和欧盟表达了不满,一起还暂停了 Epic 的开发者账户(据悉将很快恢复)。此外,苹果还发布了 Xcode 15.3 版别,并随之带来了 Swift 5.10 的更新。

在这很多更新中,对开发者而言最严重的莫过于 Swift 5.10 的发布。并发模型最早在 Swift 5.5 版别中引入,包括了 async/awaitactor 和结构化并发等特性。随后的 Swift 5.7 版别引入了 Sendable,作为保证类型在并发环境中线程安全的基础概念。而今,Swift 5.10 在启用完整并发查看选项后,将强制在言语的一切方面施行彻底的数据阻隔,以编译时查看为手段保证安全。

我在运用 Swift 5.10 从头编译现有项目代码时,主要遇到的问题源于新引入的 strict concurrency for global variables 机制,尤其是对类型特点的正告。现在开发者们应该尽早启用严厉的并发查看,为接下来的 Swift 版别做好准备。

可能很快,交际媒体上就会充斥着关于 Xcode 中各种错误和正告的截图。期望我们能以平缓的心态面对这个或许“痛苦”的改变过程,究竟这是向前迈进、提升代码质量和使用稳定性的必经之路。

前一期内容全部周报列表

原创

怎么为 SwiftData 动态的构建杂乱的谓词

Fatbobman( 东坡肘子 )

NSCompoundPredicate 让开发者能够将多个 NSPredicate 目标组合成一个复合谓词。这一机制特别适用于那些需要根据多重判别规范进行数据过滤的场景。然而,在 Swift 重构的新 Foundation 结构中,缺失了与 NSCompoundPredicate 相对应的直接功用,这一变化对期望利用 SwiftData 构建使用的开发者造成了不小的应战。本文旨在探究怎么在当前的技能条件下,利用 PredicateExpression,动态地构建出符合 SwiftData 需求的杂乱谓词。

在过去的三周里,我通过三篇文章探讨了 Swift Predicate 的原理和结构,以及怎么 在 SwiftData 中处理 Predicate 可选值 的相关注意事项。通过一段时刻的实践,Swift Predicate 对我产生了深远的影响。它不仅在特定结构中发挥作用,我预见在未来的开发过程中,Swift Predicate 将在更多数据逻辑判别的场景中广泛使用。

近期推荐

SwiftUI-First Architecture

Mike Apurin

自 SwiftUI 问世以来,寻觅最合适的架构便成为了广受关注的议题。Mike Apurin 在测验传统结构形式后发现这些办法未能满意他的需求,因此他倡议了一种 “SwiftUI-first” 的架构理念。这一理念主张充分利用 SwiftUI 所供给的东西与特性,例如 @State@Environment,而不是将其硬套在传统的架构形式上。他所推重的 SwiftUI-first 架构,强调了灵敏性与可扩展性,鼓励开发者充分利用 SwiftUI 的最新功用,并根据各自项目的需求灵敏调整架构,以达到最佳的使用表现。

High Performance Swift Apps

Jacob Bartlett

开发使用只是第一步;关键在于保证其运转安全且高效。Jacob Bartlett 在本文中透彻阐述了他对新使用的功用优化的完整流程。凭借详细的代码改进、Instruments 东西剖析以及功用对比数据,文章全方位展示了各项优化措施怎么明显提升使用功用。这些优化最终保证了使用能高效生成 2FA 代码,并最大化有利地势用了设备的多核 CPU,以此供给更快的处理速度和优化的用户体会。尽管介绍特定优化技巧的文章不在少数,但像本文这样对整个使用优化过程进行深化剖析的内容却相对稀有,对开发者而言具有极高的参考价值。

Pitfalls and solutions when building Metal Shaders for Core Image Kernel

JuniperPhoton

作为专业拍照软件 PhotoCam 的开发者,JuniperPhoton 对图画处理的效率和质量持有严厉的规范。他在本文中深化剖析了运用 Core Image 结构搭配 Metal 着色器进行图画处理时所面对的应战及其相应的处理策略。文章不只是供给了实际的技能详情,还揭示了怎么规避一些常见的问题,对于那些期望深化理解 Core Image 与 Metal 联合使用的开发者来说,这无疑是极具价值的参考资料。

Swift 5.10

Michael Tsai

近来,跟着 Xcode 15.3 的发布,Swift 5.10 正式问世。该版别在并发言语模型中引入了彻底数据阻隔机制,为行将发布的 Swift 6 版别奠定了坚实基础。Michael Tsai 收集了来自不同专家对 Swift 5.10 新特性的点评和总述,涉及了中心功用的总结及其对未来的潜在影响。

正如 第20期周报 所评论,开发者们应尽早为 Swift 6 做准备。尽管我在之前现已启用了完整的并发查看,但升级到 Xcode 15.3 后,现有项目代码仍是遇到了一些新问题。处理这些问题越早,将来面对的应战就越小。

Migrating my SwiftUI App to VisionOS in 2 Hours

Cihat Gndz

在这篇文章里,Cihat Gndz 详细叙述了他怎么在两小时内,将他的 SwiftUI 使用 CrossCraft 成功搬迁到 visionOS 上。尽管将搬迁时刻压缩到两小时可能听起来有些夸张,但 Cihat 通过直播整个过程并共享视频,实实在在地展示了这一成果。这一经历向我们展示,若你的使用现已在 iPadOS 和 macOS 上运转良好,那么将其适配到 visionOS 相对来说会简略许多。本文不仅记录了详细的搬迁步骤,还为想要敏捷将自己的使用转移到 visionOS 的开发者们供给了名贵的建议和攻略。

往期内容

THANK YOU

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

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