肘子的 Swift 周报 #064|2025 新年快乐

429 阅读5分钟

issue64.webp

欢迎访问 weekly.fatbobman.com 订阅本周报的电子邮件版本。也欢迎访问我的博客 肘子的 Swift 记事本 查看更多的文章。

肘子的话

2025 新年快乐

尽管世界局势并不平静,2024 对我而言却是一个充实美好的年份。这一年里,我写下了 47 篇文章,发布了 51 期周报,也能感受到自己对 Swift、SwiftUI 的理解在不断深入。而最令我欣慰的,是全家人都健康平安。

祝愿大家在 2025 年都能拥有健康的身体、愉悦的心情。也期待 Swift、SwiftUI 在新的一年里继续蓬勃发展。

2025 新年快乐!🎉

前一期内容全部周报列表

原创

为何 Swift 6 中某些视图修饰器无法使用 @State 属性

在 Xcode 16 中,为了改善 SwiftUI 在 Swift 6 模式下的表现,苹果对 SwiftUI 框架的 API 进行了多项调整,以满足更严格的并发检查要求。其中最显著的变化是将 View 协议全面标注为 @MainActor。这些优化虽然总体上改善了开发者在 Swift 6 模式下的编程体验,但也在某些特定场景中引发了一些看似反常的编译错误。本文将详细探讨为什么某些视图修饰器中无法直接使用 @State 属性值,并提供相应的解决方案。

本文是我在 2024 年发表的最后一篇文章。接下来,我将休息一段时间,计划于春节过后( 2025 年 2 月中旬)恢复发布新文章。在此期间,周报仍将正常发布。

近期推荐

探索 SwiftUI 中 TabView 的进展 (Exploring TabView Advancements in SwiftUI)

在 WWDC 2024 上,TabView 迎来了重大升级,不仅简化了开发流程,更为 iPadOS 和 macOS 平台带来了前所未有的灵活性与表现力。此次更新带来了多项引人瞩目的新特性,包括更为简洁的标签页创建方式、增强的程序化导航能力,以及专为 iPadOS 优化的 sidebarAdaptable 样式等。为深入理解这些革新性的变化,Gabriel Theodoropoulos 撰写了两篇深度解析文章,全面展示了 TabView 的演进与提升。

在非富文本环境中解析与展示 Genmoji (Reading and Displaying Genmoji in Non-Rich Text Formatted Data Context)

Genmoji 作为苹果公司在 WWDC 2024 重磅推出的创新功能,巧妙地融合了"生成式"(Generative)和"表情符号"(Emoji)技术,让用户能够轻松创建独具特色的个性化表情。该功能基于 NSAdaptiveImageGlyph 实现,天然适配富文本环境。在本文中,Antonella Giugliano 介绍了如何利用 SwiftUI 来渲染从 NSAdaptiveImageGlyph 中提取的信息,从而在非富文本环境下展示 Genmoji。这一方法为开发者提供了一种灵活的解决方案,用于处理和展示图文混合内容。

在 Metal 和 SwiftUI 中创建溶解效果 (Crafting a Dissolve Effect in Metal and SwiftUI)

Metal 的着色器系统为开发者提供了创建高性能、视觉炫丽特效的强大工具。在这篇文章中,Uladzislau Volchyk 探讨了如何利用 Metal 实现溶解特效,并重点讲解了 Metal 渲染管线的基础知识。作者通过多张图表详细解释了工作原理,同时提供了完整的实现代码,涵盖了渲染器的配置、顶点与片段着色器的编写,以及启用混合功能的渲染管线构建等关键环节。

像苹果一样写 Swift (Write Swift Like Apple)

Swift 编程语言有许多不同的代码规范。在多年的开发经验中,Uwais Alqadri 发现,混合使用 UIKit 和 SwiftUI 的项目时,最好的做法是遵循苹果自己在 Swift 编程中的编码风格。通过两篇文章,他总结了苹果在 Swift 编程中的一些习惯用法,通过合理命名、简洁的类型推断和清晰的协议设计,让代码既保持优雅简洁,又能自然融入苹果的框架设计理念。

MyTallies Widgets, AppIntents, Siri Shortcuts and WatchKit

在这个系列教程中,Stewart Lynch 以一款基于 SwiftUI 和 SwiftData 开发的计数器应用 MyTallies 为基础,全面展示了如何在苹果生态系统中构建多平台功能。教程深入浅出地讲解了小组件(Widgets)的开发、AppIntents 的应用、Siri 快捷指令的集成,以及 WatchKit 手表应用的构建等核心技术。

Swift 官方编程指南 6.0(中文版)

SwiftGG 翻译小组 已经完成了 Swift 6.0 版本官方文档的翻译工作。欢迎大家订阅他们的微信公众号《SwiftGG 技术小组》,该公众号将定期发布与 Swift 相关的技术内容。

往期内容

THANK YOU

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

欢迎访问 weekly.fatbobman.com 订阅本周报的电子邮件版本。也欢迎访问我的博客 肘子的 Swift 记事本 查看更多的文章。