Android (CatchDev)
CatchDev is the Android SDK for catch.dev. Its v1 focuses on user feedback: your
users shake their device, see a screenshot of the current screen, annotate it, add a note,
and submit — and it lands in your dashboard under App → Feedback. It's the Android
sibling of the iOS / Apple and Web feedback SDKs — every
platform speaks the same wire contract.
Requires Android 7 (API 24)+. This SDK captures user feedback, not crashes — for error tracking, use the
@catch.dev/*error SDKs. Kotlin + Android Views (no Jetpack Compose), no third-party HTTP library.
1. Install
Early access: the package is on GitHub Packages (Maven Central publishing lands at public launch), so resolution needs a GitHub token with
read:packages— contact us if you need access.
Add the repository and the dependency:
// settings.gradle.kts
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven {
url = uri("https://maven.pkg.github.com/catchdotdev/catchdev-android")
credentials {
username = System.getenv("GITHUB_ACTOR")
password = System.getenv("GITHUB_TOKEN")
}
}
}
}
// app/build.gradle.kts
dependencies {
implementation("dev.catch:catchdev-android:0.1.0")
}
2. Get your access key
In the dashboard, open your app and go to API Keys. Create a key and copy it.
3. Start the SDK
Kotlin (ideally in your Application):
import dev.catchdev.CatchDev
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
CatchDev.start(this, "ck_your_key")
}
}
Java
import dev.catchdev.CatchDev;
CatchDev.start(this, "ck_your_key");
Note: the Maven coordinates (
dev.catch:catchdev-android) differ from the Java package (dev.catchdev) — import fromdev.catchdev.
Shake-to-report is enabled by default. On an emulator, trigger a shake from
Extended controls → Virtual sensors, or call CatchDev.presentReporter() from a button.
4. Options
CatchDev.setUser("123", "user@example.com") // attach an identity
CatchDev.setMetadata(mapOf("screen" to "Checkout")) // custom key/values
CatchDev.setEnvironment("production") // tag the environment
CatchDev.isShakeToReportEnabled = false // disable the shake trigger
CatchDev.setOnFeedbackSentListener { ok, id, error -> } // delivery callback
CatchDev.isDebugLoggingEnabled = true // logcat diagnostics
CatchDev.presentReporter() // open the reporter manually
5. View feedback
Submitted reports appear in the dashboard under App → Feedback, with the annotated screenshot, the message, and device context.
Privacy
Screenshots are captured on-device and may contain personal data. Nothing is sent until the
user taps Send, and the SDK skips secure (FLAG_SECURE) screens. In Play Console → Data
safety, declare User-generated content (and Device or other IDs if you set a user id).