This is a sample Android project showcasing the implementation of an Android application using Clean Architecture, MVVM design pattern, Hilt for dependency injection, Retrofit for API communication, and the Navigation Component for seamless navigation between screens. The application fetches data from the TMDB API.
- Implements Clean Architecture for separation of concerns.
- Follows MVVM design pattern for better testability and maintainability.
- Uses Hilt for dependency injection, making it easy to manage dependencies.
- Utilizes Retrofit for network communication.
- Utilizes the Navigation Component for navigation between screens.
- ViewModel: Store and manage UI-related data.
- Coroutines: Asynchronous programming.
- Hilt: Dependency injection framework.
- Retrofit: Type-safe HTTP client for Android.
- GSON: Library for JSON serialization and deserialization.
- OkHttp: HTTP client that efficiently handles HTTP requests.
- Navigation Component: Provides a framework for navigation within your app.
This project follows the Clean Architecture principles, which separates the application into different layers:
-
Data Layer: This layer fetches data from external sources. It includes API interfaces, data sources, and data models.
-
Domain Layer: This layer contains the business logic of the application. It defines entities, use cases, and repositories.
-
Presentation Layer (UI): This layer contains the Jetpack Compose components, ViewModels, and UI-related logic.
- Clone the repository:
git clone https://github.com/nightfury96/MovieDb.git
-
Open the project in Android Studio.
-
Build and run the application on an Android emulator or a physical device.
-
Upon launching the app, it will fetch data from the TMDB API and display it in a list.
-
You can search the Movies.
-
Use the Navigation Component to navigate between screens.