Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
Pricing
Open Source
Type
TOOL
Builder
block
GitHub
899 stars
Latest release
v2.10
Date

About

Text-ray goggles for your Android UI. Print the view hierarchy or Jetpack Compose tree as a string for debugging and bug reports.

What it does

Radiography inspects a running Android app’s windows and walks their logical UI nodes. It produces an indented text tree containing details such as dimensions, identifiers, visibility, focus, selection, text length, and Compose semantics. Scans can cover every app-owned window, the focused window, one view, or tagged Compose content.

Why it's ranked here

Its strongest feature is controlled, readable diagnostics from live UI state. Scope selection, composable tags, combined filters, custom attribute renderers, and raw hierarchy access make it useful beyond simple printing. Privacy-aware defaults strengthen the case: text values stay excluded unless the caller explicitly includes them.

What's good

The default output captures useful state without exposing text content, while an explicit option can include and truncate text. Filters remove whole subtrees by Android identifier or Compose test tag. Custom renderers append domain-specific attributes. Raw nodes expose children, modifiers, semantic configurations, geometry, and Compose call-chain information for programmatic checks.

Tradeoffs

Compose support is experimental and depends on the tooling library. Internal Compose changes can prevent hierarchy rendering until Radiography or the dependency changes. Background-thread scans move work to the view’s looper and stop waiting after five seconds. Filtering a node also removes every descendant. Including actual text can expose personally identifiable information.

How to use it well

Use it in Android debugging, automated checks, and bug-report collection when a compact structural snapshot explains UI state better than prose. Keep the privacy-preserving renderers as the default, narrow scans to relevant windows or tags, and add custom attributes only when they answer recurring questions. It does not provide a visual image of the rendered screen.

Technical notes+

radiography/src/main/java/radiography/Radiography.kt resolves roots through ScanScope, switches traversal to each Android root’s looper when needed, waits up to five seconds, catches failures, and renders filtered nodes into a StringBuilder. radiography/src/main/java/radiography/ScannableView.kt models Android and Compose nodes and exposes children as Sequence<ScannableView>; Compose nodes also carry geometry, modifiers, semantics, and call groups. radiography/src/main/java/radiography/ViewStateRenderers.kt supplies PII-excluding and PII-including renderer lists. stoic-plugin/src/main/kotlin/Main.kt adds a Stoic command surface with --pii and --focused options.

Observed

License
Apache License 2.0
Primary language
Kotlin
Packaging
Published as the Maven dependency com.squareup.radiography:radiography
Interfaces
Android library API and Stoic command plugin
Platform support
Android Views, with experimental Jetpack Compose support
Default privacy behavior
Default renderers exclude text values and report text lengths

Read from README.md, stoic-plugin/src/main/kotlin/Main.kt, radiography/src/main/java/radiography/Views.kt, radiography/src/main/java/radiography/ScanScope.kt, radiography/src/main/java/radiography/ScanScopes.kt, radiography/src/main/java/radiography/ViewFilter.kt, radiography/src/main/java/radiography/Radiography.kt, radiography/src/main/java/radiography/ViewFilters.kt, radiography/src/main/java/radiography/ScannableView.kt, radiography/src/main/java/radiography/ViewStateRenderer.kt, radiography/src/main/java/radiography/ViewStateRenderers.kt, radiography/src/main/java/radiography/AttributeAppendable.kt, radiography/src/main/java/radiography/ExperimentalRadiographyComposeApi.kt, radiography/src/main/java/radiography/internal/Strings.kt, radiography/src/main/java/radiography/internal/Semantics.kt.

What it can do

  • Print Android view hierarchy as a string

    Android UI view hierarchyString representation of view hierarchy

  • Print Jetpack Compose tree as a string

    Jetpack Compose UI treeString representation of Compose tree

  • Generate debugging output for UI structure

    Android UI componentsFormatted debug text

  • Create bug report data from UI hierarchy

    Android app UI structureBug report text with UI details

  • Inspect Android UI elements for debugging

    Running Android application UIDetailed UI structure information

Tags

androidcomposedebuggingkotlinui

Tech Stack

JavaKotlinShell

Media

Radiography

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.