Skip to content

A fluttter clean architecture example using flutter_bloc, flutter_hook, auto_route, floor, get_it

License

Notifications You must be signed in to change notification settings

shahanajparvin/clean_architecture_flutter_example

Repository files navigation

Flutter Clean Architecture Example

Overview

The project is structured using Clean Architecture principles, which divide the codebase into several layers:

  • Presentation Layer: This layer contains UI components, including screens, widgets, and Flutter-specific code.
  • Domain Layer: Here, we define the business logic and use cases of the application. It includes the core business rules and entities.
  • Data Layer: This layer manages data sources, repositories, and data models. It handles data retrieval and storage.

Features

  • Clean Separation of Concerns: Clear separation between layers for better maintainability and testability.
  • Dependency Injection: We use the get_it package for managing dependencies.
  • Sample Use Cases: Includes sample interactions and use cases.
  • Organized Project Structure: A well-organized structure for easy navigation and development.

Getting Started

Follow these steps to run this project on your local machine:

  1. Clone the repository:

git clone https://github.com/shahanajparvin/clean_architecture_flutter_example.git

  1. Navigate to the project directory:

cd flutter-clean-architecture-example

  1. Install dependencies:

flutter pub get

  1. Run the app:

flutter run

Dependencies

We use several packages to facilitate Clean Architecture and improve developer productivity, including:

  • get_it for dependency injection.
  • dio for making network requests.
  • equatable for value equality.
  • bloc for state management.

For the complete list of dependencies, refer to the pubspec.yaml file.

Contributing

If you would like to contribute to this project or have suggestions for improvements, please feel free to open an issue or submit a pull request. We welcome and appreciate your contributions!

This project is licensed under the MIT License.