Meal App is a demo Android application that allows users to explore various meal categories, view meals within those categories, mark favorite categories, and search for specific meals by name. The app leverages the MVVM architecture and utilizes the TheMealDB API to fetch meal data.
- Bottom Navigation: The app features a bottom navigation bar with three tabs: Home, Search, and Favourites.
- Navigation Graph: The navigation between fragments is managed using the Android Navigation component's navigation graph.
- Dagger Hilt for dependency injection, ensuring a robust and scalable app structure.
- Facebook Shimmer integration to provide loading animations on the start screen.
- Home Fragment: Displays a list of meal categories using RecyclerView. Users can mark categories as favorites.
- Favourites Fragment: Shows all the categories that users have marked as favorites. Data is persisted using Room Database.
- Meal List Fragment: Presents a list of meals within a selected category. Users can click on a meal to view its details.
- Meal Details Fragment: Displays detailed information about a selected meal, including its name, image, ingredients, and instructions.
- Search Fragment: Allows users to search for meals by name.
- MVVM Architecture: The app is designed using the Model-View-ViewModel (MVVM) architectural pattern.
- ViewBinding: Utilizes ViewBinding to bind UI components and layout elements.
- Retrofit: Uses Retrofit to make network requests to TheMealDB API and fetch meal data.
- Navigation Component: Uses Android Navigation Component for seamless navigation between fragments.
- Room Database: Implements Room Database to store and retrieve favorite meal categories.
To use the app, you can follow these steps:
- Clone the repository:
git clone https://github.com/VimalPatel14/Meal-App.git
- Open the project in Android Studio.
- Build and run the app on an emulator or a physical device.
- Dagger Hilt: For dependency injection.
- Facebook Shimmer: For loading animations.
- Android Architecture Components
- Retrofit
- Glide
- ViewBinding
- AndroidX Navigation Component
- Room Database
This app uses the TheMealDB API to fetch meal data. Special thanks to the contributors of TheMealDB for providing this resource.
Feel free to fork and modify this app for your own learning purposes or to adapt it to your specific needs. If you have any questions or suggestions, please open an issue or pull request in the repository. Enjoy exploring the world of meals!