Run iOS apps Natively on macOS With Catalyst!
Catalyst by Tutorials shows you how to take all of those great apps you’ve built on iOS and run them right on macOS. But like everything else with Apple, it’s not always as straightforward as you’d like it to be. This book will show you how to design your apps to work well on macOS, what you can and can not port between the two platforms, and any other “gotchas” to keep an eye out for when building apps under Catalyst.
This book is for developers who have a good handle on building iOS apps and want to learn how to port those apps to run on macOS as well.
What is Catalyst?
Formerly known as Marzipan to Apple insiders, Catalyst lets you extend your iPad apps to macOS. Under Catalina and Xcode 11, developers can start building their iPad apps with macOS as a target.
And we’re not just talking about grossly super-sized versions of iPad apps on your Mac; Catalyst apps will support native macOS controls and functionality, such as the familiar menu bar, support for mouse and keyboards, window resizing, proper scroll bars, Touch Bar support, and desktop-based drag and drop.
So if you’ve been hesitating to port your iPad apps to macOS because you just do not want to have to learn to develop for the desktop, then now is your time to start!
Before You Begin
This section tells you a few things you need to know before you get started, such as what you’ll need for hardware and software, where to find the project files for this book, and more.
Section I: Making a Great iPad App
Catalyst is all about letting you use code you’ve written for iOS on macOS. But not just any code. At least for now, you can only run code that is written for iPad on a Mac. And because most of the code will run on both platforms, before you dive in to running your app on your Mac, there are a few things you should do to make your code ready.
In this section, you’ll take an app written to run on iPhone and adapt it to run on iPad. Then you’ll add some features to make it behave like a first-class iPad citizen. And through the magic of Catalyst, these features will make your Mac app better too!
In this chapter, you’re getting your first look at the sample app that you’ll be interacting with in this book. Once you familiarize yourself with the basic functionality and architecture, you’ll take your first steps toward bringing the app to macOS.
Here, learn why you should use Split View Controller and gain Instruction on how to migrate from iPhone-style Navigation Controller with master-detail push to Split View Controller.
In this chapter, you’ll learn how to add support for dragging photos from other apps and dropping them into your app. You’ll also learn how to implement drag and drop for collection views with smooth animations and cell reordering.
In this chapter, you’ll learn how to enable a feature that has been available since the beginning on the Mac, and introduced with iOS 13 on the iPad, multi-window support.
In this chapter, you’ll learn about context menus, adding support for long-press menus on iPad and how these menus automatically port to the Mac.
In this chapter, learn how to use keyboard commands to navigate across a list and delete items, as well as the UIKeyCommand and setting first responder.
Learn layout preferences, and override individual items from dark mode, similar to Mail.app and the reader pane.
Section II: Making a Great Mac App
The good news is that most of your code will be useful for both iPad and Mac platforms. But what about the things that are Mac-specific: like mouse support, Touch Bar support and more?
In this section, you’ll take your first-rate iPad app and add Mac-specific touches to make it work well on macOS.
In this chapter, you’re taking things to the next level by making some adjustments that’ll really make your app shine when running on macOS via Catalyst. Throughout the rest of this section, you’ll go deeper on several other Mac-specific features. When you’re done, you’ll have the makings of a world-class Mac app.
In this chapter, you’ll learn to implement PointerStyleProvider and UIHoverGestureRecognizer to show a shadow effect or to change the default mouse pointer, when hovering over a diary entry in the sample app. You’ll also learn to accessorize your mouse pointers using UIPointAccessory that’s new in iOS 15. You’ll look at the differences between iOS / iPadOS and touch targets in macOS.
In this chapter, you’ll learn all about the menu bar by trimming the default menu bar, as well as adding new items to delete, share and add new diary entries.
In this chapter, you’ll learn to customize the toolbar items, including Add, Share and Delete.
In this chapter you’ll continue to develop your app by adding the toolbar items to the Touch Bar.
Section III: Distributing Your App
Congratulations! You now have a Mac app. But getting that app, first to your testers and then to your users can be a little different than on iOS.
In this section, you’ll learn how to roll out your app for beta testing using TestFlight. You’ll then learn the options for distributing your app and how those options work.
In this chapter, you’ll read about the pros and cons of distributing on the Mac App Store, test your app using TestFlight and learn how to go from Xcode to a released app on the App Store.
In this chapter, you’ll learn how to make sure everyone with macOS can run your app, as well as how to improve the installation experience for your potential users.