Wallz
A premium Flutter wallpaper discovery and management application powered by the Unsplash API, offering millions of high-quality wallpapers with seamless browsing, search, zoomable previews, and direct wallpaper-setting functionality across all six Flutter platforms.
Problem
Finding, previewing, and applying high-quality wallpapers from a mobile device is typically fragmented across multiple apps or web browsers, leading to a disjointed user experience with no single solution for discovery, search, and direct wallpaper application.
Approach
Built a clean, layered architecture separating models, services, providers, screens, widgets, and utilities. Integrated the Unsplash API as the content source, implemented Provider-based state management with infinite scroll pagination, and created a premium Material 3 UI with advanced design patterns like shimmer loading, Hero animations, and glassmorphism cards. The app is platform-aware, adapting wallpaper-setting and download logic per device.
Key Engineering Decisions
Unsplash API as Content Source
Chose the Unsplash REST API for access to millions of high-quality, free-to-use photos with robust search and category capabilities, eliminating the need for a custom content backend.
Provider + ChangeNotifier for State
Used Provider with a single WallpaperProvider ChangeNotifier to manage all app state (wallpapers, search, categories, favorites, pagination, loading states) keeping the architecture simple and scalable without over-engineering.
Clean Layered Architecture
Organized the codebase into models/, services/, providers/, screens/, widgets/, and utils/ directories to enforce clear separation of concerns and make the codebase maintainable and extensible.
Singleton Service Pattern
Implemented WallpaperService as a singleton with a private constructor and factory pattern to ensure a single API client instance across the app, avoiding redundant HTTP connections.
Staggered Grid + Infinite Scroll
Used flutter_staggered_grid_view for a Pinterest-style masonry layout with ScrollController-based infinite pagination (triggering at 200px from bottom) for a seamless browsing experience.
Platform-Aware Wallpaper Setting
Designed WallpaperManagerService and DownloadHelper to check Platform.isAndroid/isIOS and adapt permission requests, storage paths, and wallpaper-setting logic per platform.
Material 3 with Custom Design Language
Adopted Material 3 with a deepPurple seed color scheme and built premium UI elements including gradient hero banners, glassmorphism category cards, shimmer placeholders, and smooth Hero transitions.
Results
~2,885
Lines of Dart code across 15 source files
8
Curated wallpaper categories with unique themes
6
Target platforms: Android, iOS, macOS, Windows, Linux, Web
15
Third-party packages integrated
3-tier
Wallpaper setting: Home Screen, Lock Screen, or Both
2x
Pinch-to-zoom support in full-screen preview
Technologies
Links