Skip to content

Android App that lists trending Kotlin Github repositories

Notifications You must be signed in to change notification settings

darshna22/github-trending-repos

Repository files navigation

Description

The project's idea is to list trending projects from Github and then tap on one of them and show their details.

Requirements

  • Write your application in Kotlin
  • Ensure your application looks good on different screen sizes and densities
  • Ensure your application supports Android API 23+
  • Use good architecture and design patterns
  • Use valuable external libraries that you are used to
  • Use reactive programming

Bonus

  • Filtering and ordering functionalities
  • Unit tests
  • Shared element transition or other animations (but only if they are functional to the user experience)

Trending Repositories

Trending_app_video.mp4

API

Since there is no official API for Trending Repositories (it is one of the internal GitHub API’s),

I have decided to use GitHub Search API and sort the repositories by their stars.

Tech stack

  • Minimum SDK level 23
  • Kotlin based + Coroutines for asynchronous.
  • Dagger-Hilt (alpha) for dependency injection.
  • JetPack
    • LiveData - notify domain layer data to views.
    • Lifecycle - dispose of observing data when lifecycle state changes.
    • ViewModel - UI related data holder, lifecycle aware.
    • Navigation Component - handle everything needed for in-app navigation.
    • Data Binding - declaratively bind observable data to UI elements.
    • Paging 3- load and display pages of data from a larger dataset
  • Architecture
    • MVVM Architecture (View - DataBinding - ViewModel - Model)
    • Repository pattern
  • Glide - loading images.
  • Retrofit2 & OkHttp3 - construct the REST APIs and paging network data.
  • Material-Components - Material design components like ripple animation, cardView.
  • mockito-test library