烟花与无人机 | 肘子的 Swift 周报 #069

请添加图片描述

weekly.fatbobman.com 订阅本周报的电子邮件版本。访问我的博客 肘子的 Swift 记事本 查看更多的文章。加入 Discord 社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。

烟花与无人机

今年我过了一个安静的春节。

相传在上古时期,中国有一种叫“年”的怪兽,头长触角,凶猛异常。每到农历年新旧交替的除夕这天,“年”兽都要出来伤害人类。但由于“年”兽最怕红色、火光和炸响,因此,每年除夕家家张贴红对联、燃放爆竹,户户烛火通明,以此来驱赶“年”兽。这便是“过年”一词的由来。

对于中国人而言,年味总是与烟花的绚丽和空气中淡淡的硫磺味息息相关。然而近些年来,为了环境与安全考虑,越来越多的城市对燃放烟火做出了限制。即便是像我所在的这样往年几乎从不禁放的城市,今年也对核心区域进行了管控。如此一来,城市确实安静了许多,但年味似乎也随之淡去。

随着无人机技术的发展,越来越多的庆典活动开始用无人机编队取代传统烟火。初次观看时,数千个光点在夜空中勾勒出流动的立体图案,那种震撼确实令人惊叹。但时间久了,与烟火相比,总觉得少了几分灵气。相比那些经过精密编程的无人机表演,烟火虽偶有瑕疵,却在绽放生命最后一刻的灿烂中带给人更多遐想。这也许印证了很多艺术形式的共同特点:过于具象的表达反而会限制观众的想象力与参与感。

科技的进步并不意味着一切都要追求精准和秩序。生活中很多难忘的瞬间,恰恰来自那些意外与不确定。无人机表演、机器人舞蹈诚然是与时俱进的产物,这些创新确实推动了科技与产业的发展,也的确能带来惊艳的视觉体验。但它们不应成为传统形式的替代品,而应是一种合理的补充。今天看来多么先进的技术,或许几年后就显得平平无奇。反而是那些流淌在血液里,经过千百年传承的"不先进"活动,才是一个民族乃至人类文明得以延续的重要载体。

在安全、环保、人文、科技之间寻找平衡,这是一个需要我们继续探索的永恒课题。

前一期内容全部周报列表

近期推荐

Swift 构建技术的新篇章 (The Next Chapter in Swift Build Technologies)

尽管 Swift 已经开源了很多年,但长期以来 Xcode 和 Swift Package Manager (SwiftPM) 使用不同的构建引擎。这不仅造成了构建体验的不一致,而且对于非 macOS 开发者也无法享受到很多 Xcode 独有的构建功能。Apple 在 2025 年 2 月 1 日发布的一个重要举措:开源 Swift Build。这是一个基于 llbuild 项目的强大构建引擎,支持多种产品类型(如库、命令行工具、GUI 应用等),并通过构建图优化最大化并行构建效率。如此一来,不仅提供了统一的构建体验,还提升了开发效率,并进一步增强了 Swift 的跨平台能力,特别是在 Linux 和 Windows 上的支持。Apple 还计划与社区合作,完成构建系统的统一工作,为未来的性能优化和新功能奠定基础。本文由 Owen Voorhees 撰写。

Swift 并发编程术语表 (A Swift Concurrency Glossary)

Swift 为并发编程引入了不少的新术语和新概念。Matt Massicottei 通过本文对这些内容进行了集中梳理。文章以术语表的形式组织,每个术语都包含类型、用途、引入版本和作者的评论。Massicotte 不仅列出了术语的定义,还提供了使用场景、注意事项和进一步的解释,帮助开发者避免常见的陷阱。通过清晰的解释和示例,文章有助于降低 Swift 并发编程的学习曲线,推动更多开发者采用并发编程模型。对于想要掌握 Swift 并发编程的开发者来说,这篇文章是一个不可或缺的参考资料。

苹果设备的多平台开发 (Multiplatform Development for Apple Devices)

尽管 SwiftUI 为适配多平台提供了诸多的便利,但由于苹果的“Learn once, apply anywhere”设计理念,开发者仍需要针对不同的平台对项目做有针对性的优化和调整。在本文中,Darryl Bayliss 分享了他将项目 Christmas Chill 从 UIKit 迁移到 SwiftUI、添加 Apple Vision Pro 支持、使用条件编译块以及利用构建阶段进行依赖注入等技术细节。通过这些步骤,作者展示了如何利用 SwiftUI 的跨平台能力,同时针对不同平台进行优化。

在 iOS 应用中选择最佳邮件发送方式 (Choosing the Best Way to Send Emails in an iOS App)

在 iOS 上,开发者可以选用多种方式在应用中发送邮件。Douglas Hill 分析了每种方法的优缺点,帮助开发者根据应用需求选择最合适的方案。Hill 的建议如下:

  • ShareLink/UIActivityViewController:适合通用分享场景,支持多种分享方式(如邮件、消息应用等),但不适合需要发送到特定地址的场景。
  • mailto 链接:适合需要预填收件人、主题和正文的场景,跨平台支持(iOS、macOS、visionOS)且支持用户默认的邮件应用,但不支持附件。
  • MFMailComposeViewController:适合需要发送附件或预填邮件内容的场景,但仅限于 iOS 设备且依赖 Apple Mail。

🪜 理解 Apple Photos 应用与 PhotosKit 的照片存储模型 (Understand Photo Storage Model on Apple’s Photos App and PhotosKit)

作为 PhotonCam 的开发者,Weichao Deng 在本文中深入探讨了 PhotosKit 的工作原理,并结合其 Android 开发经历,对比了 Android 和 iOS 在照片存储和处理上的差异。文章详细介绍了 PHAssetPHAssetResource 的作用,以及 PhotosKit 如何管理照片的多个版本和辅助数据(如 Apple/ISO Gain Map、Segmentation Matte 等)。此外,文章还为跨平台开发者提供了实用建议,强调在设计和开发照片应用时,需确保跨平台一致性,特别是针对照片存储模型的处理。

让你的应用提供 macOS 系统级服务 (Provide macOS System-wide Services from Your App)

系统级服务允许 macOS 应用将其功能扩展到整个系统,用户可以在任何应用中选择文本并通过上下文菜单或 Services 菜单调用这些服务。Natalia Panferova 以她的工具应用 EncodeDecode 为例,详细讲解了如何通过定义服务提供者类、注册服务并配置 Info.plist 文件,实现系统级的 URL 编码和解码功能。文章还提供了测试和调试建议,如使用 pbs 工具验证服务注册,适合希望在 macOS 应用中集成系统级服务的开发者参考。

往期内容

THANK YOU

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

weekly.fatbobman.com 订阅本周报的电子邮件版本。访问我的博客 肘子的 Swift 记事本 查看更多的文章。加入 Discord 社区,与 2000+ 中文开发者深入交流 Swift、SwiftUI 开发体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fatbobman(东坡肘子)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值