肘子的话

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

近来,Swift 社区发布了 Swift 6 的发布流程及预期时间表。自 2024 年 3 月 15 日起,将从主分支中剥离出 release/6.0 分支,标志着 Swift 6 项目正式加快推进,估计将于今年下半年与新版 Xcode 同步发布。

Swift 6 将引进更为严厉的并发代码查看机制,这将导致在 Swift 6 的言语形式下很多当前的代码将无法正常编译。为了给开发者供给更富余的适配时间,Swift 6 编译器将继续支撑 Swift 5 的言语形式,这意味着开发者无需忧虑现有代码无法在 Swift 6 中运行。为了保证代码可以充分利用 Swift 并发性的最新特性,建议开发者尽早在项目中启用严厉并发查看标志(SWIFT_STRICT_CONCURRENCY),为适配 Swift 6 做准备。

回忆自己四年前开端学习 Swift 言语的阅历,感到非常幸运,因为那时 Swift 5 现已发布,完成了 ABI 的稳定性,然后降低了学习本钱。在 5. x 版别期间,尽管 Swift 言语的核心功用现已稳定,但社区仍然为其增添了众多新功用和特性,这既增强了 Swift 的功用性和适用范围,也不可避免地提高了新手的学习门槛。Swift 中众多的语法糖和新特性,使得许多初学者在面临杂乱代码时感到十分困惑。

事物总是具有两面性,一方面开发者期望 Swift 可以变得更加强大,习惯更多的开发场景和渠道;另一方面,大家也希望它能更易于学习和运用,使开发者可以在不添加学习负担的情况下享受到新特性的便利。

宏的引进在一定程度上企图平衡这种对立,经过将杂乱功用和特性封装成宏,使得更多开发者可以轻松受益。然而,在当前的开发环境中,自定义宏的运用不只会明显添加项目的编译时间,并且在宏较为杂乱时,Xcode 的呼应也会受到影响,导致代码主动提示和宏打开功用频频犯错。等待随着 Swift 6 的发布,Xcode 也能同步提升,带来更高的效率、稳定性以及符合年代的 AI 辅助编程能力。

前一期内容悉数周报列表

原创

怎么处理 SwiftData 谓词中的可选值

Fatbobman( 东坡肘子 )

因为 SwiftData 更改了数据模型的创立机制,并且谓词创立也采用了基于模型代码的类型安全形式。因此,当开发者在为 SwiftData 构建谓词时会遇到很多的处理可选值的操作。本文将探讨在构建谓词时,处理可选值的一些技巧和注意事项。

近期推荐

How will Apple’s changes in the EU affect you?

Gabrielle Earnshaw

本文深入剖析了苹果公司为符合欧盟数字商场法案(DMA)而在欧盟对 App Store 进行的调整,探讨了这些改动怎么影响 iOS 运用的推行及其收费形式。Gabrielle Earnshaw 提出了对于那些在欧盟 App Store 中发布运用的开发者来说,仔细评价是否接受新的商业条款是必要的。对绝大多数运用而言,维持现行的业务形式可能是较为理想的选择。文章还强调,尽管当前大部分运用可能不立即从商场替代方案或付出处理革新中获益,但这些改变无疑为 iOS 生态系统带来了振奋人心的进展,有望为开发商和消费者带来立异与优化。

Get the biometric authentication prompt for protected keychain items in the iOS simulator

Marco Eidinger

本文解说了怎么在 iOS 模仿器上针对受维护的钥匙串项启用生物辨认认证提示。因为 Secure Enclave 这一要害的安全组件仅在实体设备上存在,用于执行如指纹匹配等认证进程,其在模仿器中的缺失意味着运用 kSecAttrAccessControl 特点维护的钥匙串项在模仿器上无法触发生物辨认认证提示。为弥补这一差异,Marco Eidinger 供给了一种奇妙的解决战略,即在执行钥匙串项读取操作之前,经过显式调用 LAContext.evaluatePolicy(_:localizedReason:) 办法来保证模仿器可以模仿出生物辨认认证提示,然后在模仿器中重现与实体设备相似的用户体验。

Modding Plugins back into Xcode

Bryce Pauken

在本篇文章中,Bryce Pauken 深入探讨了怎么将传统插件功用从头整合进 Xcode。在 Xcode 8 推出之前,开发者可以经过拜访未公开的 API,运用第三方插件来修改和增强 Xcode 的内部功用,赋予了广泛的自定义及扩展能力。这种灵活性允许开发者依据自己的需求高度定制开发环境,尽管这套插件系统并未得到官方的支撑与文档说明。随着 Apple 对安全措施的加强,对第三方代码执行和插件加载的限制,传统的插件方式逐渐走向完结( 从 Xcode 14 开端,Apple 彻底移除了对旧式插件的支撑 )。Pauken 在文章中不只翔实地介绍了怎么完成将旧式插件功用从头融入 Xcode 的要害步骤,还推出了名为 XcodePluginLoader 的东西,旨在迅速康复对插件的支撑,为开发者供给了一种强大的自定义东西。

Twitter vs. X

Emerge Tools

本文剖析了自 Elon Musk 于 2022 年收买并将 Twitter 重命名为 X 之后,iOS 客户端运用所阅历的转变。Twitter 一直被视为一个老练的运用程序,但这次收买和重命名意味着它从稳定发展的状态跳跃到了一种“快速举动并接受打破常规”的新阶段。在 Twitter 转变为 X 的大约六个月时间里,iOS 运用的体积添加了 13.3MB。文章对 Twitter 的最终版别(v9.54)与 X(v10.25)之间 iOS 运用的各项改变进行了翔实的探讨,要点包括运用中的资产改变、动态框架、SPM 搬迁进程、资源重复问题,以及 Grok AI 聊天机器人的引进等方面。尽管名称和所有权发生了改变,作者观察到,从整体架构上看,运用并未阅历实质性的改变。文章还指出,经过进一步优化运用中重复的资源(如图标),有可能为运用减少高达 8MB 的体积。

Custom Core Data migrations

Pol Piella

Core Data 搬迁触及将数据模型从一个版别更新至另一个版别的进程。虽然在许多情况下 Core Data 可以主动完成这一搬迁,但某些杂乱场景则要求开发者手动介入,经过供给精确的映射模型来指导从源模型到方针模型的搬迁进程。对于特别杂乱的搬迁需求,还需编写继承自 NSEntityMigrationPolicy 的自定义搬迁战略。本文由 Pol Piella 编撰,详细介绍了自定义 Core Data 搬迁的完成办法,包括创立映射模型文件和自定义搬迁战略类。文章以存储音乐轨道信息的运用为例,展现了怎么经过引进新实体和联系以及施行自定义搬迁战略来应对数据模型的扩展问题。

值得一提的是,从 iOS 17 起,Apple 在 Core Data 中引进了一种新的搬迁形式——阶段搬迁(Stage Migration),这与 SwiftData 的搬迁办法相似,为开发者供给了更多灵活性和控制力。想了解更多关于这一新特性的信息,可以参阅此篇文章

往期内容

THANK YOU

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

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