Dish Recipes is an application where you can store favourite recipes and find new ideas for cooking. Application is based on modern technologies, such as MVVM Architecture, Dependency Injection with MultiBinding, and Jetpack.
All Dishes is a Fragment, where the User can see all the recipes ever added. It means that all dishes created by the User and received by API Call, firstly get there. Furthermore, Users can choose how Recipes are displayed, Edit or Delete them and Filter them by Type and Category. The filter list is dynamic, so it will be based on the existing data in the Local Repository.
(1st Screenshot below) Fragment provides all favourite recipes. Like in the previous fragment, there is an available selection of List displaying, Dish Editing and Deleting.
(2nd & 3rd Screenshot above) Fragment, where User can add New Dish. In addition, it's used for Editing Existed.
Fragment provides all related information to the previously chosen Recipe. There, the User can add it to Favorite or Delete.
NOTE: Only created by User Dishes are available for Editing (1st & 2nd Screenshot below)
Fragment request Api call and provides received Random Recipe to User. Dish automatically saves to the local repository. However, the recipe Source Link is only available in this fragment and will not be saved (3rd Screenshot above)
- Kotlin
- Jetpack
- Lifecycle
- LiveData
- ViewModel
- WorkManager
- Room
- Navigation Component & safeArgs
- Dagger2
- Multibinding
- Retrofit2
- RxJava3
- Glide