Skip to content
Everframe Docs
Documentation

Install

One shared Kotlin API, with the native Everframe SDK capturing and delivering reports on each host.

Updated

Create a Kotlin Multiplatform integration in the dashboard. Add the published Maven Central module to your shared module:

// commonMain dependencies in build.gradle.kts
implementation("dev.everframe:kmp:1.2.1")

On Android, connect the driver to the current Activity and start it with that integration’s app ID and SDK key:

val driver = AndroidEverframeDriver(applicationContext, activity)
val everframe = EverframeKmp(driver)
everframe.start(EverframeKmpConfig(appId, sdkKey))

// From your own report action:
everframe.openReporter { outcome ->
    // Handle submitted, queued, cancelled, or failed.
}

Call driver.bindActivity(activity) when a replacement Activity resumes and driver.bindActivity(null) when it stops. Mark private Android Compose content with Modifier.txSensitive() before capture. The Android reporter requires an Activity and fails closed if sensitive markers are missing, unless your app explicitly allows a known-safe route.

On iOS, link native Everframe 1.2.1 and add ios/EverframeSwiftDriver.swift from the KMP sources JAR to the host target alongside the KMP framework. Construct EverframeKmp with this Swift driver; it delegates to the native Swift SDK. Your iOS host packages both frameworks and marks private UI content.

Android requires API 24+ and iOS requires iOS 15+. The default environment is production; development and staging are also accepted. No screen-recording permission is required. See Configuration for screenshots, replay, and explicit Kotlin context.

Kotlin web targets

The dev.everframe:kmp module includes a Kotlin/JS browser target and EverframeBrowserDriver. Browser hosts pass it @everframe/web’s init function and a renderer-owned visual provider. For a canvas renderer, createCanvasVisualCapture copies the canvas, blacks sensitive rectangles, and supplies masked screenshots and bounded image replay. The Web SDK owns the reporter UI, delivery, and retry. Use the same KMP integration key; the browser report identifies itself as everframe-kmp on web.

The host must provide sensitive rectangle geometry; missing or invalid geometry rejects capture unless the host explicitly permits a known-safe screen. Browser builds require the production environment. This path passed a Chromium canvas report and replay probe; an installed Compose browser host has not yet been validated.

See also: a worked run in a Compose host, with the shared Kotlin calls and what each one sent.