After completing visionOS, I turned my attention to macOS. Since macOS also supports SwiftUI, it was also a pretty straightforward port. However, I did want to do something special, so it took me a little longer.
When converting your iOS app to a macOS app, you must choose among these three tech stacks:
- Designed for iPad
- Mac Catalyst
- Mac Native
If you don’t want to do any hassle, Designed for iPad
makes your app work out of the box. You can check the table below for a quick overview.
Comparison
Designed for iPad | Mac Catalyst | Mac Native | |
---|---|---|---|
Effort | low | medium | high |
Mac Features | – | some | any |
UIKit | โ | โ | – |
AppKit | – | some | โ |
SwiftUI (iOS) | โ | โ | โ |
SwiftUI (Mac) | – | – | โ |
Of course, I chose the most challenging path, haha. I don’t want it to look just like an iPad app slapped in a window. I want to utilize the strengths of each platform.
The path you choose will determine what libraries you can use. If the library is only available in iOS, then you have to do one of these:
- Exclude
Mac Native
from your choices - Find a different library that also supports macOS
- Make the library work in macOS
This is where I took the most time.
My solution so I can stay Mac Native
:
Use different libraries for iOS and macOS if they don’t support both
So here it is, the native macOS app of Y-Verse.
Note: It’s not yet on the App Store because of a Firebase SDK bug, haha.
https://github.com/firebase/firebase-ios-sdk/issues/12587
Leave a Reply