
Session recording and product analytics with shared API, screen tagging, event logging, user identity, privacy occlusion, runtime Compose occlusion, consent and upload controls.
UXCam session recording and product analytics for Kotlin Multiplatform applications. The shared Kotlin API uses the native UXCam SDK on Android and iOS.
Apply the UXCam plugin to your shared module:
plugins {
id("com.uxcam.kmp") version "<version>"
}The plugin adds uxcam-kmp to commonMain and adds uxcam-compose when Compose is detected.
Android receives the native UXCam SDK transitively.
For multi-module projects, declare the Kotlin and Android plugins once in the root build with
apply false.
The native UXCam iOS SDK must be linked by the final iOS application:
https://github.com/uxcam/uxcam-ios in Xcode and use a static
Kotlin framework.kotlin("native.cocoapods"), the UXCam plugin adds
the native pod automatically.You can add the shared library directly, but must configure iOS linking yourself:
kotlin {
sourceSets {
commonMain.dependencies {
implementation("com.uxcam:uxcam-kmp:<version>")
}
}
}Add the prebuilt package in Xcode, then import UXCamKMP:
https://github.com/uxcam/uxcam-kmp
import com.uxcam.kmp.KMPUXCamBlur
import com.uxcam.kmp.UXCamKMP
import com.uxcam.kmp.uxcamConfiguration
UXCamKMP.startWithConfiguration(
uxcamConfiguration("YOUR_UXCAM_APP_KEY") {
enableCrashHandling = true
occlusions = listOf(
KMPUXCamBlur(screens = listOf("PaymentScreen")),
)
},
)
UXCamKMP.tagScreenName("Home")
UXCamKMP.logEvent("checkout_started", mapOf("cart_size" to 3))
UXCamKMP.setUserIdentity("user-42")Screen names must be tagged explicitly with tagScreenName.
The shared API also supports session control, user and session properties, screen-name ignore lists, bug and exception reporting, privacy occlusion, recording controls, consent management, verification callbacks, upload status, and dashboard URLs.
For Compose Multiplatform, apply uxcamOcclude to sensitive content:
Text(
text = "Sensitive content",
modifier = Modifier.uxcamOcclude("payment-card"),
)Startup occlusion rules are configured through uxcamConfiguration. Runtime blur and overlay
rules are additive until UXCamKMP.removeOcclusion() is called.
UXCam session recording and product analytics for Kotlin Multiplatform applications. The shared Kotlin API uses the native UXCam SDK on Android and iOS.
Apply the UXCam plugin to your shared module:
plugins {
id("com.uxcam.kmp") version "<version>"
}The plugin adds uxcam-kmp to commonMain and adds uxcam-compose when Compose is detected.
Android receives the native UXCam SDK transitively.
For multi-module projects, declare the Kotlin and Android plugins once in the root build with
apply false.
The native UXCam iOS SDK must be linked by the final iOS application:
https://github.com/uxcam/uxcam-ios in Xcode and use a static
Kotlin framework.kotlin("native.cocoapods"), the UXCam plugin adds
the native pod automatically.You can add the shared library directly, but must configure iOS linking yourself:
kotlin {
sourceSets {
commonMain.dependencies {
implementation("com.uxcam:uxcam-kmp:<version>")
}
}
}Add the prebuilt package in Xcode, then import UXCamKMP:
https://github.com/uxcam/uxcam-kmp
import com.uxcam.kmp.KMPUXCamBlur
import com.uxcam.kmp.UXCamKMP
import com.uxcam.kmp.uxcamConfiguration
UXCamKMP.startWithConfiguration(
uxcamConfiguration("YOUR_UXCAM_APP_KEY") {
enableCrashHandling = true
occlusions = listOf(
KMPUXCamBlur(screens = listOf("PaymentScreen")),
)
},
)
UXCamKMP.tagScreenName("Home")
UXCamKMP.logEvent("checkout_started", mapOf("cart_size" to 3))
UXCamKMP.setUserIdentity("user-42")Screen names must be tagged explicitly with tagScreenName.
The shared API also supports session control, user and session properties, screen-name ignore lists, bug and exception reporting, privacy occlusion, recording controls, consent management, verification callbacks, upload status, and dashboard URLs.
For Compose Multiplatform, apply uxcamOcclude to sensitive content:
Text(
text = "Sensitive content",
modifier = Modifier.uxcamOcclude("payment-card"),
)Startup occlusion rules are configured through uxcamConfiguration. Runtime blur and overlay
rules are additive until UXCamKMP.removeOcclusion() is called.