# 90 - You Only Realize Its Value Once It’s Gone

Published on

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.

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.

Weekly Swift & SwiftUI highlights!