With macOS Mojave, Apple has included a number of new apps which have been ported over from their iOS variants. As part of the rumored project codenamed Marzipan, these apps are part of Apple’s effort to make it easier for iOS developers to port their apps to macOS, with minimal code changes. Apple had announced these apps, underlying architecture and their intention to make this initiative available to developers in 2019. So far, Apple has included News, Stocks, Home and Voice Memos app with macOS Mojave.
iOS apps ported to macOS Mojave
Here’s a look at the apps that have been ported from iOS and how they work on macOS.
This is Apple’s app used for controlling HomeKit devices. It looks and works the same way as it’s iOS counterpart, however you need to use an iOS device to setup and add accessories. The Mac app does not support adding accessories. However, once you have it setup, the Home app on macOS can be used to control accessories, setup scenes, organize rooms, and automation.
Siri on macOS Mojave also supports HomeKit accessories so you can just speak to your Mac to control devices added to your Home app.
The Stocks app looks just like the new design that was introduced in iOS 12’s Stocks app. It looks great with Mojave’s dark theme. You can add/remove stocks, use the different graphs and see news related to each stock. You can also search for stocks that are not in your watch list and see their information, without adding them.
The app syncs with your iCloud so any stocks you have added to your app in iOS 12 will automatically show in the macOS Stocks app too.
This is perhaps one of the best apps to use from the new ones in Mojave, expect for the issue that links open in Safari. It would be better if an in-app browser is used instead.
The news app in macOS Mojave is perhaps the one I looked most forward to, but found it to be the most lackluster app out of all the new ones in Mojave. While it supports all the features from its iOS 12 counterpart, it doesn’t sync with it. The region on my iOS 12 devices and my Mac is set to United States, but the app doesn’t sync.
Despite supporting a dark theme, the app shows a front page with a white background.
You can like/dislike stories, check your history and view suggested content. When you watch videos, you cannot put them in a picture-in-picture mode, which macOS supports in Safari and other apps. There’s no News app widget either for Notification Center.
I expected more from this app but it has been a letdown so far.
Voice Memos app
Voice Memos on macOS syncs with the iOS 12 version so all your recordings are automatically made available on your Mac.
It sports the new design introduced with iOS 12.
You can record, edit, delete, rename and duplicate voice notes, but you have to use the menu. The app doesn’t support right click which makes it annoying to use it, in my experience.
UIKit in macOS
So what makes these apps different from the usual macOS apps? Apple shared some background on what they have done. Under the hood, Apple has ported some UIKit features to Mac.
While iOS and macOS have always shared a lot of code, the user interfaces are vastly different. On Mac, apps uses AppKit for UI, while iOS apps have utilized UIKit. For these new apps, Apple has added UIKit features to macOS, while adding Mac specific features to them like trackpad and mouse support, resizable windows, scroll-bars, copy paste and drag/drop.
This should make it easy for developers to port iOS apps to macOS with minimal code changes. However, when we see the current state of these apps, it seems obvious why Apple did not open the API changes to third-party developers. There is still a lot of work to be done to make these apps worth using on Mac. They still do not support a number of features and Mac specific UI conventions that users are used to.
I hope that Apple continue working on these apps and the underlying API, so that third-party developers are able to port apps in a much better way than what these apps represent.
P.S. here’s Apple’s announcement video from WWDC 2018 for these new apps and the underlying API updates to make them work.