FoodRecipe is a simple food recipe project with API network call provided by The Meal DB
- Explore recipes based on categories, areas, ingredient
- Search recipe by specific keyword
- View detailed recipe information, including ingredients, instructions, and cooking guide video.
-
Tech/Tools
- Kotlin 100% coverage
- Material design
- Coroutines for asynchronous programming
- Hilt for dependency injection
- ViewModel that stores, exposes and manages UI state
- Retrofit for network request call
- Glide for image loading and caching library
-
Modern Architecture
- Single activity architecture
- MVVM for presentation layer
- Android Architecture components (ViewModel)
- View - The View represents the user interface and is responsible for displaying data and capturing user interactions. It observes changes in the ViewModel and updates the UI accordingly. In MVVM, the View is passive and doesn't contain business logic.
- ViewModel - The ViewModel acts as a mediator between the View and the Model. It exposes data and commands that the View can bind to. It retrieves data from the Model, prepares it for display, and provides methods for handling user actions. The ViewModel also maintains the state of the View.
- Model - The data represent the business logic of the application such as fetching data from the database or making network request
Hilt is used for Dependency Injection as a wrapper on top of Dagger. to increase code modularity, reusability, and testability by decoupling the dependent objects from the concrete implementations of their dependencies.
Now in Android is distributed under the terms of the Apache License (Version 2.0). See the license for more information.