fatbobman.com

Aug 17, 2026 Issue #149

Who Is the Slower App Review Process Actually Stopping?

Slower App Store reviews have become something more and more developers can clearly feel. In the age of vibe coding, the...

Explore Full Issue

Recent Weekly Issues

by Fatbobman

From Using AI to Delegating Work to AI: Some Thoughts

From Q&A, code generation, to letting Agent take on more complete work,不知不觉间,我已经使用 AI 好几年了。这些年里,变化的不只是模型能力,人与 AI 的协作方式也一直在变。我也在一边使用,一边调整自己的方法。我关心的已经不只是“AI 能不能完成这项工作”,而是另外几个问题:执行范围是否稳定,结果能否被信任,投入是否可以预期,以及什么时候需要人介入。

by Fatbobman

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.

by Fatbobman

Controlling Orphans in SwiftUI Text: Uncovering the Undocumented avoidsOrphans

SwiftUI's Text has a default behavior: when the final line of a paragraph is left holding a single stranded word or character, it proactively pushes the complete word group from the preceding line down to join it, so that nothing is left standing alone. This bit of thoughtfulness is right most of the time, but it comes at a cost — the preceding line may be left with a wide gap. In narrow containers, or in mixed Chinese-English typesetting, that can end up disrupting the balance of the paragraph rather than preserving it.

Guest Post by Megabits

Liquid Glass: A Field Guide to UIKit Compatibility Pitfalls

Although Liquid Glass has been around for two years, the compatibility issues it introduced haven’t completely disappeared. Drawing on a real-world project, SLIT_STUDIO developer Megabits summarizes several common UIKit adaptation pitfalls and the solutions he used to address them.

by Fatbobman

Debugging Notes on Two SwiftUI Animation Bugs

Easy-to-use animation has always been one of SwiftUI's defining features. But the nature of a declarative framework is a double-edged sword: once an animation misbehaves, tracking down the cause is often trickier than in an imperative framework. This post records two SwiftUI animation bugs I ran into over the past two weeks, along with how I tracked each of them down.

by Fatbobman

From Size Class to Available Space: Is horizontalSizeClass Still Reliable?

Starting with WWDC 26, when an iPhone app is mirrored to a Mac through iPhone Mirroring, its window can be freely resized. At the same time, iPhone-only apps running on iPad will also enter a resizable environment. Even without updating a physical device to a beta system, developers can already experience this change through Xcode 27 previews or the iOS 27 simulation environment in Device Hub.

by Fatbobman

Core Data + Observation: From Property-Level Reactivity to a Freer Mental Model

The introduction of the Observation framework has refined SwiftUI’s state reactivity from the object level down to the property level, significantly reducing many unnecessary view computations caused by coarse-grained observation. I recently explored and implemented Observation support in Core Data Evolution, giving `NSManagedObject` property-level precise observation capabilities. This article discusses the motivation behind this feature, how to use it, its implementation approach, the engineering challenges involved, and some of the trade-offs made during development.

by Fatbobman

Taming Row Height and Spacing Jumps in SwiftUI List with a Custom Layout

The declarative expression of animation is one of SwiftUI's core strengths. But in some scenarios the result isn't always as smooth as we'd hope. A typical example: when the content height inside a `List` row changes dynamically — a subtitle going from empty to non-empty, or text changing its line count after an update — the system's built-in layout engine often fails to produce a continuous transition. Instead we get visible height jumps, flicker, or even clipping anomalies. This article starts from that phenomenon, peels back the causes layer by layer, and gives a solution built entirely on SwiftUI's native primitives. Along the way it revisits a few key constraints in SwiftUI's layout machinery.

Read the original on fatbobman.com ↗