It's a interview task Flutter project.
This repository contains the Flutter project with its required dependencies listed in the pubspec.yaml
file. Below is a brief description of each dependency:
-
cupertino_icons: ^1.0.2
Description: Cupertino icons for Flutter apps. Version: 1.0.2 -
get: 4.6.5
Description: State management library for Flutter. Version: 4.6.5 -
flutter_launcher_icons: ^0.11.0
Description: A package which simplifies the process of setting up custom app icons for Flutter applications. Version: 0.11.0 -
dio: ^4.0.6
Description: A powerful HTTP client for Dart that allows you to make network requests. Version: 4.0.6 -
cached_network_image: ^3.2.1
Description: A Flutter library to load and cache network images. Version: 3.2.1 -
hive: ^2.2.3
Description: A lightweight and efficient key-value database designed for use with Flutter. Version: 2.2.3 -
hive_flutter: ^1.1.0
Description: Hive plugin for Flutter that enables storing and querying data in Hive databases. Version: 1.1.0 -
path_provider: ^2.0.15
Description: Provides a platform-independent way to access the device's file system. Version: 2.0.15 -
connectivity_plus: ^2.3.7
Description: A Flutter plugin for detecting network connectivity changes. Version: 2.3.7
- First, ensure you have Flutter installed on your machine.
- Clone this repository to your local machine.
- Open the project in your preferred Flutter IDE (e.g., Android Studio, VSCode).
- Locate the
pubspec.yaml
file in the root directory of the project. - Add or update the dependencies section with the dependencies listed above.
- Save the
pubspec.yaml
file, and Flutter will automatically fetch the new dependencies.
dependencies:
cupertino_icons: ^1.0.2
get: 4.6.5
flutter_launcher_icons: ^0.11.0
dio: ^4.0.6
cached_network_image: ^3.2.1
hive: ^2.2.3
hive_flutter: ^1.1.0
path_provider: ^2.0.15
connectivity_plus: ^2.3.7
- Run
flutter pub get
in your terminal or click on the "Packages get" button in your IDE to fetch the new dependencies. - You are now ready to use the added packages in your Flutter project!
- Implemented a loading screen that displays while fetching the data.
- Handled network issues and provided error feedback to enhance the user experience.
- Created a detailed view that appears when an item in the list is tapped, allowing users to view more information about the selected movie.
- Utilized GetX for efficient state management, ensuring smooth app performance.
- Wrote comprehensive tests for the application to ensure its reliability and functionality.
- Cached API responses using Flutter Hive and GetX, which improves the app's loading speed and reduces data consumption.
NB: Please be aware that there is a known issue with Flutter Hive that may affect automated testing. The issue is related to the usage of Hive databases in Flutter tests. Since tests run in a different environment, the default location for Hive's database files may not be accessible during automated testing.