Skip to content
Kotlin · Android

The Everframe Android SDK.

Two Maven artifacts for phones, tablets, Android TV and Fire TV. Native screenshot, wireframe replay, logs, crash reports.

// build.gradle — set everframeVersion in gradle.properties
implementation "dev.everframe:core:$everframeVersion"
implementation "dev.everframe:reporter-ui:$everframeVersion"
API 24+Android, Android TV, Fire TV

A native Kotlin SDK in two artifacts, core and reporter-ui. Start it in Application.onCreate(), open the reporter from your own button, and every report carries a native screenshot, a wireframe replay, your logs, the trail of Activities and device. Network capture starts when you attach the OkHttp interceptor. On TV the companion does the reporting.

Three steps

1Add both artifacts
implementation("dev.everframe:core:$everframeVersion")
implementation("dev.everframe:reporter-ui:$everframeVersion")
// core alone compiles, then throws when the reporter opens
2Start it in Application.onCreate()
Everframe.start(
  this,
  EverframeConfig(appId = "evf_app_…", sdkKey = "evf_live_…")
)
3Open it from your own button
lifecycleScope.launch {
  val result = Everframe.report.open()
}

What it captures

Screenshot A native capture of the current window, Views or Compose, with the reporter's annotations no MediaProjection prompt
Session replay Wireframe timeline of what the app rendered — layout and real text, not pixels no permission, no video file
Logs Timber output and anything written to System.out / System.err capture.logs, on by default; plain android.util.Log is not captured
Network Requests with status and duration, through the OkHttp interceptor you attach bodies are a separate per-app gate, off by default
Screens Activity transitions recorded automatically; Compose and single-Activity navigation in one line TXScreen composable, Jetpack Navigation, Fragments
Focused component Not captured on Android today — the screenshot and the Activity trail carry the context
Crash reports Uncaught exceptions file a report on their own on by default
Device and app Model, OS version, screen, locale, timezone, release

What you wire yourself

  • The trigger. The SDK installs no bubble; your own button calls report.open().
  • Network capture, if you want it: addEverframeInterceptor() on your OkHttpClient.
  • Sensitive views and composables. Mark them and they are masked before the screenshot leaves the device.
  • Screen names for Compose and single-Activity apps; classic Activities need nothing.

When to pick it

Native Android apps on phones, tablets, Android TV and Fire TV, Views or Compose. Two Maven dependencies, one start call in Application.onCreate(), your own button to open it. React Native apps take the React Native SDK, which wraps this one.

What is native about it

The screenshot is a native render of the window, so there is no MediaProjection prompt and nothing off-screen is captured. Replay is a wireframe timeline of the view tree, deliberately not pixels. Activity transitions are recorded on their own; a modern single-Activity app is one screen to the SDK until you mark the rest, which screen tracking covers in a line per screen.

On a television

The same artifacts run on Android TV and Fire TV, but nothing is typed on the screen. The SDK shows the pairing badge and the PIN card; a phone or the dashboard files the report. The Android TV and Fire TV pages walk through it.

Questions

Does it support Jetpack Compose and classic Views?

Yes. Screenshot, replay and masking work on both. Activity transitions are recorded automatically; Compose screens are marked with the TXScreen composable, and Jetpack Navigation and Fragments have their own hooks.

Why two artifacts?

core is capture, signing and delivery; reporter-ui is the reporter screen. Both are required — core alone compiles and then throws IllegalStateException the moment the reporter opens.

Does the same SDK cover Android TV and Fire TV?

Yes, unchanged; Fire OS is Android. On TV nothing is typed on the screen: the SDK shows the pairing badge and the PIN card, and a phone or the dashboard files the report.