iOS & Swift

Catalyst by Tutorials

Take all of those great apps you’ve built on iOS and learn how to make them run well under macOS using the Catalyst framework. By Andy Pereira & Marin Bencevic.

Read for Free with the Personal Plan* * Includes this and all other books in our online library See all benefits
Buy Individually $59.99* *Includes access to all of our online reading features.
Leave a rating/review
Download materials
Buy paperback—Amazon Comments
Save for later

Who is this for?

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.

Covered concepts

  • Drag-and-Drop API
  • Multi-Window Support
  • Context menus
  • Keyboard shortcuts
  • App preferences
  • Mouse support
  • Toolbar & TouchBar
  • Distribution differences between macOS and iOS apps
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...


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!

Toggle description
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.
Toggle description
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.
Toggle description
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.
Toggle description
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.
Toggle description
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.
Toggle description
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.
Toggle description
Learn layout preferences, and override individual items from dark mode, similar to 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.
Toggle description
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.
Toggle description
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.
Toggle description
In this chapter, you'll learn to customize the toolbar items, including Add, Share and Delete.
Toggle description
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 learn 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.

Toggle description
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.
Toggle description
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.