The Reality of Developing in the Apple Ecosystem

November 10, 2024

The Reality of Developing in the Apple Ecosystem

When you watch the polished presentations from Apple's Worldwide Developer Conference (WWDC), it's easy to believe that developing for Apple's platforms is a seamless and enjoyable experience. The new frameworks, cross-platform development tools, and UI innovations like SwiftUI are showcased to make you feel that coding for iOS, macOS, iPadOS, and visionOS is better than ever.

But if you've ever tried to use these frameworks in the real world, you might have encountered a different reality. Often, these frameworks are riddled with bugs and can take years before they're ready for prime time. And we're not just talking about beta versions—sometimes, even the officially released frameworks are practically unusable until Apple addresses the issues.


The Promise vs. The Reality

Let's take a closer look at a recent example. In WWDC 2024, Apple released a video titled Elevate your tab and sidebar experience in iPadOS. In this presentation, the developers introduced a new TabView style called .sidebarAdaptable, designed to provide functionality across all major Apple platforms.

Here's the sample code the bug reporter provided:

TabView {
    Tab("One", systemImage: "1.circle.fill") {
        Text("Test One")
    }
    Tab("Two", systemImage: "2.circle.fill") {
        Text("Test Two")
    }
    Tab("Three", systemImage: "3.circle.fill") {
        Text("Test Three")
    }
}
.tabViewStyle(.sidebarAdaptable)

This new style is supposed to drastically reduce the amount of UI code needed to support multiple platforms. It sounds fantastic in theory. However, when you plug this sample code into an empty Xcode project, you quickly realize it's broken and unusable on macOS.

The sidebarAdaptable TabView style is completely broken in macOS 15.1

As reported on the Apple Developer Forums, the tabs are unresponsive and sometimes unclickable. This isn't a minor glitch; it's a significant issue that hinders the development process. And again, we're not talking about a beta version here. This problem exists in the officially released production version of macOS Sequoia 15.1.

Now, I want to emphasize that this isn't about pointing fingers at the developers at Apple. I'm sure they're incredibly smart and hardworking individuals who strive to deliver the best tools possible. However, it's clear that something is preventing these frameworks from being released in a usable state. Whether it's tight deadlines, resource constraints, or other internal challenges, the end result is the same for developers who rely on these tools.


Lessons Learned

I used to trust Apple when they released new frameworks, believing their promises that these tools would just work. I even based some of my project time estimates on this assumption. But experiences like this have taught me to be more cautious. The reality is that Apple's frameworks often require a substantial amount of time to mature before they're truly reliable.

So, if you're planning to adopt the latest and greatest from Apple, proceed with caution. Test thoroughly, and don't make the mistake of assuming everything will work out of the box—even if Apple has released it to production. It could save you a lot of headaches—and missed deadlines—in the long run.