This application is developed on Flutter 2.2.3 in the Stable channel.
Migrated to Flutter 3.0 and tested on Flutter v3.16.3 in Stable channel.
-
Fetch a list of movies from this URL http://api.themoviedb.org/3/search/movie?api_key=6753d9119b9627493ae129f3c3c99151&query=superman&page=1
-
Poster (size: w92, w185,w500) http://image.tmdb.org/t/p/w92/2DtPSyODKWXluIRV7PVru0SSzja.jpg
-
Display result in ListView or GridView. The list would have the following rows Movie Image, Movie Name, Release date, Full description/Overview
-
Tapping on the cell should display the detail screen.
-
Pagination: when the user reaches the bottom of the list, it should load the second page if available.
- 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-
- Clone the project using
git clone https://github.com/kaxp/CineXfers.git
- run
flutter pub get
- 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 - 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 selectcine_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.