This is a sample Android app that demonstrates the implementation of Clean Architecture using Jetpack Compose for the user interface and TheMealDb API for fetching dishes data. The app allows users to search for dishes and view their details, including the list of ingredients.
- Search for dishes: Users can search for dishes by entering keywords.
- View dish details: Users can tap on a dish to view its details, including the list of ingredients.
The app is structured following the principles of Clean Architecture, which promotes separation of concerns and maintainability by dividing the app into distinct layers:
-
Presentation Layer (Jetpack Compose):
- Contains the UI components and handles user interactions.
- Uses Jetpack Compose for building the UI.
-
Domain Layer:
- Contains the business logic and use case definitions.
- Defines data models and use case interactions.
-
Data Layer:
- Handles data access and retrieval from external sources (TheMealDB API).
- Implements a repository interface for fetching data.
-
Dependency Injection (DI):
- Utilizes Hilt/Dagger for managing dependencies.
- Provides instances of ViewModel, Use Cases, and Repository using DI.
- Kotlin
- Jetpack Compose
- Hilt/Dagger (Dependency Injection)
- Retrofit (Networking)
- Gson (JSON parsing)
Contributions to this project are welcome! If you find any issues or want to add new features, feel free to submit a pull request.