Is there a recommended way to build a macOS-only C...
# compose-desktop
m
Is there a recommended way to build a macOS-only Compose Multiplatform app using a native Swift/Xcode host, similar to the native iOS integration approach? I’m specifically wondering whether a macOS Xcode/Swift project can act as the native application layer while Kotlin Multiplatform + Compose handles the shared code/UI, allowing Swift to handle macOS-specific APIs when needed.
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:
Copy code
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!
u
Check Nucleus and NucleusNativeAccess