We Built a Mac App In a Day using Catalyst

We built a Reverse Tax Calculator for India, including in the reverse direction: if you want a certain amount of take-home pay, how much CTC should you ask for [1]? It works for freelancers in addition to employees. It handles all three types of taxes: income tax, GST and professional tax.

We had already launched this for the iPhone when we wanted to extend it to the Mac.

First, we had to extend it to the iPad, since Catalyst requires an iPad app to begin with. This required only layout fixes to support the bigger iPad screen.

Once we had a good iPad app, I checked the Mac tickbox in Xcode, pressed Cmd-R, and I had a native app running on my Mac!

As I resized the window, the UI fluidly adjusted, rather than waiting for me to release the mouse button and then suddenly adjust. The window enforced a minimum size that was enough to not make UI elements overlap. I got a beautiful app icon, too. It just worked.

The one problem was with the Mac app store rejecting the bundle ID. Catalyst creates a bundle ID for the Mac app of the form maccatalyst.<iOS bundle ID>, which the Mac app store didn’t like. We had to either convince the Mac app store to accept this ID, or convince Xcode to generate a Mac app with the same ID as our iOS app, without prepending maccatalyst. Neither worked. It took a few attempts and half a day to figure out, but once we did, it was again smooth sailing.

I wish Apple had unified the stores, too. Currently, Catalyst unifies the process of building an app and generating binaries, but you have to create separate entries on the iOS and Mac app stores, upload twice each time you fix a bug, deal with Apple rejections twice, do phased releases twice, and send two links to users. All this adds up. I wish Apple had unified the stores too, so I upload and launch one app, similar to how Apple handles iPhones and iPads. After all, Catalyst makes the Mac an iPad++ from the development point of view, so why not from the release point of view? I also want my users who bought the app on one platform to have it on the other without having to buy again.

Moving on, there has been concern about Catalyst apps not having a Mac-native UX, but for our single-screen app, that wasn’t a problem. There’s no way in which the UX is worse than if I’d built it in AppKit.

If anything, it’s a win-win-win-win: A win for me, because it lets me reach more potential users with negligible extra effort. A win for users, who get an app they wouldn’t have gotten otherwise. If Catalyst didn’t exist, there’s no way I’d have learnt AppKit to build a Mac app. A win for the Mac as a platform, since more apps make it a richer platform. A win for Apple, since that makes people less likely to buy a Windows laptop.

So, from the limited perspective of the Tax Calculator, Catalyst is awesome.

Try out our app for Mac and iOS.

[1] For non-Indian readers, CTC = gross annual salary.

On-demand Leader. Earlier: IIT | Google | Solopreneur | Founder | CTO | Advisor