
You Only Realize Its Value Once It’s Gone
At WWDC 2025’s “Bring Your SceneKit Project to RealityKit” session, Apple officially announced that SceneKit will receive “critical-bug only” maintenance going forward, with no new features planned. The framework is now marked as deprecated in the official documentation, and developers are encouraged to migrate to RealityKit. Although many of us anticipated this day, the formal announcement still evokes a pang of nostalgia.
SceneKit will remain usable for the foreseeable future, but losing official support means it will gradually drift away from the Swift ecosystem, making it harder to integrate seamlessly with new codebases built around Swift's concurrency model. SceneKit isn’t alone in this fate: looking back at Apple’s framework evolution, many once-glamorous libraries have quietly exited center stage.
SpriteKit, the dazzling 2D counterpart to SceneKit, hasn’t seen a major update in ages. Apple's own first-party apps still utilize portions of it, but an end to its maintenance can’t be far off. Unlike SceneKit, though, SpriteKit has no clear successor yet. Apple has been ramping up support for the open-source Godot engine—great news for game developers, but the roughly 30 MB size bump still scares off many iOS teams. One can only hope that SwiftUI will one day absorb SpriteKit’s core powers—animation, effects, physics—so we can craft rich visuals without adding extra dependencies.
Combine’s journey is more nuanced. Apple’s swift-async-algorithms brings some operator-style capabilities to async/await, but many miss the declarative focus and smooth developer experience of Combine. As Swift’s strict concurrency checks advance, using Combine within isolated contexts (outside of @MainActor
) has become increasingly difficult, and potential pitfalls are multiplying. With structured concurrency on the rise, Combine is bound to appear less often in new projects.
Core Data also went unmentioned at WWDC 2025. Fortunately, it underpins the new SwiftData and remains critical for now—no deprecation notices yet. But as SwiftData matures and minimum OS requirements climb, Core Data’s role will inevitably shrink.
Over the past decade, Apple has given us a wealth of first-party frameworks that have dramatically improved the developer experience. Yet as programming paradigms and technologies evolve at breakneck speed, it’s only natural that yesterday’s stars make way for the next generation.
We may have griped and complained about these frameworks at times, but facing their slow fade reminds us of how powerful they once were—and how much convenience and joy they delivered. That bittersweet feeling is something every technologist knows when confronted with change: we embrace progress, but we also give thanks to the old guard. After all, it’s those “outdated” technologies that paved the way for the Apple ecosystem we know today.
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
Exploring the Secrets of layoutPriority in SwiftUI ZStack
In SwiftUI’s layout system, the .layoutPriority
modifier might seem inconspicuous at first glance, yet it can decisively influence a view’s size allocation when it matters most. Most developers know its “magic”—in a VStack
or HStack
, a higher priority view will fight for more space when things get cramped. But did you realize that .layoutPriority
can work wonders in a ZStack
too? Its behavior there is entirely different from VStack
and HStack
. In this article, we’ll dive deep into this little-known feature and show you how to harness layout priority inside a ZStack
.
Recent Recommendations
Foundation Models: Exploring the Limits of On-Device AI
Many developers are eager to integrate Foundation Models into their apps. But as a compact on-device model, it comes with notable limitations. onevcat conducted thorough testing across several key dimensions: memory usage, context window size, concurrency constraints, the potential and instability of Tool Calling, and token overhead in Guided Generation. The article includes detailed data, error scenarios, and several bug reports to aid in understanding and mitigation.
The Ultimate Guide to the Foundation Models Framework
Starting from the most basic prompt examples, Mohammad Azam walks readers through essential features of Foundation Models: streaming responses, Guided Generation, Tool Calling, SwiftUI integration, and persistence with SwiftData. The guide includes a fully working sample app (a recipe recommender) and is a great resource if you're looking to adopt Foundation Models in real-world projects.
A Different Vision for Swift.org
Swift.org recently got a redesign—but is it truly serving the developer community? Drawing from his experience helping build the Java community, Daniel Steinberg argues that the site lacks clarity and community presence. In his view, Apple can continue leading language design, but the developer-facing entry point for Swift needs to be community-driven—a crucial step toward making Swift a truly cross-platform language.
Exploring a New Visual Language: Liquid Glass
Liquid Glass is Apple’s most significant visual overhaul since iOS 7—and a new design foundation across all platforms. Through dynamic light, spatial depth, and natural motion, it delivers an interface that feels warm and responsive.
In this article, Emanuele Agosta, Antonella Giugliano, and Flora Damiano from Create with Swift dive into Liquid Glass’s visual structure, design principles (Hierarchy, Dynamism, Consistency), and cross-platform adaptations. They also offer practical advice for designers and developers aiming to implement the new system.
What's New in SwiftUI for iOS 26
As in past years, Paul Hudson has compiled a thorough summary of SwiftUI changes from WWDC 2025. While this year’s updates aren’t groundbreaking, they address several long-standing developer frustrations—like native WebView support, rich text editing in TextEditor
, section index titles, and more.
True to Hacking with Swift’s tradition, every new feature includes code samples and downloadable Xcode projects to help you get hands-on quickly.
Structured Concurrency Conversion
In this multi-part series (two parts released so far), Jacob Van Order refactors Apple’s UIKit async image loading sample from closure-based callbacks to a modern async/await + Task + Actor structure. As Jacob notes, “Swift 6 doesn’t just recommend structured concurrency—it enforces it with warnings and errors.” This marks a key transition where structured concurrency is no longer optional, but the default.
Demystifying LLMs
At WWDC, Ronald Mannak gave a talk at @omt_conf that takes a different approach to explaining large language models (LLMs). Rather than starting with Transformers, he treats them as a black box and focuses on what happens before and after—making the topic more accessible for developers. He has since expanded the talk into a five-part video series, now available as a thread on X.
Tools
ContainerUI
ContainerUI is a native macOS app developed by Citron for managing containers using Apple’s official container CLI. It offers full-featured container, image, and system log management, with a clean SwiftUI-based interface that follows Apple’s design guidelines. A great example of what native container tooling can look like on the Mac.
Monotype: A Writing Tool for Focus and Flow
Want to recapture the tactile clarity of typing on a real machine? Justin Poliachik’s macOS app Monotype does just that. It’s not a Markdown editor, nor an AI co-pilot—it’s a digital typewriter with no tabs, no formatting, and no distractions. Offline-first and retro in spirit, Monotype helps you write with presence. At just 900KB in size, it's also one of the rare minimalist tools that feels polished and purposeful.
失去时才会觉得可贵
在 WWDC25 的 Bring your SceneKit project to RealityKit Session 中,Apple 正式宣布 SceneKit 将“只修复关键 bug,不再增加新特性”,官方文档也将其标注为弃用状态,建议开发者迁移至 RealityKit。尽管这一天的到来早在许多开发者的预料之中,但当官方正式宣布时,仍免不了让人唏嘘感慨。
虽然 SceneKit 在可见的未来仍可继续使用,但失去官方维护意味着它将逐渐与 Swift 生态脱节,难以与采用现代 Swift 并发模型的新项目无缝集成。SceneKit 并非孤例。回望苹果的框架演进历程,我们发现许多曾经的明星框架正在或已经淡出历史舞台。
SpriteKit 作为与 SceneKit 同期大放异彩的 2D 图形框架,如今已许久未见重大更新。虽然苹果的部分第一方应用仍在使用其功能,但距离官方正式停止维护恐怕也为时不远。与 SceneKit 不同的是,我们至今还没有看到 SpriteKit 明确的接班人。尽管苹果加大了对开源游戏引擎 Godot 的支持力度,但 Godot 带来的约 30MB 体积增加仍让许多开发者望而却步。期待 SwiftUI 未来能够融入更多 SpriteKit 的核心能力——动画、特效、物理引擎等,让开发者在不引入额外依赖的情况下创建高质量的视觉体验。
Combine 的境遇更加微妙。虽然 swift-async-algorithms 为 async/await 带来了部分类似的 Operator 能力,但许多开发者依然怀念 Combine 那种声明式编程的专注感和流畅体验。随着 Swift 严格并发检查的推进,将 Combine 应用在隔离域(除 @MainActor
外)中变得越来越困难,潜在问题也日益增多。可以预见,随着结构化并发代码的普及,Combine 在新项目中的身影将越来越少见。
Core Data 在 WWDC 2025 上同样没有获得任何更新。好在它作为 SwiftData 的底层实现仍承担着重要使命,开发者暂时无需担心其被弃用。但随着 SwiftData 的日趋成熟和新应用最低系统版本的不断提升,Core Data 的使用场景必然会大幅收缩。
回顾过去十余年,苹果构建了众多优秀的第一方框架,极大地改善了生态开发者的开发体验。然而在编程思想与技术手段日新月异的今天,这些昨日明星被新框架取代是技术演进的必然规律。
或许我们在使用这些框架时曾有过各种抱怨和不满,但当真正面临失去时,才会深切感受到它们在特定历史环境中展现出的强大能力,怀念起它们曾经带来的便利与美好。
这种复杂的情感,大概就是每一位技术人在面对变迁时都会经历的——既要拥抱新技术的进步,也要感谢旧框架的陪伴。毕竟,正是这些“过时”的技术,构成了苹果生态成长路上不可或缺的台阶。
如果您发现这份周报或我的博客对您有所帮助,可以考虑通过 爱发电,Buy Me a Coffee 支持我的创作。
原创
探索 SwiftUI ZStack 中的 layoutPriority 奥秘
在 SwiftUI 的布局体系中,.layoutPriority
这一修饰器看似并不起眼,却在关键时刻能左右视图的尺寸分配。大多数开发者都了解它在 VStack
和 HStack
中为子视图争取更多空间的“魔法”能力——优先级越高,越能从拥挤的布局中脱颖而出。但你是否注意过,.layoutPriority
在 ZStack
中也能大显身手?但它的运作机制与 VStack/HStack
完全不同。本篇文章将带你深入剖析这一鲜为人知的特性,演示如何在 ZStack
中应用布局优先级。
近期推荐
Foundation Models:苹果设备端模型的边界探索
很多开发者都迫不及待地想在自己的应用中集成 Foundation Models。但作为一个小尺寸的本地模型,它仍有不少限制。onevcat 近期对该框架的多个关键维度进行了详实测试,包括内存占用、上下文窗口、并发限制、Tool Calling 的潜力与不稳定性,以及 Guided Generation 的 token 开销等。文中不仅详列了实测数据、系统行为与出错情况,还报告了多个 Bug,便于追踪和规避。
Foundation Models 实战全指南 (The Ultimate Guide to the Foundation Models Framework)
Mohammad Azam 从最基础的 prompt 使用讲起,逐步引导读者掌握串流响应(streaming)、结构化输出(Guided Generation)、工具调用(Tool Calling)、SwiftUI 集成与 SwiftData 持久化等 Foundation Models 的关键能力,并提供了完整示例 App(食谱推荐应用)。如果你正计划在实际项目中使用 Foundation Models,这篇实战导向的长文非常值得一读。
重新思考 Swift.org (A Different Vision for Swift.org)
Swift 官网近期完成改版,但这个新首页真的服务好开发者社区了吗?Daniel Steinberg 结合自己参与 Java 社区建设的经验,提出了自己的看法。他指出,目前的 swift.org 更像是一个文档入口,缺乏导向性,也不具备“社区首页”的氛围。Daniel 主张,Apple 可以继续主导语言设计,但社区需要一个由社区主导、面向所有开发者的 Swift 入口。这是让 Swift 成为真正跨平台语言的重要一步。
Liquid Glass 视觉语言初探 (Exploring a New Visual Language: Liquid Glass)
Liquid Glass 是自 iOS 7 以来 Apple 最大的一次设计语言革新,也将成为所有 Apple 平台 UI 的新基石。它通过整合动态光影、空间深度与真实物理反馈,带来了更具“情感温度”的界面体验。
在这篇文章中,Create with Swift 的三位作者 Emanuele Agosta、Antonella Giugliano、Flora Damiano 共同分享了他们对 Liquid Glass 的深入理解,内容涵盖视觉原理、层级结构、设计三原则(Hierarchy、Dynamism、Consistency),以及 Liquid Glass 如何在不同平台间实现一致而自适应的呈现方式。同时也提出了不少实用建议,适合设计师与开发者参考。
What's New in SwiftUI for iOS 26
一如往年,Paul Hudson 对 WWDC 2025 中 SwiftUI 的更新做了全面梳理。虽然今年的更新不算“重磅”,但解决了不少开发者常年绕不开的问题,例如 WebView 支持、富文本编辑、列表区块索引标题等,称得上是一次“细节制胜”的版本迭代。与 Hacking with Swift 上一贯的风格一样,Paul 为每项新特性都准备了示例代码和可运行的 Xcode 项目,方便快速上手测试。
并发模型改造实录 (Structured Concurrency Conversion)
在本系列文章中(共四篇,目前已发布两篇),Jacob Van Order 以 Apple 提供的 UIKit 异步图片加载示例为基础,尝试将传统的 closure 写法迁移至现代的 async/await、Task 与 Actor 模式。Jacob 指出:“Swift 6 并不只是建议你使用结构化并发,而是会用错误和警告强制你采用它。”——这是 Swift 并发模型从「可选」走向「默认」的重要拐点。
大语言模型入门解惑 (Demystifying LLMs)
在 WWDC 期间,Ronald Mannak 于 @omt_conf 分享了他对大语言模型(LLMs)的理解。与多数从 Transformer 原理讲起的讲解不同,Ronald 将其视为“黑盒”,将重点放在 Transformer 之前与之后的流程上,使得内容更易理解、也更贴近开发者视角。他已将这次演讲扩展为 5 段短视频,并在推文串中发布。
工具
ContainerUI
ContainerUI 是一个由 Citron 开发,服务于 Apple 官方 container CLI 的 macOS 开源桌面应用,具备容器、镜像、系统日志与运行状态的完整管理能力。
Monotype: 找回专注写作的乐趣
想在数字喧嚣中回味机械打字机的沉浸感?Justin Poliachik 开发的这款 macOS 应用给出了一个优雅的答案。Monotype 以复古、离线优先的姿态回归写作本质——不是 Markdown 编辑器,也不是 AI 写作平台,而是一台真正意义上的“数字打字机”:无格式、无标签、无干扰,只有你和文字。更令人惊讶的是,它的体积只有 900KB,堪称当下罕见的小而美写作工具。
Combine and RealityKit dev here ) It's totally fine that new things are coming and replacing. Great when they are better than the predecessor (which is not always like this). High-level wrappers are great for entry levels to jump in. But Objective-C still walking among us.