How one can define what a “Mac app” is has gotten more complicated as time has gone on. In the early days of Mac OS X, developers could choose between Cocoa, Carbon and even Java. As the latter two faded, we saw the rise of wrappers around web apps that via technologies like Electron.
But Apple has made the water murky as well, thanks to Mac Catalyst and more recently, the ability of M1 Macs to run iPhone and iPad apps natively.
To recap, Catalyst allows a developer to take an iPad app and tweak it to run on both Apple silicon and Intel Macs. These apps can pick up a lot of native Mac UI and UX features along the way. Messages, for example, is a Catalyst app as of macOS Big Sur. Apple has done a lot of clever things to give developers incentives to use Catalyst. If an iPad app supports multitasking, for example, the Mac version gets multi-window support out of the box.
This year at WWDC, Mac Catalyst didn’t get the massive improvements it did last year, but Apple still took some time to go over how it can be used to make a great Mac app.
Apple has continued to improve the things Xcode does automatically when the “Mac” button is checked and a developer builds an app. Beyond that, though, developers need to fine-tune the Mac experience.
At first, all Mac Catalyst apps felt a little weird, as they were all displayed at a reduced scale of 77%, owing to the differences between iPad and Mac display. That’s has since been changed—now apps can be set to run in the “Mac idiom” at 100% scale. These apps also utilize native AppKit controls, making them look and feel like more traditional apps.
Apple encourages developers to think about the various display sizes that a Mac Catalyst app may encounter—it’s a far cry from what’s found on iOS and iPadOS. Not only are there a bunch of non-Retina MacBook Airs and iMacs still running around, but there’s probably a daredevil out there somewhere who’s running apps in full screen on a Pro Display XDR at 6K resolution.
Likewise, Macs are hooked up to a wide range of input devices, none of which is a touchscreen. Apps can’t assume that everyone has a trackpad, either. Any navigation that requires gestures will need to be re-thought for the macOS environment.
In many ways, creating a good Mac Catalyst app is just like writing a good AppKit app. Apple’s tools are good, but making something truly great requires time and care. Even if Catalyst ends up being a transitionary technology in the long haul, it’s an important step, and one that seems to be going well. It’s getting harder and harder to tell what apps are using Catalyst, and that’s a good thing.
iOS and iPadOS apps on M1 Macs
There are over one million iOS and iPad apps already on the Mac App Store for users of new M1 Macs. While developers of many, many major apps have opted out of this program, Apple is working in macOS Monterey to improve the experience for users and hopefully make developers more willing to look at Apple silicon Macs as a reasonable target for their mobile development.
To be frank, these apps still stick out on macOS Big Sur. They work well enough, but they look and feel a bit foreign, even when compared to apps built with Mac Catalyst. But for developers who don’t go through that work, it’s a painless way to have their applications in front of Mac users.
In macOS Monterey, Apple is working to conform these apps to feel more at home on the Mac. In addition to mapping iOS functionality to things like the menu bar and Mac input devices that started in Big Sur, these applications on Monterey can now support Shortcuts for Mac, Apple Pay, full-screen video with HDR and new gesture support when a trackpad is present.
On the App Store side, developers can also now confirm that their app has been tested to work well on macOS, and they can set a minimum OS that they support, or let Apple automatically set that on the app’s needs.
Additionally, Apple is tweaking the Mac App Store to make these titles easier to find. No longer will users have to switch to the “iPhone and iPad Apps” tab to discover these apps; they will appear in-line with traditional Mac titles in the Store, blurring the line between Mac-first and Mac-second apps even more.