肘子的话
在上期周报发布的当晚,邮件订阅量突破了 3000。结合其他发布渠道,每期周报在发布当周至少覆盖 6000 名以上的读者。虽然这一成绩谈不上多么卓越,但已远远超出了我创办之初的预期。
周报能够获得如此多读者的喜爱,最重要的原因在于社区中不断涌现的优质内容。过去一年中,虽然一些优秀的作者因种种原因减少了分享,但每个月都会有新的作者带来高质量的文章。在大多数情况下,我甚至会因为精彩文章过多而纠结于取舍,这种“幸福的烦恼”让我倍感欣慰。
当然,读者的支持也是周报持续发展的重要动力。无论是收到读者的正向反馈,还是看到一些作者的文章因周报推荐而获得更多阅读量,都让我感受到这份工作的意义和价值。
上周,我对博客架构进行了重要调整,将其从传统的云主机 + CDN 模式迁移到 Serverless。此举极大地简化了博客的部署流程和耗时,因此我也趁机优化了一部分代码。在此期间,由于 DNS 刷新的延迟问题,部分读者可能遇到页面无法访问的情况。以下是几种可能的解决办法:
- 清空浏览器的缓存,特别是与博客相关的部分;
- 将设备的 DNS 设置为更知名的解析服务商,以加快 DNS 刷新;
- 访问博客的备份站点:fatbobman.github.io。
此外,我在博客中新增了一个“小贴士”板块,用于分享内容简短、主题明确的文章。这类文章聚焦于快速解决实际问题,不涉及原理和讨论,方便读者以最快的方式找到答案。
感谢每一位读者的支持和反馈,期待未来能和大家一同见证更多精彩内容的诞生!
原创
近期推荐
🪜 SwiftUI 高级导航 (Advanced Navigation Destinations in SwiftUI)
SwiftUI 自引入 NavigationStack
后,显著提升了导航的灵活性。然而,NavigationPath
和 navigationDestination
的原生实现在实际使用中仍显局限,尤其是每个导航目标都需单独定义处理器,容易导致代码重复和维护困难。为了解决这些问题,Michael Long 开发了开源库 Navigator,为 SwiftUI 提供了一套功能更加强大的导航层,支持声明式与命令式导航的无缝切换。在这篇文章中,Long 深入探讨了原生导航方式的不足,以及 Navigator 如何通过枚举导航目标、协调模式和导航检查点等特性改进开发体验,为复杂的应用导航需求提供了优雅的解决方案。
在 iOS 应用中获取 Git 修订信息 (Getting Git Revision info within your iOS App)
在项目快速迭代的过程中,当开发者收到测试员或用户的反馈时,往往难以及时定位问题所在的分支或版本。Rich Infante 分享了一个简单且高效的方法:通过构建脚本,将当前代码库的 Git 提交哈希值、分支名称等信息嵌入到应用中,帮助开发者在调试和发布版本时快速追溯源代码的状态。
🪜 SwiftUI 文本动画 Bug 的发现与解决 (Uncovering and Solving a SwiftUI Text Animation Bug)
SwiftUI 因其简洁易用的动画功能而广受开发者喜爱,但有时,即使我们精心调整,视图也未必能按预期实现动画效果。在这篇文章中,Omar Elsayed 分享了他在项目中遇到的一个问题:Text
视图的 offset
动画无法正常工作。通过参考开发者 kurtlee93 提出的解决方案,作者利用 GeometryEffect
和 AnimatableData
成功解决了这一问题。
遇到动画失效的问题时,开发者常用
AnimatableData
为视图显式提供动画插值,经常能达到预期效果。不过,我们仍然期待苹果尽快修复这些长期存在的 bug。
Xcode 16 的新特性如何帮助我的项目减少 66,000 行代码 (How a New Xcode 16 Feature Helped My Work Project Eliminate 66,000 Lines of Code)
Xcode 16 引入了可构建文件夹(buildable folders)特性,通过文件系统直接管理文件,取代了对 pbxproj
文件中复杂引用的依赖。在这篇文章中,Makwan Barzan 分享了他们团队如何通过细致而卓有成效的努力,成功减少了旧项目 pbxproj
文件中的 66,000 行冗余引用。采用文件夹组织结构不仅降低了合并冲突风险,也显著提升了项目管理效率。
🪜 使用 Swift Vapor 构建天气 API 后端 (Building a Weather API Backend with Swift Vapor: A Deep Dive)
我想很多 Swift 开发者在构建后端服务时或多或少都会想过尝试一下 Vapor。Arrinal 使用 SwiftUI 和 Vapor 构建了一个开源的天气服务项目。通过两篇文章,他系统地介绍了如何运用 Clean Architecture 的思想构建一个可维护、易扩展的 SwiftUI 应用,并用 Vapor 提供支持其功能的后端服务。在前端部分,他展示了如何通过依赖注入(Swinject)和 Combine 实现响应式数据流,同时保持架构清晰分层;在后端部分,他采用 Vapor 的现代特性(如 async/await 和中间件)构建了一个高性能、标准化的 API 服务,与 SwiftUI 应用无缝集成。
SwiftUI List:使用代码示例详解数据行展示 (SwiftUI Lists: Present Rows of Data Explained with Code Examples)
List
是 SwiftUI 中一个核心组件,不仅能够高效展示数据行,还提供了多种预置的样式以适应不同的 UI 需求。然而,对于每种风格的特点和适用场景,许多开发者可能并不熟悉。Antoine van der Lee 在这篇文章中,通过一系列直观的代码示例,系统地介绍了 SwiftUI List
的基本功能、不同风格的应用,以及如何实现分组、选择、多样式背景等功能。这篇文章为开发者全面掌握 List
的使用提供了一份清晰且实用的指南。
活动
LET’S VISION 2025 创作者大会火热开票,席位有限,速来抢购!
LET’S VISION 是中国最大、最具国际化的 Apple 生态盛会,被誉为 Apple 生态中的“超级盛典”,犹如 Apple 世界的 TGS、E3 或 ChinaJoy!本届大会将带领你走在 Apple 生态的最前沿,展示最创新、最尖端的产品与技术。无论你是开发者、创业者,还是行业精英,这将是你不可错过的年度盛会!
- 📅 大会日期:2025年3月1日-3月2日
- 📍 举办地点:上海鲜花港
- 🎯 本届主题:人工智能 + 空间计算 = 无限♾️
在一个专为本次大会定制的 10000 平方米户外场地上,我们将为你呈现震撼的活动体验。大会现场不仅有能容纳超过 1000 人的主会场,还有 100+ 展位展示最前沿的技术和创新产品。今年,我们还特别设计了“极客相亲角”环节,为创业者提供与 VC 投资人、合作伙伴、行业领袖面对面交流的机会,帮助你拓展资源、结识合适的合作伙伴和人才。
🚀 特别嘉宾阵容:
今年我们邀请了全球顶尖行业专家和苹果官方团队亮相——
Apple 官方设计布道师 Sara,
Hacking With Swift 创始人 Paul,
Apple Design Award 2024 获奖者、Blackbox 创始人 Ryan,
App Store Award 2024 获奖者、THRASHER 创始人 Mike,
以及更多重量级嘉宾。
🎤 丰富的活动内容:
- 30场演讲,洞察未来科技发展趋势
- 7个工作坊,与专家零距离互动,深度学习
- 100个应用展示,探索最前沿的创新作品
这不仅是一个技术交流的平台,也是全球 Apple 生态中的创新者、领袖、投资者齐聚的舞台!你将亲身体验到最前沿的人工智能与空间计算技术,并与行业领袖们共同探讨未来科技的无限可能。
⏳ 仅开放 1000个名额,一旦售完将不再补充!快来抢票,和我们一起见证未来科技的巅峰时刻!