SwiftUI at 7: Still Perpetual Beta, Senior Devs Say

Seven years after its blockbuster 2019 announcement, SwiftUI remains a perpetual beta. Senior engineer Yakov Manshin makes that case in a detailed critique, citing broken official tutorials, unpredictable layouts, and performance that lags UIKit. His video and transcript, published in July 2026, argue that Apple's framework has failed to deliver on its promises of declarative simplicity and cross-platform reuse.

The Broken Tutorial

Manshin points to Apple's own SwiftUI tutorial, Landmarks, as evidence. Running the complete demo project on the latest macOS yields a broken sidebar. He noticed the issue over two years ago, and it remains unfixed. "The first time I noticed it was over two years ago, and since then, nothing has changed," he says. The only difference: Liquid Glass now gives buttons inconsistent sizes.

This isn't an isolated case. Production apps like UTM, a virtual machine emulator, show SwiftUI's fragility. Manshin calls UTM "a fantastic piece of engineering" but notes its SwiftUI reliance makes it feel like "an early prototype."

Data Flow Chaos

SwiftUI's data flow was supposed to be a single source of truth. Instead, developers navigate a maze of property wrappers and macros. We started with @State, @Binding, and ObservableObject. Then came the Observation framework and @Observable macro, attempts to fix performance disasters.

But the problems persist. "You can never know for sure how many times a view will update and, when it does, why it chose to," Manshin says. Even undocumented debugging APIs like Self._printChanges() don't reveal the full picture. "SwiftUI's reactivity is a black box," he adds.

Layout Unpredictability

SwiftUI's layout engine, built on size negotiation, sounds logical in a keynote but fails in practice. Building a floating view or custom sidebar becomes a nightmare. Developers resort to GeometryReader, which Manshin calls "the ultimate admission of defeat." Once you use it, you lose declarative benefits and manually calculate coordinates—more verbose than Auto Layout, ironically.

And the layout system changes between updates, breaking coordinate math.

API Churn and Feature Parity

SwiftUI's API instability forces developers into compatibility hell. Codebases are littered with if #available checks. Manshin highlights several examples:

  • Dismissing the keyboard on scroll: available since iOS 7 in UIKit, but only iOS 16 in SwiftUI.
  • Customizable window toolbars: a "breakthrough" feature added only recently, decades after AppKit.
  • AsyncImage: introduced in iOS 15, but still lacks built-in caching as of July 2026.

Apple replaced buggy NavigationView with NavigationStack, but that means maintaining separate branches for older versions.

"We're basically doing Apple's QA work for them," Manshin says.

Performance Gap

Performance remains a sore spot. Manshin ran a head-to-head comparison: a simple image gallery in UIKit vs. SwiftUI on an older iPhone. Despite optimizations like background image decoding, the SwiftUI grid scrolled noticeably less smoothly. "If you need an M5 Pro Max super chip just to show a bunch of JPEGs, there's something seriously wrong," he says.

Why SwiftUI Exists

Manshin argues SwiftUI wasn't born from developer love but competitive pressure. By the mid-2010s, React, React Native, and Flutter offered cross-platform development. Apple needed to keep developers in its ecosystem and bolster the Mac App Store, which lagged behind iOS. SwiftUI was supposed to make native apps more appealing and easier to port.

The Verdict

After seven years, the "young framework" excuse is dead. Manshin concludes that SwiftUI trades precise engineering for an illusion of convenience. He suggests a cultural shift at Apple from craftsmanship to "good enough." For developers, the takeaway is clear: expect to invest in workarounds and brace for ongoing instability.

What You Should Do Now

If you're building production apps, evaluate whether SwiftUI's benefits outweigh its costs. For complex layouts or performance-critical interfaces, consider UIKit or AppKit. If you must use SwiftUI, budget time for debugging and compatibility shims. And watch Apple's next moves—but don't hold your breath for a fix.