iPadOS-macOS-Project-Catalyst-Cross-Platform-Apps-Dice.png

Forget your (likely dim) view of the iPad as a full-fledged "computer": Despite Apple's insistence that the tablet is actually a PC, it can't get around the clumsy keyboard folio, small screen, and limited desktop-class processing power. But if you’re developing apps for Apple’s ecosystem, you should rush to support its new operating system, iPadOS. Here’s why.

The last few generations of iOS have created a schism between iPad and iPhone. Apple invented bespoke features for the iPad, which finally prompted it to spin those features into a unique operating system named iPadOS. This latest iteration is still very mobile; the look and feel is more iPhone than Mac, and it still carries some mobile-first features that power users will point to when they yell, "But it's NOT a computer!" iPadOS is, after all, an iOS derivative, and that comes with lock-in, such as the inability to run prompts from the terminal.

Why iPadOS is Critical

Still, if you’re developing iOS apps, you should support iPadOS. Heck, even if you have no interest in the platform, you should support it! In the most important ways, it’s a two-for-one deal.

With iPadOS, there are some desktop features: Multiple-window support, drag-and-drop, desktop-class Safari browsing, and the ability to access files and folders from external sources are all key here. It’s the bridge between the iPhone and desktop... which is exactly why it’s critical.

Most developers within Apple’s ecosystem create apps for iOS, the UIKit framework and tooling should be familiar (AppKit, the tooling used for dedicated macOS apps, is long in the tooth and has enough obstacles that developing apps for it is unfriendly). Catalyst, Apple’s cross-platform tooling within Xcode, allows iPadOS apps to come to the Mac with a few clicks.

In some ways, the AppKit/UIKit argument is becoming null. With Catalyst, the de facto framework for developing apps for Apple’s ecosystem will be UIKit. there are plenty of reasons to avoid AppKit (and the desktop), but almost no good reason to eschew mobile... and the ability to port a mobile app to the desktop makes ignoring either silly.

Within Xcode, choosing to make your app available to macOS means “fundamental Mac desktop and windowing features” are added automatically, as is mouse/touchpad/keyboard support. Some of the iPadOS features, such as split-view, will port to your Mac app without any fuss.

But this doesn’t mean the development work is done. Apple encourages developers to round out their ported apps to be more desktop-like, and support things such as the menu bar or unique gestures. There may also be some interface work to be done.

The Future of App Development

Those developers with pro apps will likely want to round out the iPadOS/macOS app (we could just call them Catalyst apps) with additional features for desktop. And it seems UIKit is the direction Apple wants us to move in this case, as well. In August, we noted Catalyst documentation only references UIKit; that’s still largely true, though a note has been added to the “Optimizing your iPad App for Mac” page: “iPad apps running in macOS can only use AppKit APIs marked as available in Mac Catalyst, such as NSToolbar and NSTouchBar. Mac Catalyst does not support accessing unavailable AppKit APIs.” This is the only AppKit mention.

In June, we wrote: “We think of [using UIKit in place of AppKit] like a deprecation of AppKit, much as Objective-C was deprecated when Swift arrived. Swift didn’t kill Objective-C, and the UIKit framework familiar to iOS developers isn’t killing AppKit. You can still write an iOS or macOS app in Objective-C, and you can still write a ‘traditional’ macOS app using AppKit.”

The iPad app ecosystem, like the Mac app ecosystem, has suffered because developers have problems seeing why they should support either when they can just focus on the (profitable) iPhone world. Catalyst helps answer that; it’s no longer a binary choice, because it’s a two-for-one app development process in most cases. And though the Mac App Store is still sparsely populated, that presents opportunity once macOS Catalina lands this month, and cross-platform apps start populating there as well as in the iPadOS App Store.

The iPad is not a desktop-class computer, and the Mac is not a mobile device. But Catalyst helps developers get a sense of what each brings to the table, and how to best support each ecosystem with a single core app. Both platforms need great apps, and the ability to have one app populate on both operating systems is intriguing in a big way. As SwiftUI (Apple’s MVVM development paradigm) gains traction, we expect the avenues between Mac and iPad and iPhone and Apple Watch and TV to be largely interchangeable.

For now, supporting iPadOS and Catalyst ports to macOS is a great primer for the future of app development.