ext {
    versions = [
            gradle_version = '3.5.0',
            kotlin_version = '1.3.50',
            navigation_version = '2.2.0-alpha02', //gradle plugin -> use same as navigation_ktx

            constraint_layout = '1.1.3',

            retrofit = '2.5.0',

            glide = '4.9.0',

            okhttp = '4.2.0',
            okhttp_logging_interceptor = '4.2.0',

            moshi = '1.8.0',
            dagger = '2.24',

            timber = '4.3.1',

            material = '1.1.0-alpha10',
            recyclerview = '1.1.0-beta04',
            cardview = '1.0.0',
            circleimageview = '3.0.0',
            swipe_refersh_layout = "1.1.0-alpha02",

            appcompat = '1.1.0',
            lifecycle_extension = '2.2.0-alpha04',

            rxjava2 = '2.2.0',
            rxkotlin = '2.3.0',
            rxandroid = '2.1.1',

            //ktx
            core_ktx = '1.2.0-alpha04',
            fragment_ktx = '1.2.0-alpha03',
            lifecycle_viewmodel_ktx = '2.2.0-alpha04',
            navigation_ktx = '2.2.0-alpha02',

            //test
            junit = '4.12',
            espresso = '3.1.1',
            mockito = '2.27.0',
            arch_core_testing = '2.1.0-beta01'
    ]

    // dependencies
    networkingDependencies = [
            okhttp3     : [
                    okhttp          : "com.squareup.okhttp3:okhttp:$okhttp",
                    glide_downloader: "com.github.bumptech.glide:okhttp3-integration:$glide"
            ],
            retrofit2   : [
                    retrofit               : "com.squareup.retrofit2:retrofit:$retrofit",
                    moshi_converter_adapter: "com.squareup.retrofit2:converter-moshi:$retrofit",
                    rxjava2_call_adapter   : "com.squareup.retrofit2:adapter-rxjava2:$retrofit"
            ],
            json_parsing: [
                    moshi: "com.squareup.moshi:moshi:${moshi}"
            ]
    ]

    loggingDependency = [
            timber             : "com.jakewharton.timber:timber:$timber",
            okhttp3_interceptor: "com.squareup.okhttp3:logging-interceptor:$okhttp_logging_interceptor"
    ]

    di = [
            dagger: [
                    annotations: "com.google.dagger:dagger:${dagger}",
                    processor  : "com.google.dagger:dagger-compiler:${dagger}"
            ]
    ]

    core = [
            kotlin        : [
                    jdk: "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version",
                    ktx: "androidx.core:core-ktx:$core_ktx"
            ],
            support       : [
                    appcompat: "androidx.appcompat:appcompat:$appcompat"
            ],
            navigation_ktx: [
                    fragment: "androidx.navigation:navigation-fragment-ktx:$navigation_ktx",
                    ui      : "androidx.navigation:navigation-ui-ktx:$navigation_ktx",
            ],

            rxjava2       : [
                    rxjava   : "io.reactivex.rxjava2:rxjava:$rxjava2",
                    rxkotlin : "io.reactivex.rxjava2:rxkotlin:$rxkotlin",
                    rxandroid: "io.reactivex.rxjava2:rxandroid:$rxandroid"
            ]
    ]

    ui = [
            ktx                 : [
                    fragment : "androidx.fragment:fragment-ktx:$fragment_ktx",
                    lifecycle: "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_viewmodel_ktx",
            ],
            constraint_layout   : "androidx.constraintlayout:constraintlayout:$constraint_layout",
            material            : "com.google.android.material:material:$material",
            recyclerview        : "androidx.recyclerview:recyclerview:$recyclerview",
            cardview            : "androidx.cardview:cardview:$cardview",
            swipe_refersh_layout: "androidx.swiperefreshlayout:swiperefreshlayout:$swipe_refersh_layout",
            lifecycle_extension : "androidx.lifecycle:lifecycle-extensions:$lifecycle_extension",
            glide               : "com.github.bumptech.glide:glide:$glide",
            glide_kapt          : "com.github.bumptech.glide:compiler:$glide"
    ]

    testing = [
            junit            : "junit:junit:$junit",
            espresso_core    : "androidx.test.espresso:espresso-core:$espresso",
            mockito          : "org.mockito:mockito-inline:$mockito",
            arch_core_testing: "androidx.arch.core:core-testing:$arch_core_testing"
    ]
}