The application will work with local and remote data sources. And for the remote data source, a third-party API for food recipes, called Spoonacular API , was used. I am going to teach you how to establish a connection between your application and the server. So basically we will send a GET request to our API and receive a list of food recipes as a response. Also, the application will not be able to handle any internet connection and store or cache the data locally in the database when needed.
Also from the application we can search recipes directly from our API. So if you have your favorite flavor, you can search for it here and you will probably find a lot of amazing recipes. It will also have Favorites Fragment where we can save our favorite recipes to use later when we need them. And finally the app will have its fun side, and that's a food joke snippet.
100% Kotlin
MVVM architecture
Android Architecture Components
Kotlin Coroutines + Flow
LiveData
Single activity pattern
Offline Cache
REST API
Motion Layout
ViewPager2
Dependency injection
Kotlin - First class and official programming language for Android development.
LiveData - Data objects that notify views when the underlying database changes.
DataStore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers
Retrofit + OkHttp - RESTful API and networking client.
Hilt - Dependency injection.
ViewBinding - View binding is a feature that allows you to more easily write code that interacts with views.
Android Architecture Components - A collections of libraries that help you design rebust, testable and maintainable apps.
ViewModel - UI related data holder, lifecycle aware.
Navigation component - Fragment routing handler
Coroutines - Concurrency design pattern for asynchronous programming.
Flow - Stream of value that returns from suspend function.
Coil - Image loading
View : Activity/Fragment with UI-specific logics only.
ViewModel : It keeps the logic away from View layer, provides data streams for UI and handle user interactions
Model : Repository pattern, data layers that provide interface to manipulate data from both the local and remote data sources. The local data sources will serve as single source of truth
Have an project? DM me at





