High Temperatures and Strange Atmospheric Phenomena
Since mid-June, my city has also experienced unusually high temperatures. Although 30-31°C may not seem dramatic compared to other regions that routinely see 35-40+°C, for me, accustomed to temperatures in the 20s, this heat has become quite unbearable.
Accompanying the high temperatures are some strange atmospheric phenomena. On June 19th, a rare cloud formation appeared over Dalian—Asperitas. The sky took on an intensely oppressive quality, creating an almost "apocalyptic" sensation, though fortunately it lasted only half an hour. A few days ago, we witnessed an extraordinary lightning display during the night. In a single night, meteorological equipment detected 7,649 lightning strikes. Looking out my window, it felt like someone was continuously arc welding throughout the night. Interestingly, despite the abundance of lightning, there was virtually no thunder to be heard.
These local phenomena actually reflect a global trend. Based on weather patterns over the past two months alone, this year will likely be another year of extreme heat. Temperatures around the world have been breaking records since spring. From a meteorological history perspective, climate zone migration is normally a cyclical process that occurs over centuries or millennia. However, the current rate of change far exceeds the theoretical pace of natural evolution—it has compressed to a timeframe of mere decades.
Since the Industrial Revolution, atmospheric CO2 concentrations have risen sharply, reaching levels unseen in at least 700,000 years. It's almost certain that human activities have altered and accelerated the natural process of climate change.
For human civilization to progress and develop, we need more creation and activity, which inevitably disrupts the ecological balance that has persisted for ages. In Earth's evolutionary history, dramatic and intense climate changes are not uncommon—the planet has always managed to heal these wounds with time and restore equilibrium. When all this settles into tranquility, will humanity still resemble what we are today?
BTW: Last week, our newsletter's email subscription count surpassed 4,000 people. Thank you for your support! 🙏
Previous Issue|Newsletter Archive
If you appreciate my work and want to promote your product to the Swift and iOS developer community, sponsoring my blog & newsletter could be an excellent opportunity for you.
Original
Dancing with AI: My Month with Claude Code
Almost without noticing, I’ve already spent a full month exploring Claude Code. During this time, it has quickly become the new darling of developers everywhere, with discussions about Claude Code flooding my social media timeline. When a fellow developer on Discord asked me to share my thoughts on Claude Code, I thought this would be a perfect opportunity to reflect on my experience with it, as well as how AI has transformed my development work over the past two years.
Recent Recommendations
Attribute Graph
In SwiftUI, the Attribute Graph is both important and mysterious. It's one of SwiftUI's core runtime mechanisms, used to track view state and dependencies, driving efficient and minimal UI updates. Chris Eidhof shares his insights in this video (with transcript), recommending related resources and tools to help developers explore SwiftUI's internal workings in depth.
Schedule a Countdown Timer with AlarmKit
At WWDC 2025, Apple released the long-awaited AlarmKit, supporting the creation of one-time alarms, weekly recurring alarms, and instantly activated countdown timers. Unlike UserNotifications
which remains "silent" in silent or focus modes, AlarmKit's alerts can break through limitations to sound and display banners at critical moments. In this article, Natalia Panferova provides a detailed explanation of its API usage and demonstrates how to configure it in scenarios like main apps, Widgets, and Live Activities.
Why I Stopped Using Structs for Everything in Swift
The Swift community has long advocated for the "structs first" development philosophy. The immutability and thread safety of value types seem perfect, but in large projects, this "struct omnipotence" theory exposes quite a few problems. In this article, Koti Avula combines practical experience to deeply analyze the pitfalls of embedding reference types in structs, unexpected behaviors of closure capturing self, and common misconceptions about performance, sharing why he no longer adheres to "struct supremacy."
How to Create Progressive Blur Effects in SwiftUI
In iOS 26, system apps like Apple Music introduced more refined gradient blur effects. However, these features are not yet fully open to developers and are difficult to support on lower system versions. Justin Yan shares two implementation approaches in this article:
Using
UIVisualEffectView
to reuse system-level blur gradientsCombining QuartzCore and private CAFilter APIs to customize progressive blur While there's still a gap from Liquid Glass's native effects, it's sufficient to achieve a similar visual experience.
I Shipped a macOS App Built Entirely by Claude Code
In this extremely long article, Indragie Karunaratne shares his experience using Claude Code to develop and ship a native macOS app from 0 to 1. The author believes Claude's Swift 6 and SwiftUI generation capabilities are quite practical, and through techniques like priming agent and automated feedback loops, he achieved almost complete automatic code writing (95% of 20,000 lines of code generated by AI). The article also explores future IDE forms and thoughts on building high-quality automation processes, as well as the possibilities of "human-AI collaborative programming."
Using the Swift Android SDK
Although the Android Workgroup has been established, there's still no official guide on installing and using the Swift Android SDK on Swift.org. Abe White demonstrates in this video how to install the Swift Android SDK through skip
and run and test Swift code on Android devices.
After watching the video, I immediately installed the SDK following Abe's method and got my two libraries (originally only supporting macOS/Linux) running smoothly on Android in a very short time. The process was surprisingly straightforward.
Tools
Objects2XLSX – Export Your Dataset to XLSX in Seconds
A type-safe, declarative Swift library that lets you export object arrays to professional Excel (.xlsx) files with just a few lines of code. Supports multiple worksheets, complete styling, async data sources, and real-time progress tracking.
✅ Swift 6 concurrency support
✅ KeyPath mapping + generic Sheets
✅ Multi-platform support: macOS/Linux/Android
✅ 100% Excel-compatible file generation
Equatable Macro – Improving SwiftUI View Performance
SwiftUI's default diff mechanism easily misjudges when encountering closures or needing to ignore certain states, causing unnecessary view redraws. The common optimization approach is to make views conform to Equatable
and use custom logic to control refreshes, but manual implementation is both tedious and error-prone. For this, Mirza Učanbarlić, inspired by Cal Stephens's ideas in Understanding and Improving SwiftUI Performance, created the @Equatable macro that automatically generates Equatable implementations, greatly simplifying the development process.
高温与奇怪的天象
从 6 月中开始,我所在的城市也迎来了罕见的高温天气。尽管相较于动辄 35-40 多摄氏度的其他地区,30-31 摄氏度在数字上看起来并不夸张,但对于习惯了 20 几度的我来说,这种温度已经很难熬了。
与高温相伴的还有一些奇怪的天象。6 月 19 日,大连上空出现了一种罕见的云——糙面云。天空呈现出强烈的压迫感,给人一种"末世"将近的错觉,幸好仅持续了半个小时。几天前的夜间又出现了高频闪电现象。一夜之间,据气象部门设备检测共发生了 7649 次闪电。我当时看向窗外的感觉就像有人在用氩弧焊进行焊接,整夜不停。有趣的是,尽管闪电极多,却几乎听不到雷声。
这些局部现象其实反映了全球性的趋势。至少从最近两个月的天气表现来看,今年仍会是气温极高的一年。全球很多地方的气温从春季开始就在不断刷新着记录。从气象历史的角度看,气候带迁移本是一个正常的周期性趋势,但这种变化通常以百年、千年为尺度。而现在的发展速度远超理论上的自然演进——已经缩短到以几十年为单位了。
工业革命以来,大气中二氧化碳浓度急剧上升,目前的平均水平为过去至少 70 万年内所未见。几乎可以肯定,人类活动改变并加速了气候变化的自然进程。
人类文明要进步、要发展,就需要更多的创造和活动,而这些又势必会改变延续已久的生态平衡。在地球的演化史上,气候发生巨大而剧烈的变化并不罕见,地球总能用时间来抹平这些创伤,让一切恢复如初。只是,当这一切归于平静之时,人类是否还会是今天的模样呢?
BTW:上周周报的邮件订阅人数已经突破了 4000 人,感谢各位读者的支持 🙏。
如果您发现这份周报或我的博客对您有所帮助,可以考虑通过 爱发电,Buy Me a Coffee 支持我的创作。
原创
与 AI 共舞:我的 Claude Code 一月谈
转眼间,我使用 Claude Code 已经整整一个月了。这段时间里,它迅速成为了开发者们的新宠,关于 Claude Code 的讨论充斥着我的社交媒体时间线。最近有网友在 Discord 上问我对 Claude Code 的看法,正好借这个机会分享一下这段时间的使用感受,以及过去两年中 AI 为我的开发工作带来的便利与思考。
近期推荐
深入 Attribute Graph
在 SwiftUI 中,Attribute Graph 既重要又神秘。它是 SwiftUI 的核心运行时机制之一,用于追踪视图状态和依赖,驱动高效、最小化的 UI 更新。Chris Eidhof 在这段视频(附文字稿)里分享了他对其的洞察,并推荐了相关资料和工具,帮助开发者深入探索 SwiftUI 的内部原理。
用 AlarmKit 实现倒计时定时器 (Schedule a Countdown Timer with AlarmKit)
在 WWDC 2025,苹果发布了开发者期待已久的 AlarmKit,支持创建一次性闹钟、每周重复闹钟和即时启动的倒计时计时器。与 UserNotifications
在静音或专注模式下“悄无声息”不同,AlarmKit 的警报能突破限制,在关键时刻响起并显示横幅。在本文中,Natalia Panferova 详解了其 API 的使用方法,并演示了如何在主应用、Widget 和 Live Activity 等场景下进行配置。
为什么我不再“万物皆 struct” (Why I Stopped Using Structs for Everything in Swift)
Swift 社区一直推崇"优先使用 struct"的开发理念。值类型的不可变性和线程安全性看似完美,但在大型项目中,这种“struct 万能论”却暴露出不少问题。在这篇文章中,Koti Avula 结合实战经验,深入剖析了引用类型嵌入 struct 的陷阱、闭包捕获 self 的意外行为、以及关于性能的常见误区,并分享了他为何不再坚持“struct 至上”。
SwiftUI 如何实现渐进式模糊效果?
在 iOS 26,Apple Music 等系统应用引入了更细腻的渐变模糊效果。不过,这些功能尚未完全开放给开发者,也难以兼容较低系统版本。Justin Yan 在本文中分享了两种实现思路:
使用
UIVisualEffectView
复用系统级模糊渐变结合 QuartzCore 和私有 CAFilter API 自定义渐进式模糊
虽然与 Liquid Glass 的原生效果仍有差距,但足以实现接近的视觉体验。
我用 Claude Code 独立开发了一款 macOS 应用 (I Shipped a macOS App Built Entirely by Claude Code)
在这篇极长文中,Indragie Karunaratne 分享了他用 Claude Code ,从 0 到 1 开发并上线一款原生 macOS 应用的经历。作者认为 Claude 的 Swift 6 和 SwiftUI 生成能力已相当实用,并通过 priming agent、自动化反馈循环等技巧,几乎实现了全部代码的自动编写(20,000 行代码中 95% 由 AI 生成)。文章还探讨了未来 IDE 形态和构建高质量自动化流程的思路,以及“人机协作式编程”的可能性。
Swift Android SDK 快速上手体验 (Using the Swift Android SDK)
虽然 Android Workgroup 已经成立,但在 Swift.org 上仍找不到关于安装和使用 Swift Android SDK 的官方指南。Abe White 在这段视频中演示了如何通过 skip
安装 Swift Android SDK,并在安卓设备上运行和测试 Swift 代码。
看完视频后,我马上按照 Abe 介绍的方法安装了 SDK,只用了很短时间就让我原本仅支持 macOS/Linux 的两个库顺利跑在 Android 上,过程非常顺畅。
工具
Objects2XLSX - 一键将数据集转换成 xlsx
一个类型安全、声明式的 Swift 库,让你用几行代码将对象数组导出为专业级 Excel (.xlsx) 文件。支持多工作表、完整样式、异步数据源和实时进度跟踪。
✅ Swift 6 并发支持
✅ KeyPath 映射 + 泛型 Sheet
✅ 多平台支持,macOS/Linux/Android
✅ 生成文件 100% Excel 兼容
Equatable Macro – 改善 SwiftUI 视图性能
SwiftUI 默认的 diff 机制在遇到闭包或需要忽略某些状态时容易误判,导致视图不必要的重绘。常见的优化方式是让视图符合 Equatable
,用自定义逻辑控制刷新,但手动实现既繁琐又容易遗漏。为此,Mirza Učanbarlić 受 Cal Stephens 在 Understanding and Improving SwiftUI Performance 一文中的思路启发,打造了 @Equatable 宏,自动生成 Equatable 实现,极大简化开发流程。