This is a Flutter application that demonstrates the use of Clean Architecture with BDD (Behavior-Driven Development).
This app is a Flutter application built with the intention of following clean architecture principles and BDD. It uses the JSONPlaceholder API as a backend to fetch data and display it in the app.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Flutter SDK
- Dart SDK
- An IDE (like Android Studio or VS Code)
- Clone the repository:
git clone https://github.com/abouzia/clean_architecture_flutter_app.git
- Navigate into the cloned repository:
cd clean_architecture_flutter_app
- Get the packages:
flutter pub get
- Run the app:
flutter run
The project follows Clean Architecture principles and BDD, and is divided into three layers:
- Domain: This is the inner layer which should not be susceptible to the whims of changing data sources or porting our app to Angular Dart. It will contain only the core business logic (use cases) and business objects (entities).
- Data: This layer depends on the domain layer and is responsible for fetching data from various sources (API, cache, etc.). It's divided into repositories and data sources.
- Presentation: This is the layer responsible for showing data on the screen (widgets) and user interactions. It depends on both the domain and data layers.