A Clean Architecture approach is used to build a recipe app where users can explore and save delicious recipes.
Splash Screen |
Home Screen |
Filter Screen |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/dark_splash.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/dark_home.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/dark_filter.png) |
Detail Screen |
Detail Screen |
Detail Screen |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/dark_detail.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/dark_ingredients.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/dark_recipe.png) |
Favorites Screen |
Grocery Screen |
Settings Screen |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/dark_favorites.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/dark_grocery.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/dark_settings.png) |
Splash Screen |
Home Screen |
Filter Screen |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/light_splash.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/light_home.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/light_filter.png) |
Detail Screen |
Detail Screen |
Detail Screen |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/light_detail.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/light_ingredients.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/light_recipe.png) |
Favorites Screen |
Grocery Screen |
Settings Screen |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/light_favorites.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/light_grocery.png) |
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/light_settings.png) |
![Simple-And-Yummy](https://camo.githubusercontent.com/dae8fcc4453270832b16e96810b19f52e98a20621b5dd6c121d1370f4da06d53/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f696f41762d46544d6f73672f302e6a7067)
Tech Stack & Open-Source Libraries
- Minimum SDK Level: 24
- 100% Kotlin Based: Leveraging the power of Kotlin with Coroutines and Flow for asynchronous programming.
Android Architecture Components
- Single-Activity Architecture
- Lifecycle: Reacting to lifecycle state changes for optimized app behavior.
- ViewModel: Storing UI-related data persistently across UI changes.
- UseCases: Implementing domain-layer logic situated between the UI and data layers.
- Repository: Hosting application data and business logic in the data layer.
- Android Hilt: A robust dependency injection library for seamless component management.
- Retrofit: A type-safe HTTP client for Android and Java.
- Gson: A library for JSON serialization/deserialization.
- OkHttp: An efficient HTTP client for network requests.
- Interceptor: Managing and manipulating network requests.
- Room Database: Room for local data storage.
- DataStore: DataStore for storing key-value pairs.
- Jsoup: Jsoup for HTML parsing.
- Glide: Glide for efficient image loading.
- ViewPager2: ViewPager2 for handling swipe gestures and transitions between screens.
- SwipeRefreshLayout: SwipeRefreshLayout for adding the ability to refresh content via swipe gestures.
- Flex Box: Flexbox for a powerful layout manager.
- Navigation: Navigation Component: Android's navigation component for handling navigation between destinations in your app.
This app uses MVVM (Model View View-Model) architecture
![](https://raw.githubusercontent.com/hayatibahar/Simple-And-Yummy/master/screen_shots/mvvm.png)
- You will need to provide a private key to retrieve data from the Spoonacular API.
Add your API key to the local.properties
file in your project:
API_KEY = YOUR_API_KEY