Flutter App developed with Flutter and API from [The Movie Database (TMDB) (themoviedb.org)][https://developers.themoviedb.org/3/movies/get-top-rated-movies]
Flutter version: 3.3.6
- Please open file config.dart and change
API KEYin the variableapiKeywith your own.(lib->core->config) - Then run the project with flutter run command
Run following commands
flutter pub get
After we can generate models using this
flutter2 pub run build_runner build --delete-conflicting-outputs
Used Clean Architecture and created some unit tests
-
Pros
Increase code readablity, scalability and maintainablity -
Cons
Time Consuming with TDD
- List Top rated movies.
- easy scrolling.
- pull to refresh.
- offine data providing.
- paginated view.
- orientation
- Dio
A powerful Http client for Dart, which supports interceptors, FormData, Request Cancellation, File Downloading, Timeout, etc. - Flutter BLoC
Flutter widgets that make it easy to implement the BLoC design pattern.(State management) - Cached Network Image
Flutter library to load and cache network images. Can also be used with placeholder and error widgets. - Get It
Simple direct Service Locator that allows to decouple the interface from a concrete implementation and to access the concrete implementation from everywhere in your App. - Dartz
Functional Programming in Dart. Purify your Dart code using efficient immutable data structures, monads, lenses and other FP tools. - Equatable
An abstract class that helps to implement equality without needing to explicitly override == and hashCode. - Mockito
A mock framework inspired by Mockito. - Shimmer
provides an easy way to add shimmer effect in Flutter project - tf_dio_cache
Dio-http-cache is a cache library for Dio ( http client for flutter ) - internet_connection_checker
A pure Dart library that checks for internet by opening a socket to a list of specified addresses, each with individual port and timeout. Defaults are provided for convenience. - percent_indicator
Library that allows you to display progress widgets based on percentage, can be Circular or Linear, you can also customize it to your needs.
