andBuilt for Android (Kotlin)

Analytics & Monitoring
for Android (Kotlin)

One Gradle dependency. Native crash capture, ANR detection, OkHttp tracing, and background-work monitoring — across Jetpack Compose and View-based apps. R8 / ProGuard rules ship with the AAR.

  • Jetpack Compose and View-based apps — single SDK
  • Native crash capture via libsignal (NDK + Java exceptions)
  • ANR detection with main-thread watchdog
  • OkHttp interceptor + Retrofit integration
  • WorkManager and Coroutine job tracing
  • R8 / ProGuard / Dexguard rules pre-shipped
kotlin
1// In your Application onCreate()
2import app.justanalytics.JustAnalytics
3
4class MyApp : Application() {
5 override fun onCreate() {
6 super.onCreate()
7 JustAnalytics.init(
8 context = this,
9 siteId = "YOUR_SITE_ID",
10 )
11 }
12}
Active Users
0+12%
Pageviews
0+8%
Errors
0resolved
Uptime
0%all green

Built for Android apps

Compose, XML views, hybrid stacks — one Gradle dep covers crash, ANR, and network.

Native + Java crash

Native signals (SIGSEGV, SIGABRT) caught by libsignal. JVM exceptions via UncaughtExceptionHandler. Both flow to the same dashboard.

ANR detection

Main-thread watchdog detects unresponsive UI thread at the 5-second threshold and captures the full main-thread stack.

OkHttp + Retrofit

Drop in JustAnalytics.okHttpInterceptor() and every network request becomes a span with timing, status, and host.

Privacy compliant

Play Store Data Safety form pre-filled. No IDFA / GAID collection by default. Per-feature opt-out at init time.

Frame-rate tracking

Choreographer-based frame timing. Identifies which Activities, Fragments, or Composables are dropping frames.

Alert rules

Crash-free-session-rate, ANR-rate, p95 startup time per device. Routes to email, webhook, or PagerDuty.

Gradle + Application setup

Add the dependency, init in your Application class, wire OkHttp. That's the whole setup.

// app/build.gradle.kts
dependencies {
    implementation("app.justanalytics:android-sdk:1.0.0")
}

// MyApp.kt
import android.app.Application
import app.justanalytics.JustAnalytics

class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()
        JustAnalytics.init(
            context = this,
            siteId = BuildConfig.JA_SITE_ID,
            captureCrashes = true,
            captureANR = true,
            captureNetwork = true
        )
    }
}

// OkHttpClient — add the interceptor for network tracing
val client = OkHttpClient.Builder()
    .addInterceptor(JustAnalytics.okHttpInterceptor())
    .build()

Ready to simplify your stack?

Replace five tools with one platform. Start with the free tier or try Pro free for 7 days.

Start 7-Day Free Trial