This is a Flutter project that fetches data from the Rick and Morty API (https://rickandmortyapi.com), which contains information about characters, locations, and episodes from the popular animated series. The application displays this data in three different views (Characters, Locations, and Episodes) using slivers and grid view of cards. This project is developed using the bloc state management pattern and follows clean architecture principles, making it scalable, maintainable, and easy to test.
✨ Special thanks to Rabee Omran for his amazing Flutter Clean Architecture Course.
The application has the following features:
- Fetches data from the Rick and Morty API
- Three API views (Characters, Locations, Episodes) that display data in a grid view of cards.
- Supports data filtering and pagination.
- Offline mode support.
This project uses the following packages and tools:
- Material 3
- auto_size_text
- cached_network_image
- dartz
- dio
- equatable
- flutter_bloc
- flutter_screenutil
- get_it
- internet_connection_checker
- shared_preferences
To get started with this project, follow the steps below:
-
Clone this repository to your local machine using Git or download the repository as a ZIP file and extract it to your preferred directory.
git clone https://github.com/salah-rashad/rick_and_morty.git
-
Open the project in your preferred IDE or code editor (such as Visual Studio Code, Android Studio, or IntelliJ IDEA).
-
Install the dependencies by running the following command in the project directory:
flutter pub get
-
Run the project on your device or simulator by running the following command:
flutter run
If you encounter any issues during this step, make sure you have set up your development environment correctly and have the necessary tools and SDKs installed.
-
Explore the code and start making modifications to suit your needs!
If you encounter any issues or have any questions, please refer to the API's documentation or create a new issue on the project's GitHub repository.