- To demonstrate the usage of Android Architecture Components
- Shows popular cities and food in the Philippines by fetching from the following endpoint:
- Components
- LiveData - Data holder class that is observed for DB changes
- Navigation Component - Used to navigate between fragments (in this app, only 1 activity exists)
- Room - For local data persistence
- ViewModel - Stores UI related data
- NetworkBoundResouce - Interface to fetch data from DB and the network
- Third Party/ Miscellaneous
- Glide - For image loading
- Hilt - For dependency injection
- Kotlin Coroutines - For managing background threads for network/DB operations
- Retrofit - HTTP Client used
- Gson Converter - Used with Retrofit for JSON manipulation
- Pull to refresh/ Retry
- Needed when app is opened for the first time and there is no Internet
- Suggestion: Use Paging library