A modern, dark-first wallpaper client crafted with Compose Multiplatform for Android, iOS, Web (Wasm), macOS, Windows, and Linux.
π Live Web App β’ Web Showcase β’ Desktop Showcase β’ Mobile Showcase β’ Features β’ Tech Stack β’ Getting Started β’ Shortcuts
Screeny runs natively in modern web browsers powered by Kotlin/Wasm and Compose Multiplatform. It renders high-performance 60 FPS graphics directly to HTML5 canvas using Skiko, featuring an adaptive wide layout, 1:1 dark glass skeleton shimmers with zero layout shift, and in-browser asynchronous Blob streaming for direct wallpaper downloads.
- π Live Demo on GitHub Pages: https://shahidzbi4213.github.io/WallpaperApp-Cmp/
- π¬ Product Walkthrough:
βΆοΈ Watch HD Web Demo Video (media/screeny-web-demo.mp4)
Screeny features a desktop experience built to macOS, Windows, and Linux conventions with a persistent sidebar, instant search, numbered pagination, and high-resolution preview modes.
Preview original high-resolution photography with a toggleable glassmorphic HUD, photographer metadata, direct profile links, and keyboard navigation.
Browse 16:9 wallpapers with quick-action hover buttons, contextual master-detail pane, and jump-to-page navigation.
Organize wallpapers into categories or save high-resolution favorites offline powered by multiplatform Room SQLite.
| Curated Categories | Offline Favourites |
|---|---|
![]() |
![]() |
Screeny delivers fluid edge-to-edge gesture navigation, infinite scrolling feeds, and shared element transitions on Android and iOS.
| Curated Feed | Wallpaper Detail | Similar Wallpapers |
|---|---|---|
![]() |
![]() |
![]() |
- π₯οΈ Tailored Desktop Experience (macOS, Windows, Linux):
- Fixed glassmorphic sidebar with Screeny signature branding.
- Persistent instant-search toolbar (β / Ctrl + F).
- Numbered page navigation (40 items/page) with direct jump-to-page dialog.
- Quick-action card hover overlays and right-click context menus.
- Native window size and position persistence.
- Native OS wallpaper setting (
osascripton macOS, PowerShell on Windows,gsettingson Linux).
- π Full-Screen Lightbox Viewer:
- Displays original high-resolution imagery.
- Click anywhere or press Space to toggle the floating glass HUD.
- Photographer credit, resolution info, and quick profile navigation.
- Seamless in-viewer feed browsing with β / β arrow keys.
- π Web (Kotlin/Wasm):
- High-performance Skiko canvas rendering running at 60 FPS in modern browsers via WebAssembly.
- 1:1 pixel-perfect dark glass shimmer skeletons with zero layout shift during asset loading.
- Responsive wide layout with master-detail side pane tailored for 16:9 HD wallpapers.
- In-browser asynchronous Blob streaming for direct wallpaper downloads without server roundtrips.
- Automated continuous deployment to GitHub Pages via GitHub Actions.
- π± Mobile UI (Android & iOS):
- Infinite scroll feed powered by Paging 3 Multiplatform.
- Gesture-driven bottom sheets, shared element transitions, and parallax scrolling.
- π¨ Mesh Gradient Generator:
- Interactive multi-point aurora gradient presets with instant wallpaper application and PNG export.
- πΎ Local Persistence:
- Offline favourites, user preferences, and search history powered by Room (KMP SQLite).
- π Internationalization:
- Multi-language support with runtime locale switching across 20+ languages.
- π Zero-Leak Secret Architecture:
- Dynamic build-time config via
local.propertiesor environment variables without committing secrets to git.
- Dynamic build-time config via
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Compose Multiplatform UI β
β βββββββββββββββββββββββββββββ βββββββββββββββββββββββββ β
β β Mobile UI (Navigation3) β β Dedicated Desktop/Web β β
β β (Android & iOS) β β (macOS/Win/Linux/Wasm)β β
β βββββββββββββββ¬ββββββββββββββ βββββββββββββ¬ββββββββββββ β
βββββββββββββββββββΌββββββββββββββββββββββββββββΌββββββββββββββββ
βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Shared ViewModels & Domain Models β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Koin DI (Annotations) β’ Mappers & UseCases β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Ktor Client (OkHttp/Darwin/Js)β Room Database (KMP SQLite)β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Layer | Library / Technology |
|---|---|
| UI Framework | Compose Multiplatform (Kotlin 2.4 / AGP 9.1) |
| Dependency Injection | Koin + Koin Annotations (KSP) |
| Networking | Ktor 3.5 (OkHttp on Android & Desktop, Darwin on iOS, Js/Wasm on Web) |
| Local Database | Room KMP 2.8 + SQLite |
| Paging | CashApp Multiplatform Paging 3 |
| Image Loading | Landscapist + Coil 3 |
| Design System | Glassmorphism (Ink950 dark space palette, Aurora gradients, frosted scrims) |
git clone https://github.com/Shahidzbi4213/WallpaperApp-Cmp.git
cd WallpaperApp-CmpGet a free API key at pexels.com/api. Copy local.properties.example to local.properties and paste your key:
PEXELS_API_KEY=your_pexels_api_key_here(You can also set PEXELS_API_KEY as an environment variable).
# Run the application
./gradlew :desktopApp:run
# Package native installers
./gradlew :desktopApp:packageDmg # macOS (.dmg)
./gradlew :desktopApp:packageMsi # Windows (.msi)
./gradlew :desktopApp:packageDeb # Linux (.deb)# Run local development server with hot reload (http://localhost:8080)
./gradlew :composeApp:wasmJsBrowserDevelopmentRun
# Build production distribution for deployment (composeApp/build/dist/wasmJs/productionExecutable)
./gradlew :composeApp:wasmJsBrowserDistribution./gradlew :androidApp:assembleDebugOpen iosApp/iosApp.xcodeproj in Xcode and press Run, or run via Fleet / Android Studio.
| Shortcut | Action |
|---|---|
| β / Ctrl + F | Focus search bar |
| β / Ctrl + , | Open Settings |
| Esc | Close preview / full-screen viewer / navigate back |
| Space | Toggle HUD controls in full-screen lightbox |
| β / β | Browse previous / next wallpaper in full-screen |
| F | Toggle favourite status |
# Run multiplatform shared unit tests
./gradlew :composeApp:allTests
# Run Desktop UI smoke tests & headless preview renders
./gradlew :composeApp:desktopTestDeveloped by Shahid Iqbal β Senior Android & Kotlin Multiplatform Engineer.
Connect: Portfolio β’ LinkedIn β’ GitHub β’ X (Twitter)
If you enjoy Screeny or find this Compose Multiplatform reference helpful, please give it a β on GitHub!







