A production-ready Flutter wallpaper app for the Kroozelabs Intern Challenge.
- Clone the repository:
git clone <your-repo-url> cd the_wallpaper_company
- Install dependencies:
flutter pub get
- Run the app:
flutter run
- Install the FlutterFire CLI:
dart pub global activate flutterfire_cli
- Login to Firebase:
flutterfire login
- Initialize Firebase in your project:
flutterfire configure
- Select your Firebase project and platforms (Android/iOS).
- This will generate
lib/firebase_options.dart
automatically.
- Add
google-services.json
(Android) toandroid/app/
. - Add
GoogleService-Info.plist
(iOS) toios/Runner/
. - Enable Cloud Messaging and Remote Config in the Firebase Console.
For more details, see the FlutterFire CLI documentation.
dark_mode_enabled
(bool): Toggles dark mode in the app.- Example usage:
remoteConfig.getBool('dark_mode_enabled')
- Example usage:
Wallpapers are fetched from:
https://jsonkeeper.com/b/ORGZR
- The endpoint returns a list of wallpaper objects in JSON format.
- Each wallpaper object contains:
id
,title
,imageUrl
,category
.
- Home screen with category carousel
- Staggered grid and shimmer loading(Printerest Style)
- Fullscreen preview and favorites
- Pull-to-refresh and double-tap to like animation
- Firebase Remote Config for dark mode
- Firebase Cloud Messaging for notifications
- Provider for state management
- Persistent image cache
- Modern UI
Here are some suggested feature updates for contributors to work on:
- Bug Fixes:
- Identify and fix small UI bugs or alignment issues.
- Resolve any redundant code or formatting inconsistencies.
- Dark Mode Toggle:
- Add a toggle button to enable/disable dark mode.
- Search Wallpapers:
- Implement a search bar to find wallpapers by title or category.
- Share Wallpaper:
- Add functionality to share wallpapers via social media or messaging apps.
- Onboarding Screens:
- Create an onboarding flow for first-time users.
- Animations:
- Add smooth transitions and animations for better user experience.
- Multi-Language Support:
- Add support for at least two additional languages.
- Unit Tests:
- Write unit tests for existing features.
- Integration Tests:
- Ensure the app works seamlessly across different platforms.
- Update README:
- Add detailed setup instructions for contributors.
- Code Comments:
- Add comments to explain complex logic in the codebase.
- Create GitHub issues for the above tasks with labels like
good first issue
andhelp wanted
to guide contributors.
MIT