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 UIKit and 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…

Property Wrappers in Swift are awesome.

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…

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. …

Phil Zakharchenko / Zet

iOS Engineer, Entrepreneur, CS Student at Georgia Tech

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store