Skip to content

A Flutter application exemplifying TDD, Clean Architecture, and optimal development practices. Browse a delightful array of dog images by breed or sub-breed.

Notifications You must be signed in to change notification settings

furkansoylemez/dog_board_flutter

Repository files navigation

Dog Board - Flutter App

Overview

“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.

App Screenshot App Screenshot App Screenshot

App Screenshot App Screenshot App Screenshot

Architecture

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.

Run The Project

Prerequisites

  • Flutter SDK version '>=3.1.4 <4.0.0'

Setup and Run

  1. Clone the repository:
git clone https://github.com/furkansoylemez/dog_board.git
  1. Navigate to the project directory:
cd dog_board
  1. Install dependencies:
flutter pub get
  1. Run the app:
flutter run

Tests

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.

  1. Run Unit and Widget Tests:
flutter test
  1. Run Integration Tests
flutter drive --driver=test_driver/integration_test.dart --target=integration_test/app_test.dart

About

A Flutter application exemplifying TDD, Clean Architecture, and optimal development practices. Browse a delightful array of dog images by breed or sub-breed.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages