Skip to content

A Flutter App built with clean architecture and bloc pattern.

License

Notifications You must be signed in to change notification settings

FrankieShao/SnapGallery

Repository files navigation

SnapGallery

The SnapGallery App is a Flutter application that showcases a collection of beautiful images from Unsplash. The app is built with a clean architecture and incorporates modern state management and dependency injection techniques.

Supports: Android 📱, iOS📱

Tech Stack ✨

  • Clean Architecture
    • Presentation Layer: Contains UI and state management (Bloc).
    • Domain Layer: Contains business logic (Use cases).
    • Data Layer: Handles data retrieval from the Unsplash API and caching.
  • Modularization - melos
  • State Management - Bloc
  • Dependency Injection - get_it, injectable
  • Networking - Dio
  • Navigation - go_router
  • Linting - flutter_lints
  • Load configuration - flutter_dotenv

Screenshots

iOS

iOS_gif iOS_main iOS_menu iOS_user_detail

Android

Android_main Android_menu Android_user_detail

Setup Requirements

Obtain an API key from unsplash and add it to your .env file:

ACCESS_KEY=
SECRET_KEY=
// optional for applications that are only using the 'Public' permissions
REDIRECT_URI=

Todo

  • Unit Tests

Contribute

If you want to contribute to this, you're always welcome!

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements