Skip to content

robsonsilv4/clean-architecture-tdd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

38 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Flutter Clean Architecture with TDD

Based on Reso Coder YouTube course.

Screenshots

screenshot-01 screenshot-02

Clean Architecture proposal by Reso

architecture-proposal

lib structure

β”œβ”€β”€ lib
β”‚Β Β  β”œβ”€β”€ core
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ errors
β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ exceptions.dart
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── failures.dart
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ network
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── network_info.dart
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ use_cases
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── use_case.dart
β”‚Β Β  β”‚Β Β  └── utils
β”‚Β Β  β”‚Β Β      └── input_converter.dart
β”‚Β Β  β”œβ”€β”€ features
β”‚Β Β  β”‚Β Β  └── number_trivia
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ data
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ data_sources
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ number_trivia_local_data_source.dart
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  └── number_trivia_remote_data_source.dart
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ models
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  └── number_trivia_model.dart
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── repositories
β”‚Β Β  β”‚Β Β      β”‚Β Β      └── number_trivia_repository_impl.dart
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ domain
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ entities
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  └── number_trivia.dart
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ repositories
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  └── number_trivia_repository.dart
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── use_cases
β”‚Β Β  β”‚Β Β      β”‚Β Β      β”œβ”€β”€ get_concrete_number_trivia.dart
β”‚Β Β  β”‚Β Β      β”‚Β Β      └── get_random_number_trivia.dart
β”‚Β Β  β”‚Β Β      └── presentation
β”‚Β Β  β”‚Β Β          β”œβ”€β”€ bloc
β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ bloc.dart
β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ number_trivia_bloc.dart
β”‚Β Β  β”‚Β Β          β”‚Β Β  β”œβ”€β”€ number_trivia_event.dart
β”‚Β Β  β”‚Β Β          β”‚Β Β  └── number_trivia_state.dart
β”‚Β Β  β”‚Β Β          β”œβ”€β”€ pages
β”‚Β Β  β”‚Β Β          β”‚Β Β  └── number_trivia_page.dart
β”‚Β Β  β”‚Β Β          └── widgets
β”‚Β Β  β”‚Β Β              β”œβ”€β”€ loading_widget.dart
β”‚Β Β  β”‚Β Β              β”œβ”€β”€ message_display.dart
β”‚Β Β  β”‚Β Β              β”œβ”€β”€ trivia_controls.dart
β”‚Β Β  β”‚Β Β              β”œβ”€β”€ trivia_display.dart
β”‚Β Β  β”‚Β Β              └── widgets.dart
β”‚Β Β  β”œβ”€β”€ injection_container.dart
β”‚Β Β  └── main.dart

test structure

β”œβ”€β”€ test
β”‚Β Β  β”œβ”€β”€ core
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ network
β”‚Β Β  β”‚Β Β  β”‚Β Β  └── network_info_test.dart
β”‚Β Β  β”‚Β Β  └── utils
β”‚Β Β  β”‚Β Β      └── input_converter_test.dart
β”‚Β Β  β”œβ”€β”€ features
β”‚Β Β  β”‚Β Β  └── number_trivia
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ data
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ data_sources
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  β”œβ”€β”€ number_trivia_local_data_source_test.dart
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  └── number_trivia_remote_data_source_test.dart
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”œβ”€β”€ models
β”‚Β Β  β”‚Β Β      β”‚Β Β  β”‚Β Β  └── number_trivia_model_test.dart
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── repositories
β”‚Β Β  β”‚Β Β      β”‚Β Β      └── number_trivia_repository_impl_test.dart
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ domain
β”‚Β Β  β”‚Β Β      β”‚Β Β  └── use_cases
β”‚Β Β  β”‚Β Β      β”‚Β Β      β”œβ”€β”€ get_concrete_number_trivia_test.dart
β”‚Β Β  β”‚Β Β      β”‚Β Β      └── get_random_number_trivia_test.dart
β”‚Β Β  β”‚Β Β      └── presentation
β”‚Β Β  β”‚Β Β          └── bloc
β”‚Β Β  β”‚Β Β              └── number_trivia_bloc_test.dart
β”‚Β Β  └── fixtures
β”‚Β Β      β”œβ”€β”€ fixture_reader.dart
β”‚Β Β      β”œβ”€β”€ trivia_cached.json
β”‚Β Β      β”œβ”€β”€ trivia_double.json
β”‚Β Β      └── trivia.json

Used gitmoji for commit messages.

Releases

No releases published

Packages

No packages published

Languages