Fatbobman's Swift Weekly #052
Reflecting on the Original Aspiration: On the First Anniversary of the Weekly's Inception
Weekly Comment
Reflecting on the Original Aspiration: On the First Anniversary of the Weekly's Inception
Although there are already many excellent Apple development ecosystem weeklies and newsletters online, I still founded this one. The initial intention was simple: to filter out content that interests me from daily readings and share it with readers from my own perspective. From the first issue published in early October last year until now, it's been a year in the blink of an eye, totaling 51 issues.
As social beings, we inevitably crave some external positive feedback. The continuous growth in readership and page views of the blog and weekly did satisfy this need for a while, making me feel that my creations were recognized. I originally thought this would be a long-term encouragement, but as time went on, I found that these ever-increasing numbers began to affect the purity of my creation. Unconsciously, I started to have concerns about topic selection and timeliness when writing, caring more about readers' feelings rather than the intrinsic value of the content. Of course, the problem doesn't lie in the numbers themselves but in the subtle change of my mindset. This needs timely adjustment.
Not long ago, I gave myself a month off (paused updating the blog). During this time, besides completely relaxing, I also deeply analyzed and sorted out my state. Looking back, the Chinese name of my blog, "Fatbobman's Swift Notebook," precisely reflects the original vision: focusing on myself and recording bits and pieces of learning and development. Writing is essentially a process of refining and organizing content, aimed at helping myself grow better. Sharing is a natural extension on this basis. Only when I learn happily, understand thoroughly, and remember clearly does an article truly have the value of being read and loved by others.
Although I haven't made programming and writing my means of livelihood yet, even if I turn to professional creation in the future, I still hope to maintain this state: not deliberately catering to readers, only learning what interests me, and only writing what I find interesting. I firmly believe that only when I enjoy myself can I create truly valuable content.
Maintaining the original aspiration isn't easy, but I will try to continue. Let's return to simplicity together and continue this fun-filled journey of learning and sharing.
Previous Issue|Newsletter Archive
If you appreciate my work and want to promote your product to the Swift and iOS developer community, sponsoring my platform could be an excellent opportunity for you.
Your support through Patreon, or Buy Me a Coffee helps keep this newsletter and blog running. Thank you for finding this content helpful!
Recent Selections
Dev Conversations #2: Dave Verwer & Sven A. Schmidt
Dave Verwer and Sven A. Schmidt, the creators of the Swift Package Index, recently joined an interview with Natan Rolnik. Dave Verwer is also the editor of iOS Dev Weekly, one of the most popular newsletters among Apple ecosystem developers. In the conversation, they shared the development journey, technical architecture, and design philosophy behind the Swift Package Index project. The interview delves into the technical details and evolution of SPI, highlighting the significance of open-source community support and practical experience with server-side Swift.
Growing a blog about Swift to 140k visitors per month
Antoine van der Lee is the creator of SwiftLee, a widely followed blog among Apple developers, and also the author of the Xcode Simulators utility tool RocketSim. In this article, Jakob Jelling details how Antoine grew SwiftLee into a prominent blog with 140k monthly visitors since its inception in 2015 through continuous content creation and development. In March 2024, Antoine decided to fully focus on independent development, making SwiftLee and RocketSim the core of his business. Currently, he is developing his first course, From Side Project to Going Indie aimed at helping creators who aspire to become independent developers.
Optimizing for VoiceOver and Voice Control
VoiceOver is a screen reader that reads aloud the content on the screen, enabling visually impaired users to “hear” and interact with the content independently. Voice Control is designed for users with mobility impairments or those who prefer hands-free operation, offering voice-based control over devices. In this article, Bas Thomas Broek explores how to optimize an app's accessibility for both VoiceOver and Voice Control, analyzing optimization techniques and trade-offs between the two features.
Implementing Shared With You in SwiftUI
Shared with You is a feature introduced by Apple in iOS 16, allowing users to quickly find content shared with them in Messages within relevant apps. For example, users can see all links shared with them directly in Safari without leaving the browser. In this article, Aryaman Sharda provides an in-depth guide on how to implement Shared with You in SwiftUI, including a complete code example and practical tips for testing the feature.
Translation's Concurrency Pattern Spells Out the Plank for UIKit
Although SwiftUI has been around for several years, its adoption still lags behind UIKit within the Apple development ecosystem. In this article, Danny Bolella analyzes the Translation framework, which is only accessible via SwiftUI, to discuss Apple’s shifting priorities between UIKit and SwiftUI. The author points out that the growing number of frameworks favoring SwiftUI (such as Charts, SwiftData, and Observation) clearly signals that while UIKit and AppKit won't be immediately deprecated, Apple is actively promoting SwiftUI as the future mainstream development framework.
SwiftUI Environment
The environment in SwiftUI is a mechanism for sharing data and configuration across multiple views in the view hierarchy, aiming to decouple the data source from its consumers and streamline data passing. In this article, Natalia Panferova thoroughly explores the fundamentals, usage, and advanced applications of the SwiftUI environment, providing developers with a comprehensive guide to understanding and utilizing this powerful tool effectively.
肘子的话
回顾初心,写在周报创刊一周年
网络上虽已有不少优秀的苹果开发生态相关周报和通讯,我仍然创立了这份周报。初衷很简单:在日常阅读中筛选感兴趣的内容,以自己的视角与读者分享。从去年十月初首期发布至今,转眼已是一年,累计51期。
作为社会性动物,人难免渴望一些外部的正反馈。博客和周报的读者量、访问量持续增长,确实在一段时间里满足了这种需求,让我感受到创作获得了认可。原本以为这会是一种长期的鼓励,但日子久了,我发觉这些不断攀升的数字开始影响创作的纯粹性。不知不觉间,我会在写作时,对选题和效性上产生了顾虑,更在意读者的感受而非内容的本身价值。当然,问题不在数字本身,而在于我的心态悄然改变。这需要及时调整。
不久前,我给自己放了一个月的假(暂停更新博客)。这段时间里,除了彻底放松,我也深入剖析和梳理了自己的状态。回想起来,我的博客中文名“肘子的 Swift 记事本”恰恰体现了最初的愿景:以自己为中心,记录学习和开发中的点滴。写作本质上是提炼和梳理内容的过程,目的是帮助自己更好地成长。分享则是在此基础上的自然延伸。只有自己学得开心、用得明白、记得清晰,文章才真正具备被他人阅读、喜爱的价值。
虽然目前我还未将开发和写作作为谋生手段,但即便未来转向职业创作,我仍希望保持这种状态:不刻意迎合读者,只学自己感兴趣的,只写自己认为有意思的。我深信,唯有自己乐在其中,才能创作出真正有价值的内容。
保持初心并不容易,但我会尝试下去。让我们一起回归纯粹,继续这段充满乐趣的学习和分享之旅。
如果您发现这份周报或我的博客对您有所帮助,可以考虑通过 爱发电,Buy Me a Coffee 支持我的创作。
近期推荐
开发者对话 #2:Dave Verwer & Sven A. Schmidt (Dev Conversations #2: Dave Verwer & Sven A. Schmidt)
Swift Package Index 的两位创建者 Dave Verwer 和 Sven A. Schmidt 近期接受了 Natan Rolnik 的访谈。Dave Verwer 同时也是苹果生态中最受欢迎的开发者周报—— iOS Dev Weekly 的编者。在交流中,二位详细分享了 Swift Package Index 项目的开发历程、技术架构及背后的设计理念。访谈深入剖析了 SPI 项目的技术细节与演进过程,并强调了开源社区对项目发展的重要意义,以及服务器端 Swift 技术在实际项目中的应用与实践经验。
将博客发展到每月 14 万访问者 (Growing a blog about Swift to 140k visitors per month)
Antoine van der Lee 是广受苹果开发者欢迎的博客 SwiftLee 的创建者,同时也是 Xcode 模拟器辅助工具 RocketSim 的作者。在这篇文章中,Jakob Jelling 详细讲述了 Antoine 如何从 2015 年开始,通过持续创作和发展,最终将 SwiftLee 成长为每月拥有 14 万访问者的知名博客。2024 年 3 月,Antoine 决定全职投入独立开发,将 SwiftLee 和 RocketSim 作为事业的核心。目前,他正致力于开发自己的第一门课程《从副业到全职独立》,旨在帮助那些希望实现独立开发梦想的创作者。
优化 VoiceOver 和 Voice Control (Optimizing for VoiceOver and Voice Control)
VoiceOver 是一种屏幕阅读器,朗读屏幕上的内容,帮助视力障碍用户“听见”屏幕信息,从而能够独立使用设备的各种功能。Voice Control 则是为运动障碍者或希望免手操作设备的用户设计的语音控制功能,强调通过语音识别实现对设备的操作。在本文中,Bas Thomas Broek 深入探讨了如何优化应用的辅助功能,特别针对 VoiceOver 和 Voice Control 两种模式,分析了两者之间的优化方法与权衡之道。
在 SwiftUI 中实现 Shared With You (Implementing Shared With You in SwiftUI)
Shared with You 是苹果在 iOS 16 中引入的一项特性,旨在帮助用户在相关应用中快速找到在消息中共享的内容。例如,用户可以直接在 Safari 中查看所有与他们共享的链接,无需离开浏览器。在本文中,Aryaman Sharda 详细介绍了如何在 SwiftUI 中实现 Shared with You 功能,提供了完整的代码实现,并分享了在测试该功能时的实用建议。
🪜 Translation 框架揭示苹果对 UIKit 的取舍 (Translation's Concurrency Pattern Spells Out the Plank for UIKit)
虽然 SwiftUI 已推出多年,但在苹果开发生态中,它的使用率仍落后于 UIKit。在这篇文章中,Danny Bolella 通过分析 Translation 这一只能在 SwiftUI 中使用的新框架,探讨了苹果在 UIKit 和 SwiftUI 之间的取舍。作者指出,越来越多对 SwiftUI 更友好的新框架(如 Charts、SwiftData、Observation)向开发者传递了明确的信息:虽然 UIKit 和 AppKit 目前不会被立即取代,但苹果正积极推动 SwiftUI 成为主流开发框架。
SwiftUI 环境机制 (SwiftUI Environment)
SwiftUI 中的环境(Environment)是一种在视图层次结构中跨越多个视图传递数据和配置信息的机制,其主要目的是解耦数据源与数据使用者,减少视图之间的直接依赖,简化数据传递。在这篇文章中,Natalia Panferova 全面介绍了 SwiftUI 环境的基本概念、使用方法以及高级应用,为开发者深入了解并灵活运用环境提供了详尽的指南。