Samin1615088 / androidDependency

Finding the gradle dependency has become frustrating for me. In this repository I am going to store all the dependency I have ever encountered.

Home Page:https://zoha131.github.io/androidDependency/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Good To Have dependency version number in one place (not practiced)

After that open build.gradle(Project: projectname) file and add below code(basically it's a version for our dependency).

//Version number for their dependencies :)
ext {
    roomVersion = '2.2.1'
    archLifecycleVersion = '2.2.0'
    coreTestingVersion = '2.1.0'
    materialVersion = '1.0.0'
}

Increment Help

Architecture

Good To Have Configure

apply plugin: 'kotlin-kapt'

androidExtensions {
    experimental = true
}

android {
    ...
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }

    buildToolsVersion = '28.0.3'
}

// In gradle.properties file
kapt.incremental.apt=true
kapt.use.worker.api=true

Increment Help

Data Binding

android {
    ...
    dataBinding {
        enabled = true
    }
}

doc | release


Lifecycle | LiveData | ViewModel

dependencies {
    
    def lifecycle_version = "2.2.0"
    
    //android lifeCycle
    // ViewModel
    implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
    
    // LiveData
    implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
    
    // Annotation processor
    annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
}

doc | release | coroutine support


Navigation

dependencies {
    def nav_version = "2.1.0-beta02"

    implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" 
    implementation "androidx.navigation:navigation-ui-ktx:$nav_version" 
}

//To add Safe Args to your project, include the following classpath in your top level build.gradle file:
dependencies {
    def nav_version = "2.1.0-beta02"
    classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
 }
 
 //To generate Kotlin code suitable for Kotlin-only modules add:
 apply plugin: "androidx.navigation.safeargs.kotlin"
 
 //Add the following line in gradle.properties file 
 android.useAndroidX=true

doc | release


Paging

dependencies {
    def paging_version = "2.1.0"

    implementation "androidx.paging:paging-runtime-ktx:$paging_version"

    // alternatively - without Android dependencies for testing
    testImplementation "androidx.paging:paging-common-ktx:$paging_version"

    // optional - RxJava support
    implementation "androidx.paging:paging-rxjava2-ktx:$paging_version"
}

doc | release


Room

dependencies {

    def room_version = "2.2.5"
    // Room
    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor
 
}

doc | release


WorkManager

dependencies {
    def work_version = 2.0.1

    implementation "androidx.work:work-runtime-ktx:$work_version"

    // optional - RxJava2 support
    implementation "androidx.work:work-rxjava2:$work_version"
    
    // optional - Test helpers
    androidTestImplementation "androidx.work:work-testing:$work_version"
}

doc | release


Foundation

AppCompat

dependencies {
  implementation 'androidx.appcompat:appcompat:1.0.2'
}

doc | release


Android KTX

dependencies {
  implementation 'implementation 'androidx.core:core-ktx:1.0.1'
}

doc | release


Multidex

If your minSdkVersion is 21 or higher, you do not need the multidex support library.

dependencies {
  implementation 'com.android.support:multidex:1.0.3'
}

doc | release


Test

doc | release


Library

RecyclerView

dependencies {
  implementation 'androidx.recyclerview:recyclerview:1.0.0'
}

doc | release


Epoxy - Airbnb

apply plugin: 'kotlin-kapt'

kapt {
    correctErrorTypes = true
}

dependencies {
  implementation 'com.airbnb.android:epoxy:3.4.0'
  kapt 'com.airbnb.android:epoxy-processor:3.4.0'
}

doc | release


Paris - Airbnb

dependencies {
    implementation 'com.airbnb.android:paris:1.2.1'
    kapt 'com.airbnb.android:paris-processor:1.2.1'
}

doc | release


Lottie - Airbnb

dependencies {
    implementation "com.airbnb.android:lottie:3.0.0"
}

doc | release | lottiefiles


MvRx - Airbnb

dependencies {
  implementation 'com.airbnb.android:mvrx:1.0.0'
}

doc | release Maven Central


Koin

repositories {
  jcenter()    
}
dependencies {
    // Koin for Android
    implementation 'org.koin:koin-android:2.0.0-rc-2'
    // or Koin for Lifecycle scoping
    implementation 'org.koin:koin-androidx-scope:2.0.0-rc-2'
    // or Koin for Android Architecture ViewModel
    implementation 'org.koin:koin-androidx-viewmodel:2.0.0-rc-2'
}

doc | release


Dagger

apply plugin: 'kotlin-kapt'

dependencies {
    implementation 'com.google.dagger:dagger:2.22.1'
    kapt 'com.google.dagger:dagger-compiler:2.22.1'
}

doc | release


okHttp

dependencies {
  /*
  // I used this one only for HttpLoggingInterceptor
  
  implementation "com.squareup.okhttp3:logging-interceptor:4.9.0"
  */  

  implementation "com.squareup.okhttp3:okhttp:3.14.1"
  
  testImplementation "com.squareup.okhttp3:mockwebserver:3.14.1"
}

doc | release


Retrofit

dependencies {
    def retrofit_version = "2.5.0"
    //myself : donot know why after 2.6.0 version I got crashes on app
    
    implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
    
    //for gson converter
    implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
    
    //for moshi converter
    implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version"    
    
    //for RxJava adapter
    implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit_version"
    
}

doc | release


Gson

dependencies {
  implementation 'com.google.code.gson:gson:2.8.5'
}

doc | release


Moshi

dependencies {
  implementation "com.squareup.moshi:moshi:1.8.0"
}

doc | release


Material

dependencies {
  implementation 'com.google.android.material:material:1.0.0'
}

// Compile your app with Android P
// Ensure you are using *AppCompatActivity*
// Change your app theme to inherit from a Material Components theme

doc | release


Firebase

// In project-level build.gradle file
dependencies {
  classpath 'com.google.gms:google-services:4.2.0'
}

// In app-level build.gradle file
dependencies {
  implementation 'com.google.firebase:firebase-core:16.0.8'
}

apply plugin: 'com.google.gms.google-services'

// Don't forget to add google-services.json file in the app folder

doc | release


Coroutine

dependencies {
  def coroutines_version = "1.3.0-M2"
  implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
  implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
}

doc | release


RxJava

dependencies {
  implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
  implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0'
  implementation "io.reactivex.rxjava2:rxjava:2.2.8"
}

doc | release


RxBinding

dependencies {
  //Platform bindings
  implementation 'com.jakewharton.rxbinding3:rxbinding:3.0.0-alpha2'
  
  //AndroidX library bindings:
  implementation 'com.jakewharton.rxbinding3:rxbinding-core:3.0.0-alpha2'
  implementation 'com.jakewharton.rxbinding3:rxbinding-appcompat:3.0.0-alpha2'
  implementation 'com.jakewharton.rxbinding3:rxbinding-drawerlayout:3.0.0-alpha2'
  implementation 'com.jakewharton.rxbinding3:rxbinding-leanback:3.0.0-alpha2'
  implementation 'com.jakewharton.rxbinding3:rxbinding-recyclerview:3.0.0-alpha2'
  implementation 'com.jakewharton.rxbinding3:rxbinding-slidingpanelayout:3.0.0-alpha2'
  implementation 'com.jakewharton.rxbinding3:rxbinding-swiperefreshlayout:3.0.0-alpha2'
  implementation 'com.jakewharton.rxbinding3:rxbinding-viewpager:3.0.0-alpha2'
  
  //Google 'material' library bindings:
  implementation 'com.jakewharton.rxbinding3:rxbinding-material:3.0.0-alpha2'
}

doc | release


ConstraintLayout

dependencies {
  implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta1'
}

doc | release


Kotlin HTML Builder

dependencies {
  implementation "org.jetbrains.kotlinx:kotlinx-html-jvm:0.6.12"
}

doc | release


Junit5 :: Test :: AndroidTest

//include the following classpath in your top level build.gradle file:
dependencies {
    ...
    classpath "de.mannodermaus.gradle.plugins:android-junit5:1.4.2.0"
 }
 
 //in the module level build.gradle file add:
 apply plugin: "de.mannodermaus.android-junit5"
 
 //Add the following line in module level gradle file 
 dependencies {
    
    ...
    
    // --- Pure JVM Unit Test ---
    // Junit5 :: Assertj :: Mockito
    def junit_jupiter_version = "5.5.2"
    testImplementation "org.junit.jupiter:junit-jupiter-api:$junit_jupiter_version"
    testImplementation "org.junit.jupiter:junit-jupiter-params:$junit_jupiter_version"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_jupiter_version"
    testImplementation "org.assertj:assertj-core:3.11.1"
    testImplementation "org.mockito:mockito-core:2.19.0"


    // --- AndroidTest ---
    // Junit4 :: AndroidX Test :: Architecture Component Test :: Espresso :: Robolectric
    androidTestImplementation 'junit:junit:4.12'
    androidTestImplementation "androidx.test:core:1.2.0"
    androidTestImplementation "androidx.test:runner:1.2.0"
    androidTestImplementation "androidx.arch.core:core-testing:2.1.0"
    testImplementation 'org.robolectric:robolectric:4.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

}

doc | release


About

Finding the gradle dependency has become frustrating for me. In this repository I am going to store all the dependency I have ever encountered.

https://zoha131.github.io/androidDependency/

License:Apache License 2.0