Skip to content

raphaelbarbosaqwerty/tvmaze-challenge-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Documentation of the process of creating this App using TVMaze API Challenge

Run the code

With Emulator

  • Follow this to start the application in a Emulator (With emulator open):
  1. Clone this repository.
  2. Enter in tvseries_maze_challenge_clean
    Flutter SDK Version: 1.22.5
  • Type this commands in the terminal
flutter clean
flutter pub get
flutter run
  • Folder distribution
  • For emulator you can download from the folder the file app-debug.apk.

With Real-Device

  • Folder distribution
  • For Real device you can download from the folder the file app-release.apk.

Tests and Coverage

  • I decided only to do Unit Tests because of the limited time. Widget tests are more complex to do, they spend more time to do.
  • Actually have 57 unit tests and all passing.
  • You can check then just doing this, open your console in app folder root and:
flutter test

Clean-architecture

  • I decided to use the Clean-dart approach for this project with BDD(TDD). Based on the requirements I received on the PDF file.
  • After receiving the documentation with application flow, I decided to separate in requirements check the folder inside the project. Folder: tvseries_maze_challenge_clean/requirements/
  • requirements/bdd.md
  • pages/detail_page.md
  • pages/home_page.md
  • pages/summary_page.md

BDD/TDD Way

Modular approach

  • Used Modular for Dependency Injection and his own structure what is based on decoupled and independent modules. Each module has their own pages, business logic, and need to be independent of each other existent.

State Management (ValueNotifier as RxNotifier)

  • ValueNotifier is native from Flutter. I decided to use it together with RxNotifier this brings simple transparency to the ValueNotifier.

Design and UI

  • Decided to use a simple UI and interactive.

Packages and their functions

  • Modular (Routing and Dependency Injection).
  • RxNotifier (It's a transparency for ValueNotifier(Native of Flutter)).
  • Hexcolor (Colors from Hex).
  • Dio (Powerfull HttpClient).
  • Dartz (Tests).
  • Intl (Good functions).
  • Mockito (Mock classes).

Images

About

Challenge App using TVMaze API with BDD/TDD and Clean-dart.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published