Skip to content

Android

Mickael Gaillard edited this page Jun 10, 2019 · 3 revisions

build.gradle of project

buildscript {
    apply from: "https://github.com/TACTfactory/tact-resources/raw/master/springb_version.gradle"

    repositories {
        jcenter()
        google()
    }

    dependencies {
        classpath gradlePlugin.android.build

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath gradlePlugin.android.dexcount
        classpath gradlePlugin.netflix.gradleLint
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }

    apply plugin: 'nebula.lint'

    gradleLint.rules = ['all-dependency'] // add as many rules here as you'd like
    gradleLint.criticalRules = ['unused-dependency']
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle of module app

apply plugin: 'com.android.application'
apply plugin: 'com.getkeepsafe.dexcount'

android {
    compileSdkVersion config.version.android.compileSdk
    buildToolsVersion config.version.android.buildTool

    defaultConfig {
        applicationId "com.company.app"

        minSdkVersion rootProject.config.version.android.minSdk
        targetSdkVersion rootProject.config.version.android.targetSdk

        versionCode 1
        versionName "1.0.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    lintOptions {
        abortOnError false
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }

        debug {
            testCoverageEnabled true
        }
    }

    testOptions {
        unitTests {
            includeAndroidResources = true
            returnDefaultValues = true
        }

    }

    dexcount {
        format = "list"
        includeClasses = false
        includeClassCount = true
        includeFieldCount = true
        includeTotalMethodCount = true
        orderByMethodCount = true
        verbose = false
        maxTreeDepth = Integer.MAX_VALUE
        teamCityIntegration = false
        teamCitySlug = null
        runOnEachPackage = true
        enabled = true
    }

    useLibrary 'android.test.runner'
    useLibrary 'android.test.base'
    useLibrary 'android.test.mock'
}

dependencies {
    // Local
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    // Retro-compatibility
//    implementation lib.android.x.activity
//    implementation lib.android.x.annotation
    implementation lib.android.x.appcompat
//    implementation lib.android.x.archCommon
//    implementation lib.android.x.archCore     // TODO recheck if available
//    implementation lib.android.x.archRuntime
//    implementation lib.android.x.asynclayout  // TODO recheck if available
//    implementation lib.android.x.benchmark
//    implementation lib.android.x.biometric
//    implementation lib.android.x.browser
//    implementation lib.android.x.cameraCore
//    implementation lib.android.x.cameraCamera2
//    implementation lib.android.x.car
//    implementation lib.android.x.carCluster   // TODO recheck if available
    implementation lib.android.x.cardview
//    implementation lib.android.x.collection
//    implementation lib.android.x.concurrent
//    implementation lib.android.x.concurrentListenable
//    implementation lib.android.x.concurrentListenableCallback
    implementation lib.android.x.constraintlayout
//    implementation lib.android.x.contentpager
//    implementation lib.android.x.coordinatorlayout
//    implementation lib.android.x.core
//    implementation lib.android.x.cursoradapter
//    implementation lib.android.x.customview
//    implementation lib.android.x.databinding  // TODO recheck if available
//    implementation lib.android.x.documentfile
//    implementation lib.android.x.drawerlayout
//    implementation lib.android.x.dynamicanimation
//    implementation lib.android.x.emoji
//    implementation lib.android.x.enterprise
//    implementation lib.android.x.exifinterface
//    implementation lib.android.x.fragment
//    implementation lib.android.x.gridlayout
//    implementation lib.android.x.heifwriter
//    implementation lib.android.x.interpolator
//    implementation lib.android.x.leanback
//    implementation lib.android.x.leanbackPreference
//    implementation lib.android.x.legacy       // TODO recheck if available
//    implementation lib.android.x.lifecycle
//    implementation lib.android.x.loader
//    implementation lib.android.x.localbroadcastmanager
//    implementation lib.android.x.media
//    implementation lib.android.x.media2Common
//    implementation lib.android.x.media2Player
//    implementation lib.android.x.media2Session
//    implementation lib.android.x.mediarouter
//    implementation lib.android.x.multidex
//    implementation lib.android.x.navigationFragment
//    implementation lib.android.x.navigationUi
//    implementation lib.android.x.paging
//    implementation lib.android.x.palette
//    implementation lib.android.x.percentlayout
//    implementation lib.android.x.preference
//    implementation lib.android.x.print
//    implementation lib.android.x.recommendation
//    implementation lib.android.x.recyclerview
//    implementation lib.android.x.recyclerviewSelection
//    implementation lib.android.x.remotecallback
//    implementation lib.android.x.room
//    implementation lib.android.x.roomGuava
//    annotationProcessor lib.android.x.roomAnnotation
//    implementation lib.android.x.savedstate
//    implementation lib.android.x.security
//    implementation lib.android.x.sharetarget
//    implementation lib.android.x.slice
//    implementation lib.android.x.slidingpanelayout
//    implementation lib.android.x.sqlite
//    implementation lib.android.x.swiperefreshlayout
//    implementation lib.android.x.test
//    implementation lib.android.x.textclassifier
//    implementation lib.android.x.transition
//    implementation lib.android.x.tvprovider
//    implementation lib.android.x.vectordrawable
//    implementation lib.android.x.versionedparcelable
//    implementation lib.android.x.viewpager
//    implementation lib.android.x.viewpager2
//    implementation lib.android.x.wear
//    implementation lib.android.x.webkit
//    implementation lib.android.x.work

    implementation lib.android.supportDeprecated.palette

    // Design
    implementation lib.android.material

    // Third-party Libs
    compileOnly lib.lombok
    annotationProcessor lib.lombok

    // Debug tools


    // Third-party Lib of project
    implementation lib.android.glide
    annotationProcessor lib.android.glideAnnotation

    // Test Stack
    androidTestImplementation fileTree(dir: 'test/libs', include: '*.jar')

    androidTestImplementation 'androidx.annotation:annotation:1.1.0'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    androidTestImplementation "androidx.test:runner:1.2.0"

    testImplementation 'junit:junit:4.12'
}
Clone this wiki locally