Generated by the Very Good CLI 🤖
A Very Good Project created by Very Good CLI.
This project contains 3 flavors:
- development
- staging
- production
To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands:
# Development
$ flutter run --flavor development --target lib/main_development.dart
# Staging
$ flutter run --flavor staging --target lib/main_staging.dart
# Production
$ flutter run --flavor production --target lib/main_production.dart
*The Series Db works on iOS, Android, Web, and Windows.
To run all unit and widget tests use the following command:
$ flutter test --coverage --test-randomize-ordering-seed random
To view the generated coverage report you can use lcov.
# Generate Coverage Report
$ genhtml coverage/lcov.info -o coverage/
# Open Coverage Report
$ open coverage/index.html
Using the bloc library allows us to separate our application into three layers:
-
Presentation
- This layer holds all the widgets, along with their blocs. Widgets do not communicate directly with the repository.
-
Business Logic
- Consumes the domain model from the repository layer and expose a feature-level model which will be surfaced to the user via UI.
-
Data
- Repository: Abstract the data layer and expose domain models for the application to consume, facilitating the communication with the Bussiness Logic layer.
- Data Provider: The data layer contains a single weather repository that is used to fetch weather raw data from the API.
- List all the TVMaze's Tv Shows catalog with pagination
- Search for an specific catalog the Search Tab
- Show details and all the episodes from all the seasons of a Tv Show
- flutter_bloc for state management
- build_runner for code generation
- freezed for create the models
- http for talking to the REST API
- mocktail for testing
- auto_router for navigation
The app shows data from the following endpoints:
Note: to use the API you don't need to have your own API key.