MealDB is an android application using Free Meal API based on MVVM with a clean architecture.
For API Documentation: Click here
home screen | categories | meal detail |
---|---|---|
![]() |
![]() |
![]() |
search meals | favorite meals | |
![]() |
![]() |
- โ MVVM with Clean Architecture
- โ Kotlin Flow - In coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value.
- โ LiveData - is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
- โ Coroutines - A concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
- โ Navigation Component - Handle everything needed for in-app navigation. asynchronous tasks for optimal execution.
- โ Safe-Args - For passing data between destinations
- โ Dagger-Hilt - A dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
- โ ViewModel - Easily schedule asynchronous tasks for optimal execution.
- โ Retrofit- Retrofit is a REST client for Java/ Kotlin and Android by Square inc under Apache 2.0 license. Its a simple network library that is used for network transactions. By using this library we can seamlessly capture JSON response from web service/web API.
- โ OkHttp - Doing HTTP efficiently makes your stuff load faster and saves bandwidth.
- โ Room - The Room persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
- โ Moshi - A modern JSON library for Kotlin and Java.
- โ View Binding - a feature that allows you to more easily write code that interacts with views.
- โ Data Binding - The Data Binding Library is a support library that allows you to bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
- โ Lifecycle - As a user navigates through, out of, and back to your app, the Activity instances in your app transition through different states in their lifecycle.
- โ Epoxy - Epoxy is an Android library for building complex screens in a RecyclerView. Models are automatically generated from custom views or databinding layouts via annotation processing. These models are then used in an EpoxyController to declare what items to show in the RecyclerView.
- โ recyclerview-animators - RecyclerView Animators is an Android library that allows developers to easily create RecyclerView with animations.
- โ Glide - for image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface.
- โ Timber - This is a logger with a small, extensible API which provides utility on top of Android's normal Log class.
- โ leakcanary - A memory leak detection library for Android.