Bawarchi is a modern, stylish recipe app built using Jetpack Compose and the MVVM architecture. It seamlessly integrates with the MealDB API to fetch and display a wide variety of recipes. This project is a perfect example of the core concepts learned from Denis Panjuta, showcasing state management, UI building with Compose, and working with REST APIs.
- Jetpack Compose: A modern, declarative UI toolkit for Android.
- MVVM Architecture: Clean and maintainable code with separation of concerns.
- MealDB Integration: Fetch and display recipes from the MealDB API.
- Search Functionality: Easily search for recipes by name or ingredients.
- Favorite Recipes: Save your favorite recipes for quick access.
- Dark Mode Support: A beautifully designed dark mode for better user experience.
- Offline Access: Caching of recipes to access them even when offline.
- Kotlin: The programming language used for Android development.
- Jetpack Compose: For creating a modern, reactive UI.
- MVVM (Model-View-ViewModel): Architecture pattern for separation of concerns.
- Retrofit: For making network calls to the MealDB API.
- Room Database: For local data storage and offline caching.
- Coil: For efficient image loading and caching.
- Hilt: For dependency injection.
-
Clone the repository:
git clone https://github.com/yourusername/bawarchi.git cd bawarchi -
Open the project in Android Studio:
Open Android Studio and select "Open an existing project". Navigate to the cloned repository. -
Build the project:
Wait for the Gradle build to finish. If there are any dependencies to be resolved, Android Studio will prompt you. -
Run the app:
Connect your Android device or use an emulator, then click the "Run" button in Android Studio.
To use the MealDB API, you need to configure the API key:
- Go to the
res/valuesfolder and create a new file namedapikeys.xml. - Add the following content to
apikeys.xml:Replace<resources> <string name="mealdb_api_key">YOUR_API_KEY_HERE</string> </resources>
YOUR_API_KEY_HEREwith your actual MealDB API key.
- app: The main application module containing all the UI components, activities, and view models.
- data: Responsible for data management, including repositories and data sources.
- network: Contains all the networking logic for interacting with MealDB API.
- di: Dependency injection setup using Hilt.
This project demonstrates the practical implementation of several core concepts:
- Jetpack Compose: Learning to build UIs with Compose components and managing state efficiently.
- MVVM Architecture: Understanding the importance of architecture patterns in Android development.
- API Integration: Working with REST APIs and handling asynchronous data fetching.
- State Management: Managing UI state in a declarative UI environment like Jetpack Compose.
- A huge thank you to Denis Panjuta for his amazing tutorials and guidance.
For any questions or feedback, please reach out at arpanpadhi2004@gmail.com or create an issue in the GitHub repository.