Mac app evolution: Bringing UIKit to macOS

Stocks was part of iOS 1 (iPhone OS 1). Voice Memos was part of iOS 3 (iPhone OS 3). News and Home, iOS 10. With Mojave, all of them are finally coming to the Mac. That they're finally coming is good. That it took so long is terrible.

I know I sound like the parent yelling about the messy room just as the kids start cleaning it up, but Mac customers are people too and addressing longstanding gaps in functionality is one thing — addressing the issues that cause longstanding gaps in functionality is another, far more important thing.

Apple needs to do both and, starting with Mojave, it is.

Back (and forward) to the Mac

News, Stocks, Voice Memos, and Home all kinda look like the iPad versions wrapped in Mac-specific interface elements and mouse and pointer support. And that's exactly what they are.

When Apple first began planning the App Store for iPhone, there was some internal debate over whether the company should use the existing Mac frameworks of AppKit or the increasingly popular web frameworks of WebKit.

Apple ultimate decided it needed to do something new and created UIKit.

For the last decade, AppKit has advanced considerably. But, thanks to the popularity of iPhone and the iOS App Store, UIKit has exploded.

Because of everything Apple's done over the years with AutoLayout, size classes, and app bundles, making iPad versions of iPhone apps has been relatively easy. tvOS versions, even.

Not so with the Mac. If a developer of a popular iOS app wanted to bring it to the Mac, large parts of it had to be ported from UIKit to AppKit. Even if the developer was Apple.

That's why many developers of popular iOS apps didn't bother. Even Apple.

In many cases, it wasn't because they didn't want to. They simply lacked the resources necessary to move the apps over given how much work they felt they still had to do to maintain their success on iOS. Yes, still including Apple.

The good thing about problems Apple has to solve for itself is that it typically solves them for developers as well. And they have, even if the solution has been obvious to some and terrifying to others for years:

UIKit on the Mac.

From Classic to Carbon to Cocoa to... UIKit

Apple is positioning UIKit as another option for developers, alongside AppKit, WebKit, and the graphics engines often used by games and some design apps. (And, yeah, the horrible Electron — localized Chrome tab — apps that are the new Adobe Air or Java apps.)

It's part of a multi-year project that's being worked on by many teams within Apple, and should result in pushing not just Mac Apps but all Apple apps forward.

Because iOS and macOS share common foundations, sliding UIKit apps in alongside AppKit apps, it's not like starting from scratch. But, because iOS and macOS share very different user interface paradigms, a lot of work still has to be done.

Apple is going to make that easier by moving key UIKit frameworks to the Mac, and adapting them for trackpad/mouse and pointer control, Mac interface conversions like the window-controlling traffic lights, scroll bars and resizing, and the Mac versions of copy and paste and drag and drop.

That where News, Stocks, Voice Memos, and Home fit back into this. Apple is using them to dog-food the first phase of this project.

They're all iPad apps that have been brought to the Mac with "very few code changes", according to Apple.

Evolve or die

I've been using the "Marizpan" — or UIKit apps on Mac — for a while. They're way better and more resource efficient than Electron apps — hi, Slack! — and feel better than progressive web apps, which still feels like something being pushed on the market to serve program manager and not engineering or customer needs.

They don't feel like traditional Mac apps to me, though. At least not yet. They're so freshly ported their touch-centric interfaces still squeak of iPad every time they spin around too quickly.

Maybe that'll change over the course of the year. Or maybe what we consider to be traditional Mac feel will change, just as it did when we transitioned from Classic to Carbon to Cocoa. And there'll be just as much grumbling and hot-taking along the way, I'm sure.

The Mac has to keep evolving, though, and Mac apps along with it. It's been doing it for going on two decades already and it'll keep on doing it, hopefully for many more.

Again, it's going to take a couple of years to get through it but the Mac app ecosystem should end up all the more vibrant because of it.

Phase II starts in 2018 when Developers are going to get a chance to start working with it.

Read the full macOS Mojave deep dive

Rene Ritchie

Rene Ritchie is one of the most respected Apple analysts in the business, reaching a combined audience of over 40 million readers a month. His YouTube channel, Vector, has over 90 thousand subscribers and 14 million views and his podcasts, including Debug, have been downloaded over 20 million times. He also regularly co-hosts MacBreak Weekly for the TWiT network and co-hosted CES Live! and Talk Mobile. Based in Montreal, Rene is a former director of product marketing, web developer, and graphic designer. He's authored several books and appeared on numerous television and radio segments to discuss Apple and the technology industry. When not working, he likes to cook, grapple, and spend time with his friends and family.

  • This is just speculation on where Apple might be heading: macOS Mojave brings the first four Apple iOS apps that have been ported to the Mac, and next year third-party developers will be porting their own iOS apps to the Mac as well. The ported iOS apps, with some adjustments, look and act just like macOS-native apps. They have sizeable and closable windows, sidebars, and trackpad/mouse control. These are features that iOS apps on iPad and iPhone don't have. It may take a few years, but once enough iOS apps have been ported to macOS (especially the big-name apps) it will become redundant for developers to continue supporting both an iOS-ported (Marzipan) version of an app (for example MS Word) and a macOS version of the same app. At that point, when iOS-ported apps reach parity with macOS-native apps, Apple will be able to do something that is more logical and less disruptive than trying to "combine" the two operating systems. Apple would be able to say goodbye to macOS apps, and hello to apps that work on both iOS devices and Macs. We would still have desktop, notebook, and tablet computers, but they will all be running the same apps which will be downloaded from just one App Store instead of two. Hardware for Apple's future desktop, notebook, and tablet computers will also probably run on variations of Apple's A-series SoC, with some new A-series chips designed specifically for the more power intensive needs of desktop and notebook computers. Consolidating all Apple computers on Apple's own A-series chips, and giving up the reliance and expense of using Intel processors, would be a very efficient move. So if we purchased an app it would appear/operate similar to a current iPad app when in tablet-mode, or the same app would appear/operate similar to a current Mac app when run on a laptop or desktop. At that stage it would make sense for Apple to produce a convertible notebook (with detachable keyboard/trackpad), or to allow third-parties to sell keyboard/trackpad combos that can attach to an Apple tablet. When just using the tablet by itself, the apps would run as tablet apps (similar to current iPad apps). When a keyboard/trackpad is attached to the tablet, the same installed apps would run as notebook apps (similar to current Mac apps).
  • I can see this happening. Love the idea of the same app working differently depending on the machine being used. If I could add a little more. I would love an iPad in laptop form. When using it as a laptop the apps would support mouse/touchpad and when detached from its keyboard would work the way an iPad always has. I really think I could replace my iMac/MacBook with an iPad but I would miss mouse/trackpad use. Apple, in my experience, is correct in there thought of having to reach up to constantly touch a screen would wear your arms out although that is exactly what you have to do when an iPad is attached to a keyboard.
  • People have been complaining about no Calculator app on iPads for years.
  • It's really odd that the calculator doesn't exist on the iPad, although there are improved calculator apps on the App Store
  • Amazing they can throw the News and Stocks app together, but still can't give us a calculator... I know there's other apps, but some people like myself like using what's native where we can.
  • Stocks and Weather were dashboard widgets in OS X after the iPhone came out and I think you can still see them if you enable dashboard on macOS. So technically only Voice Memos, News, and Home are new to the Mac.