Inside

Mac Catalyst

Mac Catalyst

Last updated: 1 month ago

The Mac App Store still doesn't offer many favorites seen on the iPhone and iPad like Facebook, Netflix, and Hulu, but Mac Catalyst aims to change that by providing tools to make converting popular apps easier for developers. It also plays a significant role in the transition to Apple Silicon on Mac.

● Part of Apple's Xcode IDE version 11 and newer
● One UI framework for all devices
● A single checkbox adds the Mac version to the project
● Automatic support for Mac-specific features
● Removes unnecessary mobile-specific functions

Before Mac Catalyst, converting iPhone and iPad apps over to Mac required additional time and resources. Apple's desktops and laptops have bigger screens and different input methods than their mobile siblings, requiring a different set of elements. Apple introduced Mac Catalyst to make the transition easier and reduce developer costs.

Developing before Mac Catalyst

Xcode environment running on a MacBook Pro

Xcode is a development environment designed specifically for Mac to build apps for all Apple-based devices. Within a single workspace window, developers can edit code, manage assets, create the interface, test their app, and debug. It supports ten programming languages, including Objective-C, Java, and Swift.

Before 2019, developers used two different user interface frameworks within Xcode to design apps for Apple devices: UIKit for iPhone/iPad and AppKit for Macs. UIKit had classes and controllers built for touch and included the iOS SDK. AppKit provided all the elements for a desktop interface and included the macOS SDK.

The issue with porting iPad apps over to Mac had nothing to do with the ability to compile separate apps for ARM- and x86-based CPUs. Time and resources were the bottlenecks given the two distinct device interfaces of mobile and PC. Either multiple teams needed to work together, or a single team converted portions of their project to create a Mac version, requiring additional time and cash.

That said, supporting Mac meant adding traditional copy/paste and drag/drop functions, peripheral input, trackpad support, and so on. In the former mobile-first world, that left Mac owners without popular apps from Facebook, Netflix, Hulu, and so on. These companies turned to web-based apps instead.

Enter Mac Catalyst

To solve this problem, Apple began working on an internal project to help merge development into one unified experience. Project Marzipan first appeared with macOS Mojave in 2018, bringing native apps like News, Home, Stocks, and Voice Memos from the iPad to Mac. Apple also introduced a redesigned Mac App Store, indicating a significant change was coming to the native Mac app experience.

With macOS Catalina in 2019, Apple added support for UIKit. Formerly called Project Catalyst, Mac Catalyst allows developers to use a single UI framework across all Apple devices. At the same time, Apple also introduced SwiftUI, a new user interface framework, to make developing universal apps even easier going forward. Apple suggests the use of its custom Swift programming language and provides the Swift Playgrounds app to help developers become more familiar with this language.

Known Apple-made Mac Catalyst apps

Here are the apps developed by Apple that falls under the Mac Catalyst banner:

As a result, Twitter returned to the Mac App Store along with Asphalt 9: Legends, Post-It, Rosetta Stone, and more. Apple Music and Apple TV made their debut as well, replacing iTunes.

Xcode now includes a checkbox to add Mac support.

To support Mac, developers can now load their project in Xcode 11 or later, select the project under 'Targets,' click the 'General' tab, and then check 'Mac' listed in the 'Deployment Info' section. There are a few other settings to check as well and possible manual adjustments to compile a Mac app correctly.

According to Apple, when developers add Mac support, all incompatible embedded content, frameworks, and libraries are excluded where possible. Developers can manually exclude items if needed if the Mac version of their project doesn't build. Code referencing APIs unavailable to the Mac may need to be enclosed.

Xcode adds an app sandbox entitlement specific for Mac to keep the system resources and user data safe in case the app becomes compromised. It also injects a separate bundle identifier for the Mac version, among other items.

Finally, all Catalyst apps will adopt the new visual design of macOS Big Sur. The update brings new window APIs for control window tabbing, support for out-of-window and detachable popovers, full app control using a keyboard, new and updated frameworks like ClassKit and GameKit, HomeKit support, and more.

The move to Apple Silicon and Mac Catalyst

Bringing iPad apps over to Macs is now even easier.

As it did years ago, when shifting from PowerPC to Intel-based processors, Apple revealed in 2020 that it's switching over to in-house Apple Silicon-based on the ARM architecture for Macs. That means the company needed to provide means for all apps to remain native by returning to the fat binary format.

The fat binary isn't anything new. It's software that contains multiple compiled applications in a single "universal" executable, depending on the target devices. 

In 2005, Xcode 2.1 introduced the means to create apps that supported two different CPU architectures. On older Macs, one version was compiled for PowerPC CPUs and one for Intel (x86) chips.

This was how developers kept their apps "native" as Apple shifted from PowerPC to Intel processors starting in 2006. This Universal binary includes a "header" read by the operating system, so it knows which portion in needs to run.

In 2009, Xcode 2.4 added support for four designs: 32-bit and 64-bit PowerPC, and 32-bit and 64-bit Intel.

As before, Apple's Mac portfolio going forward will be based on two CPU architectures, requiring two compiled applications within a single executable: One based on arm64 (64-bit ARM) and one based on x86_64 (64-bit Intel). In this case, developers need Xcode 12, which adds arm64 to the build list.

This ultimately means Apple's entire ecosystem will eventually revolve around one CPU design rather than two: ARM. This will unify all platforms under the Apple umbrella on both the hardware and software fronts. Eventually, Apple will phase out x86-based CPUs altogether, meaning no fat binaries and no compiling two versions.

To help developers, Apple provides the Developer Transition Kit (DTK) that's based on the A12Z Bionic System on a Chip (SoC). The first Mac with Apple Silicon is expected to arrive by the end of 2020. Apps developed for the iPhone and iPad will run natively on computers with Apple Silicon, but developers can still use Mac Catalyst to make the app feel more Mac-native.

 
 

Mac Catalyst Related Stories

article thumbnail