A shipped Android home launcher built from the ground up in Jetpack Compose — featuring an AI themed-icon pipeline, a glanceable-info system, and a built-in content feed. Engineered for performance, polish, and architectural depth.
AI themed-icon system — 30+ cohesive icon themes (molten metal, carved silver, holographic glass, frosted ice, and more) generated server-side and applied across every installed app
Glanceable-info system — a rotating carousel of context cards: Activity steps (via Health Connect), Calendar, Weather, battery, alarms, timers, and now-playing
Custom swipe-gesture detection and a paged home screen with animated, lifecycle-aware transitions
Drag-and-drop app management with live folder creation, removal, and rename support
Built-in content feed — a TikTok-style vertical video experience with Media3 ExoPlayer paging, player preloading, and mediated ad monetization
Dynamic icon sizing: configurable grid density from Extra Small through XL with real-time layout reflow
Fast app drawer with debounced search and lazy-loaded icon rendering
Persistent home-screen state via Protobuf DataStore and an event-driven ViewModel architecture
User theming — color schemes, fonts, and app-icon shapes, on top of the themed-icon packs
Motion design used purposefully to guide, confirm, and draw attention to user actions
Architecture & Design
Clean Architecture with domain / data / presentation separation and sealed UI-contract layers
State-driven design built on StateFlow for UI state and SharedFlow channels for one-shot effects
Sealed model hierarchies (LauncherItem, LauncherEvent) as the core domain contract
Composable UI tuned for minimal recomposition and reactive, density-aware layout
State survives process death and configuration changes
Gesture system supporting drag cancel zones, uninstall tracking, and launch shortcuts
Hilt dependency injection across feature-scoped modules
Performance Engineering
Two-tier icon caching: an in-memory LruCache backed by a WebP disk cache
RGB565 bitmaps and Coil memory caching to cut icon-rendering memory pressure
SDK initialization parallelized across coroutines to keep cold start fast
Debounced app-drawer search and lazy icon loading for a responsive drawer
Firebase Performance Monitoring and Crashlytics wired into release builds
Tooling & Developer Experience
Composable previews and modular feature isolation for screen-by-screen development