Mac Catalyst is a great opportunity for iOS developers to bring their existing offerings to the Mac with minimal modification. However, once you dig deeper into what you can and can’t do, you’ll realize that you’re restricted to a small subset of functionality that Mac has to offer.
I will share my method of using both
AppKit in a single Catalyst application to provide the native experience. All of this works in both macOS Catalina and macOS Big Sur. A word of caution: you’re just getting started with a new macOS project, my advice is to go with either
SwiftUI. They offer the native experience out of the box and are likely to be better documented. If your goal is to create a complex application that utilizes lots of native macOS features, definitely go with
Property Wrappers in Swift are awesome.
One of the “classic” use cases for them is storing data. And it can be dead simple, especially when it comes to using
UserDefaults. It can simplify your code down to something like
@UserDefault var x = 0. I am not going to talk about how to write a simple
UserDefaults wrapper here, because it has been done hundreds of times (check out this article by Paul Hudson if that’s what you’re looking for).
But let’s face it,
UserDefaults can be a pain when working with more complex data types. You might need to provide custom encoding/decoding mechanisms, and your little property wrapper will be no help in that case. …
The release of iOS 14 with its fancy widgets and new App Store offerings revolving around them left many of us Mac owners wondering — is there a way to achieve a similar level of customization on our computers?
And yes, there is. Although not quite the same as on iOS.
Remember Launchpad? If you’re anything like me, you use it multiple times a day to launch apps in an iOS-like manner. The sad thing is, there’s no obvious way to customize it. …