This is an android app to display a list of products loaded from a remote mock API server and cached in local Room database.
The app uses:
Clean architecture with layers for data, domain, and presentation MVVM pattern (View - ViewModel - Model) Single activity architecture with fragments Room persistance library for offline cache Retrofit for API interface Kotlin coroutines & flow for async Features The app has the following features:
- Fetch latest products from mock API
- Cache products locally in Room database
- Display products listing in RecyclerView
- Offline support using cached data
The app is split into the following modules:
- data - Handles data sources like API and Database
- domain - Business logic
- presentation - UI and ViewModels
As this app uses the single-activity architecture, the navigation graph handles flows between fragments.
The views and UI layouts are defined in XML.
Libraries ViewModel Room Retrofit