0

Since Apple introduced Catalyst ealier this year during WWDC '19 it becomes possible to have a single codebase for an app that runs on iPads and Macs.

Already for a long time it was possible to create iOS applications that run on both iPhones and iPads using the same app distribution. Obviously for such an app to look good on both devices a slightly different views are baked inside the app distribution so users have best experience on both iPhones and iPads.

Taking into consideration all of the above does that mean that with introduction of Catalyst it is now possible to have a single codebase app written in Swift that can nativelly run on all 3 types of devices: iPhones, iPads and Macs?

And if that is the case – what are key steps and aspects that one needs to consider and take care of while creating such an application? Are there any downsides in creating an app in such a way?

5
  • 2
    It appears your question is a yes or no question. Perhaps if you rephrased the question along the lines of "How do I make sure my app can run natively on all 3 types of devices" or "What do I need to know to ensure I can..." will make this better. Oct 28, 2019 at 20:36
  • @BerinLoritsch thanks for the advice. I’ve updated the question. Oct 28, 2019 at 20:51
  • @BerinLoritsch sorry to bother you, but I’m really interested in what you have to say about my question. Can you please take a few moments and leave your thought on the topic? Nov 2, 2019 at 10:50
  • I wish I could comment properly on this. My background is with microservices and the .net development platform. The biggest challenge I anticipate is to have your application make the best use of the screen real estate for each device. Phone and tablets are always full screen but the screen size means you can do more with it. Desktop apps can be resized at will, so you need to learn to be adaptive. Beyond that, I'm not familiar with the Apple APIs to discuss those specifically. Nov 2, 2019 at 21:58
  • @BerinLoritsch Ah! I see. I mistakingly assumed that you might have some background in iOS development. But you’ve made a very good note about screen real estate! Nov 2, 2019 at 22:12

1 Answer 1

1

Yes.

The existence proof is that I (and at least a few other developers I know of) have apps in both the iOS and Mac App stores which have been built from a single Xcode project and code base, using Catalyst.

Some simple, single view Swift+storyboard iOS apps just require checking a box, and they might run on macOS as is, even if they also include networking, audio, Metal shaders, and etc. Other iOS apps will have incompatibilities (my apps required a couple platform specific ifdefs to fix/customize.) So you will have to test your particular code.

Unless one adds a fair amount of platform specific code, the resulting macOS apps might not be as full featured as users might expect (rich menus, multiple reposition-able windows, wider file access capabilities, etc.). Some potential customers might think that iPad-like window/view formatting just looks strange and un-aesthetic on a Mac.

One downside is that the binaries of macOS Catalyst apps, as delivered by the App Store store, are not by default obfuscated, encrypted, or semi-protected in any way.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.