/CineXfers

Primary LanguageDart

cine_xfers

This application is developed on Flutter 2.2.3 in Stable channel.

Objective

  1. Fetch a list of movies from this URL http://api.themoviedb.org/3/search/movie?api_key=6753d9119b9627493ae129f3c3c99151&query=superman&page=1

  2. Poster (size: w92, w185,w500) http://image.tmdb.org/t/p/w92/2DtPSyODKWXluIRV7PVru0SSzja.jpg

  3. Display result in ListView or GridView. The list would have the following rows Movie Image, Movie Name, Release date, Full description/Overview

  4. Tapping on the cell should display the detail screen.

  5. Pagination: when the user reaches the bottom of the list, it should load the second page if available.

Project Architecture

  • Android Flavors (development, production and qa)
  • State-management- Get
  • Design pattern - Atomic design pattern
  • Architecture pattern - MVVM
  • Navigation - Get
  • Localization - intl
  • Model classes - Equatable
  • Common widget showcase - dashbook
  • Unit testing - flutter_test
  • Http client - dio

Steps for running the application-

  1. Clone the project using git clone https://github.com/kaxp/CineXfers.git
  2. run flutter pub get
  3. For launching the debug app select cine_xfers-Dev from run and debug tab in vs code or using cli with commands shown in Step 4
  4. For debug build on development run flutter run --flavor development -t lib/main_development.dart
  • Similarly for production and qa run, change the development to production and qa respectively in above command and also change the entry point i.e main_prodcution.dart or main_qa.dart. Note: In this app the development environment is only active.

  • For running the widget testing run flutter run --flavor development -t lib/main_dashbook.dart command or select cine_xfers-Dashbook configuration on run and debug tab in vs code.

  • For running the unit test run flutter test test/movies_api_test.dart command

  • For running with Release build run flutter run --release --flavor development -t lib/main_development.dart command. Note release build should be run on physical device.