Depending on how you count them, Apple has several different routes for developers to take when it comes to modernizing their apps for the future of macOS. Let’s take a look at these related technologies to see what they can provide.
Traditional Mac apps
The future for traditional, built-with-AppKit applications seems to be solid, at least for now. With Big Sur’s redesign, AppKit has received a major overhaul, and I don’t think there’s any real reason to think it can’t live side by side with other technologies like UIKit and SwiftUI for years to come. However, these apps have been rooted in the world of Intel for a long time, so Apple has a couple of ways to help developers get them up and running on Apple Silicon Macs.
To the user, Rosetta is mostly transparent. If an executable contains only Intel instructions, macOS automatically launches Rosetta and begins the translation process. When translation finishes, the system launches the translated executable in place of the original. However, the translation process takes time, so users might perceive that translated apps launch or run more slowly at times.
Rosetta 2 won’t be able to translate everything; apps that require kernel extensions or those that virtualize x86_64 computer platforms (like Parallels or VMWare Fusion) are left out.
Universal binaries are the next step. These are apps that include both x86 and ARM code, side by side.
This system can encompass all sorts of features, including app extensions, plug-ins, custom frameworks, command line tools and even DriverKit extensions and kernel extensions (which are deprecated and going away … at some point).
Universal apps will be around for years to come, while I think Rosetta 2 will have a slightly shorter life due its more bridge-like nature. As long as Intel Macs are being supported by macOS, universal apps will be required.
iOS Apps on the Mac
Of course, as of a couple of releases ago, the Mac has had the ability to run modified iPad apps via Mac Catalyst. It may seem that Catalyst won’t be needed for very long, but I don’t think that’s how Apple sees things.
This year, Mac Catalyst is getting a lot of love, as Apple has brought even more Mac user interface idioms to the system. While it’s still not as easy as hitting the checkbox, making a good Mac app with Catalyst is more possible than ever. Just look at this list of some of the new inclusions:
- Mac date picker
- Pull-down menus
- Default scaling is now 100%, not 77% as before
- Popovers that can extend beyond the main window
If a developer really leans into this, I think the gap between traditional AppKit Mac apps and ones built with Mac Catalyst will get smaller and smaller.
iPhone & iPad Apps on Apple Silicon Macs
When the first ARM-based Macs ship, they’ll have the ability to run most iPad and iPhone apps directly, without any intervention from developers. In fact, these apps will show up in the Mac App Store unless developers opt out of doing so.
Combined with the new universal purchase rules, this means that almost any app a user has on their iPhone or iPad will run on their shiny new Mac.
The redesign of macOS with Big Sur will make these apps feel more at home on the Mac, but if developers want them to feel more like traditional Mac applications, Mac Catalyst stands ready.1
Of course, above all of this hovers SwiftUI, Apple’s year-old method of writing apps that can span from watchOS, up through iOS and iPad OS, all the way to the Mac and even tvOS. These applications run natively on all of these systems, Intel Macs included. That’s a bold vision of the future, but the reality is, it’s years off for most applications, especially those on the Mac that may have decades of AppKit development behind them.
If SwiftUI had been announced five years ago, Apple may have been able to avoid some of the transitional technologies outlined above, but that wasn’t in the cards.
That said, no other large tech company is as good as transitions as Apple, and I think for most users, this will all pretty easy, even if developers will have quite a bit of work to do.
- Mac Catalyst will still be required for these applications to work on Intel-based Macs, so the selection may be drastically smaller for users still running Macs using that architecture. ↩