Fatbobman's Blog

Fatbobman’s notes on Swift, SwiftUI, the Apple platforms — and working with AI
The Weekly
Fatbobman’s Swift WeeklyIssue
No.160
2026 · 11 · 02weekly.fatbobman.com

The Case of the Rapidly Disappearing Disk Space

My MacBook contains almost nothing but development tools and related data, and I’ve long maintained at least 500–600 GB of free space. For quite some time, I assumed its internal storage was more than sufficient. But coding agents have changed that. Last week, I found myself in the rather embarrassing situation of having my disk space rapidly exhausted—not once, but twice.

Recent Writing

All posts →
  1. AI-Friendly Frameworks: As Abstraction Moves Up, How Can Verification Keep Pace?

    As AI coding becomes widespread, more and more developers lean toward one view: imperative frameworks like UIKit may suit coding agents better than SwiftUI. The reasoning is intuitive. UIKit's logic is direct and explicit: create objects, set properties, add them to the hierarchy, build constraints. Every step acts on a concrete entity. SwiftUI, by contrast, tucks much of its implementation detail behind declarative syntax, where state, environment, identity, layout, and rendering jointly determine the final result.

  2. Letting AI See SwiftUI: Xcode Preview MCP in Practice — Pitfalls and Hopes

    Xcode 26.3 marked the first time Apple opened its own capabilities to external agents through MCP. Many of those capabilities were already reachable through the CLI, but Preview rendering was entirely new. Xcode 27 went a step further with a headless MCP server, making these tools even easier to call, so I wove Preview rendering deeply into my AI workflows. Along the way I ran into a few pitfalls, and came away with some reflections and hopes.

  3. ArrangementView: Think Before You Arrange

    In the first time I saw the `ArrangementView` API, I had a vague sense of discomfort, though I couldn’t quite put my finger on why. It wasn’t until I actually used it in Xcode 27.1 beta that the feeling began to take shape. After reading more of Apple’s materials and putting the API back into the context of the iPhone Duo, I realized that this discomfort came from two places. Part of it was simply that I hadn’t understood where the API was meant to fit; once I did, that part made sense. The other part came from the API itself—and remained even after I understood its design.

  4. From pbxproj to xcproj: Xcode Project Configuration Gets a JSON Format

    Apple has released the 27.2 beta. Although the iPhone Duo simulator is still missing, the new `project.xcproj` is quite eye-catching. It replaces the `project.pbxproj` build graph inside the `.xcodeproj` bundle, not the entire project bundle. What are its highlights, what problems does it solve, and what remains unchanged? This article will explore these aspects.

  5. SwiftData: Optimization Starts with Modeling

    Once a dataset grows large, SwiftData lists start to stutter. This has been the performance complaint I've heard most often these past few years. Once you actually spend time on it, you find that the slowness isn't only the long initial load — the enormous memory footprint drags performance down just as much. This article looks at why these problems show up in SwiftData, and where to start fixing them.

  6. ContentBuilder Explained: The Secret Behind SwiftUI's Type-Checking Speedup

    In WWDC 2026, Apple engineers introduced a new SwiftUI feature — ContentBuilder. From the usage perspective, it seems to be nothing more than a ViewBuilder with a wider scope. Apple also claims this adjustment can significantly improve type-checking performance. This article will dissect the essence of ContentBuilder and explore the secrets behind the performance boost.