An Android app showing the Rick and Morty Characters by using the Rick and Morty API.
This project follows the MVVM (Model-View-ViewModel) architecture, which separates the UI, business logic, and data layers. Here's an overview of the architecture:
- View: Implemented using Jetpack Compose, it displays UI components and interacts with the ViewModel.
- ViewModel: Manages UI-related data and communicates with the repository.
- Repository: Provides an abstraction over data sources (e.g., local database, remote API) and uses Paging 3 for efficient data loading.
- Data Sources: Handles data retrieval from local Room Database and remote API using Coroutines and Flow.
- Dependency Injection: Hilt is used for providing and managing dependencies.
- Jetpack Compose: A modern Android UI toolkit for building native user interfaces.
- Hilt: A Dependency Injection library for Android that reduces boilerplate code.
- Paging 3: A library for handling large datasets with automatic loading and caching.
- Kotlin Coroutines: Used for asynchronous and non-blocking programming.
- Kotlin Flow: A library for asynchronous data stream processing.
- Room Database: An Android library for local database storage.
- Retrofit: A type-safe HTTP client for making network requests.
- Coil: An image loading library for Android.
- Placeholder: A library for displaying placeholder content in Jetpack Compose.
- Timber: A library for logging.
- Gson: A library for JSON parsing.
- Navigation Compose: A library for navigation in Jetpack Compose apps.
Follow these steps to run the project locally:
- Clone the repository:
git clone https://github.com/almasud/Rick_and_Morty_characters.git
- Open the project in Android Studio or your preferred IDE.
- Build and run the app on an Android emulator or device.
List the key features of your project, such as:
- Character List Screen: Display the list of characters fetched from the Rick and Morty API. Each character item in the list should display relevant information (e.g., name, image, status).
- Character Detail Screen: When a character item is clicked on the list, navigate to a detail screen. Display detailed information about the selected character (e.g., name, image, status, species, gender, origin, location).