GithubTrendingOfflineFirstApp

github_trending_demo.mp4

Overview

This app shows list of trending github repositories

Architecture

Follows MVVM architecture with Room Database as Single Source of Truth

On new launch of the app, an API is request is sent

Response is fetched

1. Synchronize room db with response fetched
2. UI gets updated from room db

Components used

1. Retrofit
2. Room DB
3. Flows
4. LiveData
5. DiffUtil
6. Dagger-Hilt

Implementations

1. Select/Unselect a particular repo
2. Search from local list
3. Supports orientation change
4. Dark and light theme handled

Light Mode Screenshots

Dark Mode Screenshots