Skip to content
Back to Work
Open Sourcefrontendbackenddevops

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.

Flutter 3.35.2Dart 3.9.0Material 3Unsplash REST APIProvider (State Management)Cached Network ImagePhoto ViewShimmerFlutter Staggered Grid ViewPermission HandlerSharedPreferencesPath ProviderFlutter Cache ManagerFlutter ToastURL Launcher

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

1

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.

2

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.

3

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.

4

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.

5

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.

6

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.

7

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

Flutter 3.35.2Dart 3.9.0Material 3Unsplash REST APIProvider (State Management)Cached Network ImagePhoto ViewShimmerFlutter Staggered Grid ViewPermission HandlerSharedPreferencesPath ProviderFlutter Cache ManagerFlutter ToastURL Launcher

Links