Local Database Cache with REST API
Watch demoDescription
WARNING
I'm working on an updated version of this course. Expect it to be published by January/February 2021.
The new course will contain:
- Kotlin
- MVVM
- Hilt for Dependency Injection
- Navigation Components
- Flow and StateFlow
- Jetpack Compose
- Datastore
- Room
- Retrofit2
The new course will be considered a beginner course.
Introduction
In this course you'll learn how to build a local database cache with SQLite and Room. The cache retrieves data from a REST API using Retrofit2. Architecture is MVVM.
The app used to retrieve the data from Food2Fork.com, but that website has been shutdown. A Codingwithmitch.com community member stripped the data and published to this heroku app: recipesapi.herokuapp.com. Special thanks to Simran doing this!
Example request: http://recipesapi.herokuapp.com/api/search?q=chicken
Here's the specifics of what you will see in the course:
- Caching data for when the network goes offline
- Reading cached data when the network is down
- Custom SQLite queries using Room
- Customizing the cache (how long data will live in the cache)
- How Retrofit caching works
- Why SQLite and Room is better for caching than Retrofit
- How to design a database cache
- There is no "one size fits all"
- Retrofit is better for some things but room is better for others
- How Glide caching works
- Glide RecyclerView Preloader (Customizing how many list items get cached)
- Dealing with Network Errors and slow network speeds
- OkHttp Network Timeouts
- Converting Retrofit Calls to LiveData (Call Adapters)
- And much more...
Architecture Diagram

Metadata
Published: Aug. 2, 2021
Lectures: 32
Total video time: 04:36:14
Authors
