CATALYST (itch) Mac OS
It was software and engineering SVP Craig Federighi’s answer to the question of whether or not the Mac and the iPad would merge. He used that slide as the introduction to a “multi-year project”. Some 20 months after it decided to discontinue its Mac client, ubiquitous social media platform Twitter on Thursday made good on promises to release a new app built on Apple's Catalyst framework. Much of the UIKit Messages app is functional on macOS, using the native Catalyst UI from the macOS Catalina system frameworks. IMessage Effects, for example, are functional. With Mac Catalyst it is working to allow developers to port iPadOS apps to run on MacOS machines. While the mouse can is used as an alternative to your finger, the iPadOS interface on a laptop. IOS iPad MacOS Project Catalyst It’s 2020, and Mac and iOS apps are apparently meant to be shared. This wasn’t always the case, of course: For the longest time, macOS and iOS apps ran on completely different tracks by design. But with macOS Catalina and Xcode 11, it’s really simple to bring mobile apps to the desktop.
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.
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 10 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 mobile-first world, that left Mac owners without popular apps from popular services that instead turned to web-based apps.
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.
Here are the apps developed by Apple that falls under the Mac Catalyst banner:
- Stocks
- Voice Memos
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.
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.
As it did years ago, when shifting from PowerPC to Intel-based processors, Apple revealed in 2020 that it was switching over to in-house Apple Silicon, based on the ARM architecture, for Macs. The company launched new late-2020 Macs – a 13-inch MacBook Pro, MacBook Air, and Mac mini – running its new M1 chip. With such a significant transition, that meant 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). Apps developed for the iPhone and iPad will run natively on computers with Apple Silicon, though app publishers can opt out of providing them in the App Store. Developers can still use Mac Catalyst to make their apps feel more Mac-native.
Native Mac apps built with Mac Catalyst can share code with your iPad apps, and you can add more features just for Mac. In macOS Big Sur, you can create even more powerful versions of your apps and take advantage of every pixel on the screen by running them at native Mac resolution. Apps built with Mac Catalyst can now be fully controlled using just the keyboard, access more iOS frameworks, and take advantage of the all-new look of macOS Big Sur. There’s never been a better time to turn your iPad app into a powerful Mac app.
Designed for macOS Big Sur.
When an app built with Mac Catalyst runs on macOS Big Sur, it automatically adopts the new design. The new Maps and Messages apps were built with the latest version of Mac Catalyst.
Get a head start on your native Mac app.
Your iPad app can be made into an excellent Mac app. Now’s the perfect time to bring your app to life on Mac. The latest version of Xcode 12 is all you need. Begin by selecting the “Mac” checkbox in the project settings of your existing iPad app to create a native Mac app that you can enhance further. Your Mac and iPad apps share the same project and source code, making it easy to make changes in one place.
Catalyst (itch) Mac Os Catalina
Optimize your interface for Mac.
Your newly created Mac app runs natively, utilizing the same frameworks, resources, and runtime environment as apps built just for Mac. Fundamental Mac desktop and windowing features are added, and touch controls are adapted to the keyboard and mouse. By default, your app will scale to match the iPad’s resolution. On macOS Big Sur, you can choose “Optimize interface for Mac” to use the Mac idiom, running your app using the native resolution on Mac. This gives you full control of every pixel on the screen and allows your app to adopt more controls specific to Mac, such as pull-down menus and checkboxes.
Even more powerful.
The new APIs and behaviors in macOS Big Sur let you create even more powerful Mac apps. Apps can now be fully controlled using just the keyboard. You can create out-of-window and detachable popovers, control window tabbing using new window APIs, and make it easier for users to select photos in your app by using the updated Photos picker. iOS Photos editing extensions can now be built to run on Mac. And your app is even easier to manage when it’s running in the background with improved app lifecycle APIs.
New and updated frameworks.
Mac Catalyst adds support for new and updated frameworks to extend what your apps can do on Mac. HomeKit support means home automation apps can run alongside the Home app on Mac. The addition of the ClassKit framework lets Mac apps track assignments and share progress with teachers and students. Plus, there are updates to many existing frameworks, including Accounts, Contacts, Core Audio, GameKit, MediaPlayer, PassKit, and StoreKit.
Mac Catalyst Tutorials
Learn how to build a native Mac app from the same codebase as your iPad app.
Tools and resources.
Mac Catalyst Download
Download Xcode 12 and use these resources to build native Mac apps with Mac Catalyst.