Skip to content

VijayMakwana/Koin-Sample

Repository files navigation

Koin Sample

Description

This application shows the current trending Github repositories fetched from a public API.

  • App is fully functional with managed every states like data loading, success and error with retry button.
  • All the repository item is expanded by being tapped and collaped when tap again, at a time only one item will expand.
  • App data is survive configuration changes
  • App have the full offline support. cache data will be shown for the duration of 2 hours.
  • App have the pull to refresh for fetch data from remote.
  • There are sort by options available for sort repositories by star and name.
  • Implemented this app with Koin (DI)

Libraries

  • AndroidX - Android support library

  • androidx.appcompat:appcompat

    • androidx.core:core-ktx
    • androidx.lifecycle:lifecycle-extensions
    • androidx.constraintlayout:constraintlayout
  • Navigation Component - For manage fragment navigation

    • androidx.navigation:navigation-fragment-ktx
    • androidx.navigation:navigation-ui-ktx
  • Material Design - Design

    • com.google.android.material:material
  • Retrofit - Type-safe HTTP client

    • com.squareup.retrofit2:retrofit
    • com.squareup.retrofit2:converter-gson
    • com.squareup.okhttp3:logging-interceptor
  • Gson - Java serialization/deserialization library

    • com.google.code.gson:gson
  • Kotlin-Coroutine - concurrent programming

    • org.jetbrains.kotlinx:kotlinx-coroutines-android
    • org.jetbrains.kotlinx:kotlinx-coroutines-test
  • Glide - An image loading and caching library for Android focused on smooth scrolling

    • com.github.bumptech.glide:glide
    • com.github.bumptech.glide:compiler
  • Koin - a pragmatic lightweight dependency injection framework for Kotlin

    • org.koin:koin-android
    • org.koin:koin-androidx-viewmodel
    • org.koin:koin-test
  • mockito - Most popular Mocking framework for unit tests written in Java

    • org.mockito:mockito-core