Skip to content
Kotlin Multiplatform · Android / iOS / web

The Everframe Kotlin Multiplatform SDK.

Share Kotlin reporting calls across Android, iOS, and web.

// commonMain build.gradle.kts
implementation("dev.everframe:kmp:1.2.0")
Android API 24+ or iOS 15+ for mobileNative SDK on mobile; Web SDK in browser

The KMP bridge shares start, user, screen, breadcrumb, handled-error, network-operation, and reporter calls. Android and Swift drivers use native Everframe SDKs; the Kotlin/JS browser driver uses the Web SDK.

Three steps

1Install in your shared module
implementation("dev.everframe:kmp:1.2.0")
2Start with a host driver
val driver = AndroidEverframeDriver(applicationContext, activity)
val everframe = EverframeKmp(driver)
everframe.start(EverframeKmpConfig(appId, sdkKey))
3Open the native reporter
everframe.openReporter { outcome ->
    // outcome.status: submitted, queued, cancelled, or failed
}

What it captures

Screenshot Native reporter screenshot on mobile; masked renderer canvas on web Mark sensitive content in each host before capture
Session replay Android masked image frames; iOS native video; web masked image replay Attached when enabled for the integration
Errors Explicit handled Kotlin failures Use captureException or a stable code with captureHandledError
Crash reports Uncaught Java and Kotlin crashes on Android, through the native SDK underneath on by default
Native crashes Native crashes and ANRs on Android 11 and later, and native crashes on iOS, through the native SDKs
Network Native metadata and explicit operation breadcrumbs No request or response bodies through the KMP bridge
Screens Explicit recordScreen calls
Sensitive content Native host markers or browser canvas rectangles Android and web capture fail closed without markers unless the host explicitly permits a safe screen
Device and app Native host metadata or browser metadata

What you wire yourself

  • Create a Kotlin Multiplatform integration in the dashboard and pass its app ID and SDK key to EverframeKmpConfig.
  • Connect the Android driver to the current Activity, add the Swift driver on iOS, or supply the Web SDK initializer and masked visual provider on web.
  • Mark private content in the host UI and call openReporter from your own action.

Use the Maven Central module for shared reporting logic in an Android, iOS, or web app. Android uses AndroidEverframeDriver; iOS adds EverframeSwiftDriver.swift to the host alongside the KMP framework and native Everframe SDK.

The bridge does not capture a Kotlin UI on its own. The host controls sensitive markers, reporter triggers, and the Activity or Swift driver lifecycle. See Install and Configuration for the host setup and capture limits. For a full run in a Compose host, read Kotlin Multiplatform bug reporting: one shared API, native capture.

On web, EverframeBrowserDriver uses the Web SDK for its reporter and delivery. The browser host supplies masked renderer screenshots and replay.

Questions

Does it need screen-recording permission?

No. Its Android and iOS drivers use capture from the app's own UI through the native SDKs.

Does it replace the native Android and iOS SDKs?

No. KMP shares the app-facing Kotlin calls. The native SDK on each host captures evidence, presents the reporter, and sends reports.

Can the KMP bridge run in a browser?

Yes. Its Kotlin/JS target uses EverframeBrowserDriver with @everframe/web and a renderer-owned masked visual provider. Wasm is not a target.