A beautiful, fast, and feature-rich Android app for browsing and downloading wallpapers from Wallhaven.
- Latest - Browse newest wallpapers
- Toplist - View trending/popular wallpapers
- Random - Discover random wallpapers
- Infinite scroll - Load more as you scroll
- Full-text search with tag support
- Filter by resolution, aspect ratio, color
- Category filters (General, Anime, People)
- Purity filters (SFW, Sketchy, NSFW)
- One-tap download to gallery
- Set as wallpaper (Home/Lock/Both)
- Local favorites without API key
- Custom download notifications
- View your Wallhaven collections
- Browse collection wallpapers
- Organize saved wallpapers
- Material Design 3
- Dark/Light theme support
- Pinterest-style masonry grid
- Smooth animations and transitions
- Tab bar auto-hide on scroll
- View your Wallhaven collections
- Browse collection wallpapers
- Organize saved wallpapers
- Material Design 3
- Dark/Light theme support
- Pinterest-style masonry grid
- Smooth animations and transitions
- Hidden tab bar on scroll
- API key configuration
- Theme preference (System/Light/Dark)
- Persistent settings
| Browse | Search | Detail |
|---|---|---|
![]() |
![]() |
![]() |
lib/
βββ core/ # Core utilities and constants
β βββ constants/ # App colors, spacing, API constants
β βββ theme/ # Light/Dark theme configuration
β βββ extensions/ # String extensions
β βββ errors/ # Failure classes
βββ data/ # Data layer
β βββ api/ # API client (Dio)
β βββ models/ # Freezed data models
β βββ repositories/ # Repository implementations
βββ domain/ # Domain layer
β βββ entities/ # Search params, enums
β βββ repositories/ # Repository interfaces
βββ features/ # Feature modules
β βββ browse/ # Browse screen
β βββ search/ # Search screen
β βββ detail/ # Wallpaper detail screen
β βββ favorites/ # Local favorites
β βββ collections/ # Wallhaven collections
β βββ settings/ # App settings
βββ services/ # Services (download, etc.)
βββ providers/ # Riverpod providers
βββ widgets/ # Reusable widgets
βββ common/ # WallpaperCard, WallpaperGrid, etc.
- Clean Architecture with separation of concerns
- Riverpod for state management
- go_router for navigation
- freezed for immutable data models
- Repository Pattern for data access
- Flutter SDK 3.x or higher
- Android SDK
- A Wallhaven account (optional, for NSFW content)
-
Clone the repository
git clone https://github.com/yourusername/wallhavendroid.git cd wallhavendroid -
Install dependencies
flutter pub get
-
Configure Android (Optional)
If you encounter build issues, ensure your
android/app/build.gradlehas:android { compileOptions { coreLibraryDesugaringEnabled true } } -
Run the app
flutter run
# Debug build
flutter build apk --debug
# Release build
flutter build apk --releaseFor accessing NSFW content:
- Go to Wallhaven Settings
- Generate an API key
- Open the app β Settings β API Key
- Enter your key
The app requires:
- Storage - For saving wallpapers
- Photos/Media - For Android 13+ gallery access
| Package | Purpose |
|---|---|
flutter_riverpod |
State management |
go_router |
Navigation & routing |
freezed |
Immutable data models |
dio |
HTTP client |
cached_network_image |
Image caching |
flutter_staggered_grid_view |
Masonry grid layout |
share_plus |
Share functionality |
gal |
Gallery integration |
permission_handler |
Runtime permissions |
flutter_secure_storage |
Secure storage for API key |
This app uses the Wallhaven API v1.
GET /api/v1/search- Search wallpapersGET /api/v1/w/{id}- Get wallpaper detailsGET /api/v1/collections- User collectionsGET /api/v1/settings- User settings
Pass API key via header:
X-API-Key: <your-api-key>
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Wallhaven for the amazing wallpaper source
- Flutter for the cross-platform framework
- All contributors and maintainers of the open-source packages used
- Issues: Report bugs or request features via GitHub Issues
- Email: contact@example.com
Made with β€οΈ using Flutter


