“Dog Board” is a mobile application where you can find plenty of cute dog pictures. Besides its cuteness, the app was developed with Test Driven Development, considering the Clean Architecture, and best practices were diligently utilized.
The app is built following the principles of Clean Architecture, ensuring separation of concerns, testability, and maintainability. It employs a wide array of packages to achieve this robust architecture:
- State Management:
bloc
,flutter_bloc
- Routing:
auto_route
- Networking:
dio
,retrofit
- Dependency Injection:
get_it
- Storage:
hive
,hive_flutter
,path_provider
- Functional Programming:
dartz
- Utilities:
cached_network_image
,equatable
,json_annotation
,json_serializable
- UI:
cached_network_image
,shimmer
,lottie
- Testing:
bloc_test
,flutter_test
,mocktail
- Code Generation:
build_runner
,retrofit_generator
,auto_route_generator
...among others. For a complete list, refer to the pubspec.yaml
.
- Flutter SDK version '>=3.1.4 <4.0.0'
- Clone the repository:
git clone https://github.com/furkansoylemez/dog_board.git
- Navigate to the project directory:
cd dog_board
- Install dependencies:
flutter pub get
- Run the app:
flutter run
In the project, a total of 83 unit and widget tests were written, achieving a code coverage rate of over 73%. Additionally, end-to-end integration tests were written for the ImagesListByBreed and RandomImageByBreed features.
- Run Unit and Widget Tests:
flutter test
- Run Integration Tests
flutter drive --driver=test_driver/integration_test.dart --target=integration_test/app_test.dart