I’m primarily an Android developer and I’m currently building an Android + iOS application with Compose Multiplatform. I’ve also started exploring macOS development because I’ve been seeing more developers building dedicated Mac apps, and I’m interested in understanding whether CMP can be a good fit for this use case.
For iOS, my understanding is that a CMP project can have shared Kotlin code together with an iOS application target managed through Xcode. The native iOS side can use Swift/UIKit/SwiftUI and interact with the Kotlin Multiplatform code when native platform functionality is required.
This made me curious about macOS.
With the regular Compose Desktop approach, the desktop target is JVM-based. For many applications that works very well, but I’m particularly interested in apps that need deeper integration with macOS-specific functionality, such as:
• AppKit / SwiftUI
• macOS notifications
• file system APIs
• iCloud / CloudKit
• Share Extensions
• Menu Bar / NSStatusItem
• other macOS-specific APIs
So I’m wondering whether there is a supported or recommended architecture similar to the iOS approach:
Kotlin Multiplatform
↓
shared/common code
↓
Native macOS Xcode project
↓
Swift / AppKit / SwiftUI
The idea would be to keep shared application logic and Compose code where appropriate, while using Swift for functionality that needs native macOS APIs.
I’m not assuming that this architecture is currently supported. I’d mainly like to understand whether something like this is possible today, planned for the future, or whether Compose Desktop/JVM is currently the recommended approach even for Mac-only applications.
If it is possible, I’d also appreciate any examples or recommended project structures.
Thanks!