Explore
Featured, bookmarked, recently added, and recently viewed entries.
Android reference app
An offline Kotlin and Jetpack Compose gallery with 55 working references, reviewed API metadata, practical guidance, adaptive navigation, local personalization, and inspectable modular source.
Purpose
The running app is the visual and behavioral reference, the catalog explains design intent and API status, and the repository is the implementation truth. Users search an official name or alias, exercise real states, read use and avoid guidance, inspect accessibility and adaptation, separate API stability from artifact availability, and copy real source paths.
The app contains no accounts, ratings, simulated installs, lesson progress, remote catalog, or placeholder demonstrations.
Product destinations
Featured, bookmarked, recently added, and recently viewed entries.
All components grouped and filtered by official domain.
Stable and experimental API browsing with artifact and opt-in metadata.
Color, shape, motion, elevation, layout, accessibility, and typography.
Preview, guidance, inspect, and API views for one stable catalog ID.
Appearance, local library, privacy, project links, license, and app version.
Catalog coverage
Architecture
material-app/app/Composition root, typed routes, adaptive shell, search, state, and demo registrymaterial-app/core/catalog/Versioned JSON, models, validation, deterministic search, and source lookupmaterial-app/core/data/Preferences DataStore for bookmarks, recents, themes, accents, and motionmaterial-app/core/designsystem/Material theme, schemes, presets, OLED, accent generation, and expressive motionmaterial-app/feature/Explore, Catalog, APIs, Foundations, Detail, and Settingsmaterial-app/samples/Copyable state-hoisted implementations grouped by official domainState and search
The ViewModel exposes independent flows for catalog load, root destination, category, API stability, query, search, bookmarks, recents, settings, and one-shot events. Search text updates immediately; non-empty result work is debounced and runs away from the main thread. Exact names and API symbols rank ahead of aliases, categories, summaries, and guidance.
Personalization
System, light, dark, and OLED.
Dynamic Material You, monochrome, curated accents, and custom color.
Default, Dracula, Tokyo Night, and custom.
Expressive system motion or reduced motion that preserves meaning and safety.
Bookmarks and bounded recent history.
Clear bookmarks or recent history from Settings.
Privacy
Verification and release
Build-logic, catalog, DataStore, motion, ViewModel, demo registry, backup rules, and navigation have focused coverage. Release builds add lint vital analysis, R8 optimization, resource shrinking, deterministic APK naming, and local signing when all ignored credentials are present.
cd material-app
.\gradlew.bat -p build-logic :convention:test --warning-mode all
.\gradlew.bat testDebugUnitTest verifyMaterialBuildConventions checkProductionStrings --warning-mode all
.\gradlew.bat :app:assembleDebug --warning-mode all
.\gradlew.bat :app:assembleRelease --warning-mode allThe application version is read from gradle.properties, not duplicated on this page. A release is ready only after APK metadata, signing identity, and checksum are verified.