/IngCase

GitHub Android Client

Primary LanguageKotlin

Description

Github Android client app that gets data from a Github API and shows user repositories.

List to Detail screen

Github Android Client Demo

Development

API Key

An API key should be obtained from Github to run the application without daily request limitations. When you get the key please add the following variable to your local environment.

API

https://api.github.com/

User Repositories (GET)

https://api.github.com/users/{user}/repos

Architecture

  • Single Activity
  • MVVM Pattern

View: Renders UI and delegates user actions to ViewModel

ViewModel: Can have simple UI logic but most of the time just gets the data from UseCase

UseCase: Contains all business rules and they written in the manner of single responsibility principle

Repository: Single source of data. Responsible to get data from one or more data sources

Tech Stack

Dependencies

  • Jetpack Compose: Jetpack Compose is Android’s modern toolkit for building native UI.
  • LiveData: An asynchronous data stream that sequentially emits values and completes
  • ViewModel: Holds UI data across configuration changes
  • Hilt: Dependency injector
  • Coroutines: Asynchronous programming
  • Coil: An image loading library for Android backed by Kotlin Coroutines.
  • Retrofit: Type safe HTTP client
  • Room: Object mapping for SQLite