$ show android/androidify
Androidify is a modular Android application that allows users to create personalized Android robot avatars using AI. It accepts a photo (from camera or gallery) or a text prompt, then generates a custom Android mascot image via a fine-tuned Imagen model through Firebase Vertex AI, with on-device Gemini Nano as a fallback for prompt generation and image validation. The app uses ML Kit for pose detection in the camera flow and subject segmentation for background removal. It features adaptive Jetpack Compose UIs across phones, tablets, foldables, and Android XR with shared element transitions. A companion Wear OS app enables one-tap installation of the generated avatar as a watch face, including APK creation and transfer via the Wearable Data Layer. The architecture is multi-module with custom Gradle plugins, Hilt DI, and feature flags via Firebase Remote Config. It is primarily an applied AI sample app, not a data research project, though it heavily relies on configurable AI prompts and model names.
The LLM identified 5 files worth highlighting for reuse:
A custom Material3-style primary button with gradient background, corner animation, and elevation effects. Self-contained with no internal module dependencies, uses only Compose Material3 and theme colors. Demonstrates advanced shape and gradient composables that can be reused in any Compose project for branded button patterns.
A utility that handles caching, file creation, sharing intents, andMediaStore saving for generated images. It abstracts FileProvider and ContentResolver operations into a simple API. Has no internal module dependencies other than Android SDK and Koil. Can be extracted for any Android app needing image export/share.
Creates a signed watchface APK from static assets and a dynamic bot bitmap, using Java's JarOutputStream and Android KeyStore for signing. It's self-contained (depends only on Android SDK and Bouncy Castle from libs). Demonstrates a robust pattern for genericing APK programmatically, applicable to any project that needs to assemble and sign Android packages at runtime.
An android.app.Startup initializer that integrates Firebase App Check using PlayIntegrity and Debug providers. Self-contained with only Firebase SDK dependencies. Demonstrates a clean pattern for hooking App Check into the app startup pipeline, reusable in any Firebase-integrated Android app.
A custom camera capture button composable with a 9-sided geometric shape, gradient fill, ripple animation, and scaling on press. It's fully self-contained (depends only on Compose and material3) and can be reused in any camera app that wants a distinct, branded shutter button.