After a full year of hand-wringing and anticipation, Apple finally gave developers the tools to make cross-platform iOS and macOS apps. Developers can now create apps with (mostly) the same binary for mobile and desktop.
But it’s not the ‘write once, ship everywhere’ pipe dream realized. Instead, as revealed at this year's WWDC, it’s a lot more like retrofitting mobile apps for the desktop.
Here’s what it means for you.
- Expect a deluge of bad apps to hit the Mac App Store.
- There’s no unified App Store; developers must post iOS apps to the App Store and macOS apps in the Mac App Store.
- This move further confuses the monetization landscape, especially as it relates to subscriptions.
- The Mac doesn’t have a huge market share.
- It’s not for iPhone apps (yet). Only iPad apps can make the move to Mac.
- Making iOS apps available to macOS is (conceptually) pretty simple.
- Though it can get confusing, this does open up more avenues to sell apps or encourage users to subscribe.
- Many apps will have an easy time making the move to macOS; there’s not a ton of work to do (more on that in a minute).
- This will undoubtedly help the Mac App Store be not-so-terrible.
Refactor (Our Take)
You’re undoubtedly wondering if this is a good thing. It is.
But it’s a good thing mostly because the Mac App Store is so dreadful. Apple recently made an effort to help the platform via a redesign and a similar editorial effort as the iOS App Store already receives, and it fell flat. It’s hard to discuss great apps and services when you just don’t have great apps and services.
Conceptually, it’s not hard to make an iOS app available for the desktop. Apple promises that minimal work needs to be done, but every developer knows the actual work is always more than anticipated, especially with a new paradigm or platform.
At WWDC, Apple also fell back on its message from last year that AppKit (the tired framework used to develop macOS apps) will handle Mac things such as keyboard input and trackpad/mouse tracking. It’ll also deal with window resizing. And that all sounds simple and awesome, but your apps may not take so well to it.
Some of your functions and method should probably be global, and they’re not. You may be calling an outside library for something Apple has available via its own APIs, and that could bork your port to macOS because the AppKit API call(s) want to work with Apple’s stuff, not third-party tooling. Expect issues.
We think of this 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.
Monetization remains confusing. Before today, you could – for example – sell an iOS app for $10, and its macOS counterpart for $20. But once things go cross-platform, asking $30 for what is essentially the same app is a hard sell. Subscriptions are also going to take some work, and we expect many developers will offer up added functionality for desktop apps while keeping the mobile app lighter.
Apple isn’t ready for iPhone apps to hit the Mac, and it may never be ready for that. The company has been positioning the iPad as a computer, and it’s not; nor is the Mac a mobile device. Nonetheless, apps can be shared between the two devices and platforms fairly simply.
If this is the dream of ‘Marzipan’ (official, just-revealed name: 'Project Catalyst') realized, it’s pretty sweet, and it’ll be exciting to see what comes of it all. Developers will have until the Fall when iOS 13, the new iPadOS, and macOS 10.15 actually land.