Apple may never fully merge its various platforms, but that hasn’t stopped it from pursuing some overlap on the developer side. In shelving AppKit for macOS, Apple ushered in the era of Catalyst, which is tooling that helps developers port iPad apps to the Mac by selecting a few boxes in Xcode.
When Apple introduced Catalyst, we noted how none of the Catalyst-specific pages in Apple’s developer documentation mentioned AppKit. For Mac developers, this was a sharp detour that ultimately led to Apple tagging macOS Big Sur as macOS 11, moving away from decades of OS X/macOS 10 designations. Symbolic, sure, but ultimately signaling a new era had arrived.
In 2019, we also wrote how the roadmap was becoming clear for Apple. Catalyst, along with Apple’s SwiftUI framework, was helping frame the new direction for developers writing apps for iOS, iPadOS, macOS, watchOS, and tvOS. SwiftUI is Apple’s MVVC tooling for writing cross-platform apps, using functional tooling like squircle notifications and iCloud-based fetching that look great and perform (hopefully) flawlessly across devices.
We asked experts how developers can prepare for the oncoming unified approach from Apple. Catalyst is nascent and SwiftUI is immature, but they are proof of where Apple is ushering developers for its platforms.
“In 2010, when the highly successful iPhone 4 and the first iPad came out, Apple began developing the Swift language to replace Objective-C,” Alex Yelenevych, co-founder and CMO at CodeGym, reminds us. We’re much further along toward that future now.
“That was a good move,” Yelenevych continued, “as Swift is easier to read and more robust to programmer errors than Objective-C. The SwiftUI framework that appeared in 2019 is a step towards even greater convenience. Its declarative approach and less code make application development significantly faster and much more enjoyable.”
The only drawback of SwiftUI, Yelenevych added, “is that so far a bit raw and there is not a lot of materials. Hence, it can be difficult for novice developers to figure out. For an experienced programmer, SwiftUI is pretty intuitive.”
Tunde Adegoroye, Lead App Developer at Degree 53, notes: “The general consensus is that SwiftUI will become more and more production-ready. Apple will be encouraging developers to build a lot of their new features using this framework.” Apple recently introduced Widgets and AppClips, “which can only be built using SwiftUI. This is indicative of where Apple wants to take its products using this specific framework.”
Alexey Rybakov, CEO of Omega, added: “If your app has not yet been created or it is at one of the earliest development stages, then you need to learn SwiftUI and create an app using it.”
One Platform to Rule Them All
When we asked our panel if they felt Apple would fully merge their various platforms into one unified, all-encompassing service, we didn’t quite get the results we expected. By and large, developers see a path to Apple creating a unified platform, but there are indications it may not be a good idea.
Interestingly enough, both Rybakov and Adegoroye point to Apple’s switch to ARM via the M1 chipset for Macs as indication we may be barreling towards full unification. “When looking at Apple Silicon, you can see the direction that Apple wants to take its platform in, since this is a new chip that Apple is using to replace the old Intel chips,” Adegoroye noted. “It is heavily optimized for all Apple products. Apple has massively improved the performance of Xcode for developers, using features such as Xcode Previews when building out their Views. There was even an initiative by Apple that allowed developers to purchase a DTK (Developer Transition Kit). Developers could get a head start on developing apps for Apple Silicon, which currently runs only on the new Apple M1 machines.”
This brings up an interesting point. When Apple announced the Mac was moving to ARM architecture, the company pointed to virtualization that allowed apps written for Intel-based chipsets to run on ARM; results and reviews were positive. If ARM/M1 weren’t a sea change for Apple and its platforms, why offer up development kits for early adopters?
“We can trace trends towards the merging of Apple platforms,” Rybakov said. “This was demonstrated by the transition of the Apple Mac mini and MacBook line to the ARM hardware platform, despite the relatively long period of applying x86 after eliminating the use of PowerPC.” His point: We’re moving quickly towards ARM, which suggests urgency to a unified platform running on ARM architecture.
Whether that’s accurate or not remains to be seen. Many developers believe WWDC 2021 will see Catalyst made available for iOS apps. Indeed, it’s possible to see Catalyst for iPadOS apps as a “soak test” for a larger iOS release.
But opening up Catalyst to iOS apps would also flood the macOS market with apps—and that may not be wise at this point. “[Ported Catalyst apps] look alien,” Rybakov said. “Developers use iOS design elements, not macOS ones. This is not the fault of Project Catalyst or Apple, but of the developers themselves. There are also good examples of porting, unfortunately, they are outnumbered.”
Yelenevych buoys the ARM talk by noting the platforms themselves may be too unique to actually merge: “In 2019, they created iPadOS specifically for tablets. As you probably know, there was iOS on iPad before that. The good thing is that Apple is trying to make its operating systems compatible and programmers could make universal applications for all Apple platforms. There are applications that were originally intended only for desktops, but now they work safely on the iPad. Xcode and Final Cut Pro are good examples of such apps.”
While Catalyst can port, SwiftUI helps developers create cross-platform apps that can be optimized for those unique platforms. “Different products require a different approach,” Yelenevych pointed out. “There is probably no single ‘right’ solution. It's ideal for us to have one build that works on all platforms. However, when our application should work, for example, on both tvOS and watchOS, they should work in different ways. In this case, most of the code will be different. So, we need quite a flexible approach to the apps.”
The switch to ARM for Macs is significant, but doesn’t necessarily shadow platform unification. Yelenych’s points about platforms are sensible: Each has its own unique requirements and features, but can (and should) retain the same back-end logic.
Fitness+ is a good example; videos play on the iPhone, iPad, Mac, or Apple TV, while the Apple Watch handles biometric readings for things like heartrate. Those readings sync to the bigger screens via a small widget to give you a glimpse of what the watch is reading in real time. It’s a look at how harmoniously back-end logic syncs across devices, and where each device can provide a unique experience and serve a dedicated role. You can’t get biometrics (and thus an accurate take on how the workout is affecting you) without the Apple Watch, and you wouldn’t want to try to follow a video on a 44mm screen attached to your wrist.
It’s not known if Fitness+ is a ‘secret’ SwiftUI app as Home, News, Voice Memos, and Stocks were for Catalyst and the Mac, but we wouldn’t be surprised if that was a reveal at WWDC 2021.
There are two words to remember when considering how to prepare for what Apple has planned: ‘More’ and ‘All.’ To make an app available to more platforms, Catalyst is your best bet. You can make iOS apps available for iPadOS in Xcode, then port them to macOS with Catalyst once they’re optimized for the larger screen—but this doesn’t solve for tvOS and watchOS.
That’s where SwiftUI comes in. If you really need an app for all Apple devices, SwiftUI helps you write apps that are unique to each platform with synced back-end logic.