Skip to content

Instantly share code, notes, and snippets.

@kaushikgopal
Last active April 20, 2019 01:10
Show Gist options
  • Save kaushikgopal/6260d333a5dc26732e33f2299970cef4 to your computer and use it in GitHub Desktop.
Save kaushikgopal/6260d333a5dc26732e33f2299970cef4 to your computer and use it in GitHub Desktop.
Dependencies Gradle - think of this is as the Android developer's Gemfile
/**
* Shared file between builds so that they can all use the same dependencies and
* maven repositories.
**/
ext.deps = [:]
def versions = [:]
versions.android_gradle_plugin = '3.3.2'
versions.min_sdk = 21
versions.target_sdk = 28
// Preferably keep this in sync
versions.build_sdk = 28
versions.support = "27.1.0"
versions.androidx = "1.0.0"
versions.arch_core = "2.0.0"
versions.room = "2.1.0-alpha06"
versions.lifecycle = "2.0.0"
versions.android_crop = "1.0.0"
versions.apache_commons = "2.5"
versions.assertj = "2.8.0"
versions.atsl_runner = "1.1.2-alpha02"
versions.atsl_ext = "1.1.1-alpha02"
versions.atsl_truth = "1.2.0-alpha02"
versions.autovalue_annotations = "1.6.2"
versions.cardio = "5.5.1"
versions.checker = "2.5.3"
versions.checker_compat = "2.5.3"
versions.constraint_layout = "1.1.3"
versions.crashlytics = "2.9.9"
versions.crashlytics_ndk = "2.0.5"
versions.dagger2 = "2.22.1"
versions.autocomponent = "0.5.0-SNAPSHOT"
versions.dexcount = "0.8.4"
versions.dexmaker = "2.21.0"
versions.dns_java = "2.1.8"
versions.espresso = "3.1.1"
versions.espresso_appcenter = "1.2"
versions.events_nirvana = "1.0.6"
versions.exifinterface = versions.androidx
versions.google_error_prone = "2.3.1"
versions.fabric = "1.28.0"
versions.firebase_core = "16.0.6"
versions.firebase_messaging = "17.3.4"
versions.firebase_plugin = "1.1.5"
versions.firebase_ui_auth = "4.2.0"
versions.firestore = "18.2.0"
versions.eventbus = "3.1.1"
versions.flexbox = "1.1.0"
versions.fotoapparat = "2.6.1"
versions.glide = "4.8.0"
versions.gms_google_services = "4.2.0"
versions.guava = "26.0-android"
versions.hamcrest = "1.3"
versions.imagezoom = "1.0.4"
versions.installreferrer = "1.0"
versions.instacart_shared_lib = "25618a6"
versions.javafmt = "0.1.4"
versions.jackson = "2.8.9"
versions.junit = "4.12"
versions.kochava = "3.6.0"
versions.kotlin = "1.3.21"
versions.leakcanary = "1.6.3"
versions.lottie = "2.8.0"
versions.mapbox = "6.5.0"
versions.mapbox_services = "3.4.1"
versions.mapbox_directions = "1.0.0"
versions.mapbox_navigation = "0.20.0"
versions.mapbox_plugin_geojson = "0.1.0"
versions.mapbox_plugin_location_layer = "0.10.0"
versions.mockito = "2.25.1"
versions.mockito_kotlin = "1.6.0"
versions.dexopener = "2.0.1"
versions.multidex = "2.0.0"
versions.okhttp= "3.10.0"
versions.otto = "1.3.4"
versions.play_services_location = "16.0.0"
versions.play_services_vision = "16.2.0"
versions.play_services_ads_identifier = "15.0.1"
versions.progressbar_material = "1.4.2" // TODO: use native widget
versions.progressbar_material_loading = "0.5.8-RELEASE" // TODO: use native widget
versions.recycler_expandable = "3.0.0-RC1"// Library is deprecated
versions.retrofit = "2.3.0"
versions.rollbar = "1.3.1"
versions.rx_android = "2.1.0"
versions.rx_bindings = "2.2.0"
versions.rx_bindings_viewpager = "3.0.0-alpha2"
versions.rx_idler = "0.9.1"
versions.rx_java = "2.2.2"
versions.rx_preferences = "2.0.0"
versions.rx_replaying_share = "2.1.0"
versions.rx_relay = "2.0.0"
versions.scanner_zxing = "1.9.8"
versions.segment = "4.3.1"
versions.shimmer_layout = "2.1.0"
versions.shoppers_cross_platform = "scp-0.0.1"
versions.slf4j = "1.7.12"
versions.smart_location = "3.3.3" // depends on versions.play_services = "11.4.2"
versions.stripe = "1.0.4"
versions.tape = "2.0.0-beta1"
versions.target_tooltip = "8855dc3457"
versions.textclock_better = "1.0.1"
versions.textview_expandable = "1.0.5"
versions.timber = "4.7.1"
versions.toast_compat = "1.1.0"
versions.trailmix = "tm-0.5"
versions.truetime = "0630cdf"
versions.truth = "0.42"
versions.ui_automator = "2.2.0"
versions.ujet = "0.28.2"
versions.volley = "1.0.0"
versions.stetho = "1.5.0"
versions.lint = "26.2.1" /* AGP version + 23 */
def deps = [:]
// support
def androidx = [:]
androidx.annotations = "androidx.annotation:annotation:$versions.androidx"
androidx.app_compat = "androidx.appcompat:appcompat:$versions.androidx"
androidx.cardview = "androidx.cardview:cardview:$versions.androidx"
androidx.compat = "androidx.core:core:$versions.androidx"
androidx.core_utils = "androidx.legacy:legacy-support-core-utils:$versions.androidx"
androidx.custom_tabs = "androidx.browser:browser:$versions.androidx"
androidx.design = "com.google.android.material:material:$versions.androidx"
androidx.exifinterface = "androidx.exifinterface:exifinterface:$versions.exifinterface"
androidx.multidex = "androidx.multidex:multidex:$versions.multidex"
androidx.percent = "androidx.percentlayout:percentlayout:$versions.androidx"
androidx.recyclerview = "androidx.recyclerview:recyclerview:$versions.androidx"
androidx.dynamic_animation = "androidx.dynamicanimation:dynamicanimation:$versions.androidx"
androidx.v4 = "androidx.legacy:legacy-support-v4:$versions.androidx"
androidx.vector_drawable = "androidx.vectordrawable:vectordrawable:$versions.androidx"
androidx.vector_drawable_animated = "androidx.vectordrawable:vectordrawable-animated:$versions.androidx"
deps.androidx = androidx
// 3rd party
def arch_core = [:]
arch_core.testing = "androidx.arch.core:core-testing:$versions.arch_core"
deps.arch_core = arch_core
def dagger2 = [:]
dagger2.library = "com.google.dagger:dagger:$versions.dagger2"
dagger2.compiler = "com.google.dagger:dagger-compiler:$versions.dagger2"
dagger2.autocomponent_annotation = "libs/autocomponent/autocomponent-annotation-${versions.autocomponent}.jar"
dagger2.autocomponent_helpers = "libs/autocomponent/autocomponent-helpers-${versions.autocomponent}.jar"
dagger2.autocomponent_processor = "libs/autocomponent/autocomponent-processor-${versions.autocomponent}.jar"
deps.dagger2 = dagger2
/*def dagger = [:]
dagger.runtime = "com.google.dagger:dagger:$versions.dagger2"
dagger.android = "com.google.dagger:dagger-android:$versions.dagger2"
dagger.android_support = "com.google.dagger:dagger-android-support:$versions.dagger2"
dagger.compiler = "com.google.dagger:dagger-compiler:$versions.dagger2"
dagger.android_support_compiler = "com.google.dagger:dagger-android-processor:$versions.dagger2"
deps.dagger = dagger*/
def google = [:]
google.ads_identifier = "com.google.android.gms:play-services-ads-identifier:$versions.play_services_ads_identifier"
google.firebase_core = "com.google.firebase:firebase-core:$versions.firebase_core"
google.firebase_messaging = "com.google.firebase:firebase-messaging:$versions.firebase_messaging"
google.firebase_ui_auth = "com.firebaseui:firebase-ui-auth:$versions.firebase_ui_auth"
google.flexbox = "com.google.android:flexbox:$versions.flexbox"
google.gms_google_services = "com.google.gms:google-services:$versions.gms_google_services"
google.gms_location = "com.google.android.gms:play-services-location:$versions.play_services_location"
google.gms_vision = "com.google.android.gms:play-services-vision:$versions.play_services_vision"
google.truth = "com.google.truth:truth:$versions.truth"
google.guava = "com.google.guava:guava:$versions.guava"
deps.google = google
def idautomation = [:]
idautomation.library = "libs/IDAutomation_LinearJavaFontEncoder.jar"
deps.idautomation = idautomation
def jackson = [:]
jackson.annotations = "com.fasterxml.jackson.core:jackson-annotations:$versions.jackson"
jackson.core = "com.fasterxml.jackson.core:jackson-core:$versions.jackson"
jackson.databind = "com.fasterxml.jackson.core:jackson-databind:$versions.jackson"
jackson.kotlin = "com.fasterxml.jackson.module:jackson-module-kotlin:$versions.jackson"
deps.jackson = jackson
def kotlin = [:]
kotlin.allopen = "org.jetbrains.kotlin:kotlin-allopen:$versions.kotlin"
kotlin.stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$versions.kotlin"
kotlin.reflect = "org.jetbrains.kotlin:kotlin-reflect:$versions.kotlin"
kotlin.test = "org.jetbrains.kotlin:kotlin-test-junit:$versions.kotlin"
kotlin.plugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin"
deps.kotlin = kotlin
def leakcanary = [:]
leakcanary.lib = "com.squareup.leakcanary:leakcanary-android:$versions.leakcanary"
leakcanary.no_op = "com.squareup.leakcanary:leakcanary-android-no-op:$versions.leakcanary"
deps.leakcanary = leakcanary
def lifecycle = [:]
lifecycle.viewmodel = "androidx.lifecycle:lifecycle-viewmodel:$versions.lifecycle"
lifecycle.java8 = "androidx.lifecycle:lifecycle-common-java8:$versions.lifecycle"
deps.lifecycle = lifecycle
def lint = [:]
lint.api = "com.android.tools.lint:lint-api:$versions.lint"
lint.checks = "com.android.tools.lint:lint-checks:$versions.lint"
deps.lint = lint
def mapbox = [:]
mapbox.core = "com.mapbox.mapboxsdk:mapbox-android-sdk:${versions.mapbox}@aar"
mapbox.directions = "com.mapbox.mapboxsdk:mapbox-android-directions:${versions.mapbox_directions}@aar"
mapbox.plugin_geojson = "com.mapbox.mapboxsdk:mapbox-android-plugin-geojson:$versions.mapbox_plugin_geojson"
mapbox.plugin_locationlayer = "com.mapbox.mapboxsdk:mapbox-android-plugin-locationlayer:$versions.mapbox_plugin_location_layer"
mapbox.navigation = "com.mapbox.mapboxsdk:mapbox-android-navigation:$versions.mapbox_navigation"
mapbox.android_navigation = "com.mapbox.mapboxsdk:mapbox-android-navigation-ui:$versions.mapbox_navigation"
deps.mapbox = mapbox
def okhttp = [:]
okhttp.core = "com.squareup.okhttp3:okhttp:$versions.okhttp"
okhttp.logging_interceptor = "com.squareup.okhttp3:logging-interceptor:$versions.okhttp"
okhttp.mock_web_server = "com.squareup.okhttp3:mockwebserver:$versions.okhttp"
deps.okhttp = okhttp
def stetho = [:]
stetho.okhttp = "com.facebook.stetho:stetho-okhttp3:$versions.stetho"
stetho.core = "com.facebook.stetho:stetho:$versions.stetho"
deps.stetho = stetho
def room = [:]
room.runtime = "androidx.room:room-runtime:$versions.room"
room.compiler = "androidx.room:room-compiler:$versions.room"
room.rx_java = "androidx.room:room-rxjava2:$versions.room"
room.testing = "androidx.room:room-testing:$versions.room"
deps.room = room
def rx = [:]
rx.java = "io.reactivex.rxjava2:rxjava:$versions.rx_java"
rx.android = "io.reactivex.rxjava2:rxandroid:$versions.rx_android"
rx.bindings = "com.jakewharton.rxbinding2:rxbinding:$versions.rx_bindings"
rx.bindings_viewpager = "com.jakewharton.rxbinding3:rxbinding-viewpager:$versions.rx_bindings_viewpager"
rx.idler = "com.squareup.rx.idler:rx2-idler:$versions.rx_idler"
rx.preferences = "com.f2prateek.rx.preferences2:rx-preferences:$versions.rx_preferences"
rx.replaying_share = "com.jakewharton.rx2:replaying-share-kotlin:$versions.rx_replaying_share"
rx.relay = "com.jakewharton.rxrelay2:rxrelay:$versions.rx_relay"
deps.rx = rx
def retrofit = [:]
retrofit.runtime = "com.squareup.retrofit2:retrofit:$versions.retrofit"
retrofit.gson = "com.squareup.retrofit2:converter-gson:$versions.retrofit"
retrofit.mock = "com.squareup.retrofit2:retrofit-mock:$versions.retrofit"
deps.retrofit = retrofit
def truetime = [:]
truetime.core = "com.github.instacart.truetime-android:library:$versions.truetime"
truetime.rx = "com.github.instacart.truetime-android:library-extension-rx:$versions.truetime"
deps.truetime = truetime
// testing
def espresso = [:]
espresso.core = "androidx.test.espresso:espresso-core:$versions.espresso"
espresso.contrib = "androidx.test.espresso:espresso-contrib:$versions.espresso"
espresso.appcenter = "com.microsoft.appcenter:espresso-test-extension:$versions.espresso_appcenter"
espresso.idling = "androidx.test.espresso:espresso-idling-resource:$versions.espresso"
espresso.intents = "androidx.test.espresso:espresso-intents:$versions.espresso"
deps.espresso = espresso
def atsl = [:]
atsl.core = "androidx.test:core:${versions.atsl_ext}"
atsl.runner = "androidx.test:runner:$versions.atsl_runner"
atsl.rules = "androidx.test:rules:$versions.atsl_runner"
atsl.junit = "androidx.test.ext:junit:$versions.atsl_ext"
atsl.truth = "androidx.test.ext:truth:$versions.atsl_truth"
deps.atsl = atsl
def mockito = [:]
mockito.core = "org.mockito:mockito-core:$versions.mockito"
mockito.android = "org.mockito:mockito-android:$versions.mockito"
mockito.inline = "org.mockito:mockito-inline:$versions.mockito"
mockito.kotlin = "com.nhaarman:mockito-kotlin:$versions.mockito_kotlin"
mockito.dexopener = "com.github.tmurakami:dexopener:$versions.dexopener"
deps.mockito = mockito
def buglife = [:]
buglife.volley = "com.android.volley:volley:$versions.volley"
buglife.assertj = "org.assertj:assertj-core:$versions.assertj"
buglife.json = "org.json:json:20171018"
deps.buglife = buglife
def glide = [:]
glide.core = "com.github.bumptech.glide:glide:$versions.glide"
glide.compiler = "com.github.bumptech.glide:compiler:$versions.glide"
deps.glide = glide
deps.android_crop = "com.soundcloud.android:android-crop:${versions.android_crop}@aar"
deps.android_gradle_plugin = "com.android.tools.build:gradle:$versions.android_gradle_plugin"
deps.autovalue_annotations = "com.google.auto.value:auto-value-annotations:$versions.autovalue_annotations"
deps.constraint_layout = "com.android.support.constraint:constraint-layout:$versions.constraint_layout"
deps.cardio = "io.card:android-sdk:$versions.cardio"
deps.checker = "org.checkerframework:checker-qual:$versions.checker"
deps.checker_compat = "org.checkerframework:checker-compat-qual:$versions.checker_compat"
deps.crashlytics = "com.crashlytics.sdk.android:crashlytics:${versions.crashlytics}@aar"
deps.crashlytics_ndk = "com.crashlytics.sdk.android:crashlytics-ndk:${versions.crashlytics_ndk}@aar"
deps.dexcount = "com.getkeepsafe.dexcount:dexcount-gradle-plugin:$versions.dexcount"
deps.dexmaker = "com.linkedin.dexmaker:dexmaker-mockito-inline:$versions.dexmaker"
deps.dns_java = "dnsjava:dnsjava:$versions.dns_java"
deps.eventbus = "org.greenrobot:eventbus:$versions.eventbus"
deps.google_error_prone = "com.google.errorprone:error_prone_annotations:$versions.google_error_prone"
deps.fabric = "io.fabric.tools:gradle:$versions.fabric"
deps.firebase_plugin = "com.google.firebase:firebase-plugins:$versions.firebase_plugin"
deps.firestore = "com.google.firebase:firebase-firestore:$versions.firestore"
deps.fotoapparat = "io.fotoapparat:fotoapparat:$versions.fotoapparat"
deps.hamcrest = "org.hamcrest:hamcrest-all:$versions.hamcrest"
deps.imagezoom = "it.sephiroth.android.library.imagezoom:library:$versions.imagezoom"
deps.installreferrer = "com.android.installreferrer:installreferrer:$versions.installreferrer"
deps.javafmt = "com.f2prateek.javafmt:javafmt:$versions.javafmt"
deps.junit = "junit:junit:$versions.junit"
deps.lottie = "com.airbnb.android:lottie:$versions.lottie"
deps.otto = "com.squareup:otto:$versions.otto"
deps.kochava = "com.kochava.base:tracker:$versions.kochava"
deps.progressbar_material = "me.zhanghai.android.materialprogressbar:library:$versions.progressbar_material"
deps.progressbar_material_loading = "com.lsjwzh:materialloadingprogressbar:$versions.progressbar_material_loading"
deps.recycler_expandable = "com.bignerdranch.android:expandablerecyclerview:$versions.recycler_expandable"
deps.rollbar = "com.rollbar:rollbar-android:$versions.rollbar"
deps.scanner_zxing = "me.dm7.barcodescanner:zxing:$versions.scanner_zxing"
deps.segment = "com.segment.analytics.android:analytics:$versions.segment"
deps.shimmer_layout = "io.supercharge:shimmerlayout:$versions.shimmer_layout"
deps.slf4j = "org.slf4j:slf4j-android:$versions.slf4j"
deps.smart_location = "io.nlopez.smartlocation:library:$versions.smart_location"
deps.smart_location_rx = "io.nlopez.smartlocation:rx:$versions.smart_location"
deps.stripe = "com.stripe:stripe-android:$versions.stripe"
deps.tape = "com.squareup.tape2:tape:$versions.tape"
deps.target_tooltip = "com.github.eduardbosch:android-target-tooltip:$versions.target_tooltip"
deps.textclock_better = "net.imknown:BetterTextClockBackportLibrary:$versions.textclock_better"
deps.textview_expandable = "at.blogc:expandabletextview:$versions.textview_expandable"
deps.timber = "com.jakewharton.timber:timber:$versions.timber"
deps.toast_compat = "me.drakeet.support:toastcompat:$versions.toast_compat"
deps.uiautomator = "androidx.test.uiautomator:uiautomator:$versions.ui_automator"
deps.ujet = "co.ujet.android:ujet-android:$versions.ujet"
ext.deps = deps
def private_repo_versions = [:]
private_repo_versions.trailmix = versions.trailmix
ext.private_repo_versions = private_repo_versions
def build_versions = [:]
build_versions.min_sdk = versions.min_sdk
build_versions.target_sdk = versions.target_sdk
build_versions.build_sdk = versions.build_sdk
build_versions.gradle = versions.gradle
ext.build_versions = build_versions
static def addRepos(RepositoryHandler handler) {
handler.google()
handler.maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
handler.mavenLocal()
handler.maven { url 'https://mapbox.bintray.com/mapbox' }
handler.jcenter()
}
ext.addRepos = this.&addRepos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment