A high-performance, cyberpunk-inspired Android Live Wallpaper application featuring interactive particle physics and a "breathing" hexagonal grid system.
- Interactive Particle System: Tap to ignite thousands of "Laser Sparks" that react to physics and collide with screen boundaries.
- "Limit Break" Performance: Optimized to handle 1,000+ active particles at 60fps using object pooling.
- Ambient Background: A "breathing" hexagonal grid (Honeycomb) that adds depth and cyberpunk aesthetics without draining the battery.
- User Friendly: Simple activation via a dedicated "Set Wallpaper" UI (Jetpack Compose).
- Language: Kotlin
- Graphics: Android Canvas API (Custom SurfaceView)
- DI: Hilt (Dagger)
- UI: Jetpack Compose (MainActivity)
- Concurrency: Kotlin Coroutines
To prevent Garbage Collection (GC) stuttering during the drawing loop:
- Object Pooling:
Particleobjects are reused from a fixed-size pool. Nonewallocations occur in theonDrawloop. - Path Caching: The complex hexagonal grid path is calculated only once upon surface resize and cached. The
draw()method only handles rendering and alpha pulsing.
- Separation of Concerns: The drawing logic (
IgniterRenderer) is completely decoupled from the Android lifecycle service (IgniterWallpaperService). - Battery Efficiency: The drawing loop automatically stops when the screen is invisible or locked.
- Clone this repository.
- Open in Android Studio.
- Build and Run on a device/emulator.
- Tap "Set Wallpaper" on the launch screen.
- Chaos vs. Order: The chaotic movement of particles contrasts with the structured, rhythmic breathing of the background grid.
- Visual Depth: Thicker grid lines with low opacity create a sense of depth, ensuring the foreground particles pop.