Bridge The Native API
How It Works
When syncing the project, the plugin creates a folder at src/swift/[cinteropName] or src/swift/[targetName] if cinteropName is not defined, for example src/swift/iosArm64.
The content of this folder is your bridge between Swift and Kotlin, everything inside is copied to the build directory.
Example
Gradle
The following configuration is a simple bridge between Kotlin and the Swift Apple Native SDK.
The plug-in uses the cinterop feature of KMP to export the compatible code to your Apple target code.
build.gradle.kts
kotlin {
listOf(
iosArm64(),
iosSimulatorArm64()
// and more Apple targets...
).forEach { target ->
target.swiftPackageConfig(cinteropName = "[cinteropName]") {
}
}
}
Bridge
Make your Swift code compatible with Kotlin.
Your Swift code needs to be marked as @objc/@objcMembers and the visibility set as public
or it won't be exported and available from your Kotlin code.
Some tips here.