diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 86b4963..7ac4fc8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,4 +1,5 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import dependencies.Dep +import dependencies.Versions plugins { id("com.android.application") @@ -8,21 +9,21 @@ plugins { } android { - compileSdkVersion(28) + compileSdkVersion(Versions.compileSdk) defaultConfig { + targetSdkVersion(Versions.targetSdk) + minSdkVersion(Versions.minSdk) applicationId = "cn.nekocode.gank" - minSdkVersion(16) - targetSdkVersion(28) versionCode = 1 versionName = "1.0" - val SCHEME = "gank" + val scheme = "gank" - buildConfigField("String", "SCHEME", "\"${SCHEME}\"") + buildConfigField("String", "SCHEME", "\"$scheme\"") manifestPlaceholders = mapOf( "APPLICATION_ID" to applicationId, - "SCHEME" to SCHEME + "SCHEME" to scheme ) } buildTypes { @@ -36,29 +37,24 @@ android { dependencies { implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) implementation(project(":backend")) - - // Kotlin - implementation(kotlin("stdlib-jdk7", KotlinCompilerVersion.VERSION)) + implementation(Dep.Kotlin.stdlib) // Android support libraries - val SUPPORT_VERSION = "28.0.0" - implementation("com.android.support:appcompat-v7:$SUPPORT_VERSION") - implementation("com.android.support:recyclerview-v7:$SUPPORT_VERSION") - implementation("com.android.support:support-annotations:$SUPPORT_VERSION") - implementation("com.android.support.constraint:constraint-layout:1.1.3") + implementation(Dep.Support.appcompat) + implementation(Dep.Support.recyclerview) + implementation(Dep.Support.annotations) + implementation(Dep.Support.constraint) // ReactiveX - implementation("io.reactivex.rxjava2:rxjava:2.2.2") - implementation("io.reactivex.rxjava2:rxandroid:2.1.0") - val AUTO_DISPOSE_VERSION = "0.8.0" - implementation("com.uber.autodispose:autodispose:$AUTO_DISPOSE_VERSION") - implementation("com.uber.autodispose:autodispose-android:$AUTO_DISPOSE_VERSION") - implementation("com.uber.autodispose:autodispose-android-archcomponents:$AUTO_DISPOSE_VERSION") + implementation(Dep.Rx.java) + implementation(Dep.Rx.android) + implementation(Dep.Rx.dispose) + implementation(Dep.Rx.disposeAndroid) + implementation(Dep.Rx.disposeAndroidArch) // Others - implementation("com.squareup.picasso:picasso:2.5.2") - implementation("com.github.nekocode:Meepo:0.3") - val STATE_VERSION = "1.3.1" - implementation("com.evernote:android-state:$STATE_VERSION") - kapt("com.evernote:android-state-processor:$STATE_VERSION") + implementation(Dep.Meepo.meepo) + implementation(Dep.AndroidState.state) + kapt(Dep.AndroidState.processor) + implementation(Dep.Picasso.picasso) } diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index ae04c45..366351f 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -1,4 +1,5 @@ -import org.jetbrains.kotlin.config.KotlinCompilerVersion +import dependencies.Dep +import dependencies.Versions plugins { id("com.android.library") @@ -6,30 +7,29 @@ plugins { } android { - compileSdkVersion(28) + compileSdkVersion(Versions.compileSdk) defaultConfig { - minSdkVersion(16) - targetSdkVersion(28) + targetSdkVersion(Versions.targetSdk) + minSdkVersion(Versions.minSdk) consumerProguardFiles("proguard-rules.pro") } } dependencies { implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) - testImplementation("junit:junit:4.12") - - // Kotlin - implementation(kotlin("stdlib-jdk7", KotlinCompilerVersion.VERSION)) + implementation(Dep.Kotlin.stdlib) // Network - api("com.squareup.okhttp3:okhttp:3.11.0") - api("com.google.code.gson:gson:2.8.4") - val RETROFIT_VERSION = "2.4.0" - implementation("com.squareup.retrofit2:retrofit:$RETROFIT_VERSION") - implementation("com.squareup.retrofit2:converter-gson:$RETROFIT_VERSION") - implementation("com.squareup.retrofit2:adapter-rxjava2:$RETROFIT_VERSION") + api(Dep.OkHttp.okhttp) + api(Dep.Retrofit.retrofit) + api(Dep.Retrofit.gsonConverter) + api(Dep.Retrofit.rxAdapter) + api(Dep.Gson.gson) // ReactiveX - api("io.reactivex.rxjava2:rxjava:2.2.2") - api("io.reactivex.rxjava2:rxandroid:2.1.0") + implementation(Dep.Rx.java) + implementation(Dep.Rx.android) + + // Test + testImplementation(Dep.Test.junit) } diff --git a/build.gradle.kts b/build.gradle.kts index 4af3158..f8f485e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,14 +1,3 @@ -buildscript { - repositories { - google() - jcenter() - } - dependencies { - classpath("com.android.tools.build:gradle:3.4.1") - classpath(kotlin("gradle-plugin", version = "1.3.31")) - } -} - allprojects { repositories { google() diff --git a/buildSrc/.gitignore b/buildSrc/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/buildSrc/.gitignore @@ -0,0 +1 @@ +/build diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..87dc58a --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,24 @@ +plugins { + `kotlin-dsl` + id("idea") + id("de.fuerstenau.buildconfig").version("1.1.8") +} + +val kotlinVersion = "1.3.31" +buildConfig { + packageName = "dependencies" + charset = "UTF-8" + + buildConfigField("String", "KOTLIN_VERSION", kotlinVersion) +} + +repositories { + google() + jcenter() +} + +dependencies { + api("com.android.tools.build:gradle:3.4.1") + api("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") +} + diff --git a/buildSrc/src/main/kotlin/dependencies/Dep.kt b/buildSrc/src/main/kotlin/dependencies/Dep.kt new file mode 100644 index 0000000..96d58df --- /dev/null +++ b/buildSrc/src/main/kotlin/dependencies/Dep.kt @@ -0,0 +1,60 @@ +package dependencies + +@Suppress("unused") +object Dep { + object Test { + const val junit = "junit:junit:4.12" + } + + object Support { + private const val version = "28.0.0" + const val appcompat = "com.android.support:appcompat-v7:$version" + const val recyclerview = "com.android.support:recyclerview-v7:$version" + const val annotations = "com.android.support:support-annotations:$version" + const val constraint = "com.android.support.constraint:constraint-layout:1.1.3" + } + + object Kotlin { + const val version = BuildConfig.KOTLIN_VERSION + const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$version" + } + + object Rx { + const val java = "io.reactivex.rxjava2:rxjava:2.2.2" + const val android = "io.reactivex.rxjava2:rxandroid:2.1.0" + + private const val disposeVersion = "0.8.0" + const val dispose = "com.uber.autodispose:autodispose:$disposeVersion" + const val disposeAndroid = "com.uber.autodispose:autodispose-android:$disposeVersion" + const val disposeAndroidArch = "com.uber.autodispose:autodispose-android-archcomponents:$disposeVersion" + } + + object Meepo { + const val meepo = "com.github.nekocode:Meepo:0.3" + } + + object AndroidState { + private const val version = "1.3.1" + const val state = "com.evernote:android-state:$version" + const val processor = "com.evernote:android-state-processor:$version" + } + + object Picasso { + const val picasso = "com.squareup.picasso:picasso:2.5.2" + } + + object OkHttp { + const val okhttp = "com.squareup.okhttp3:okhttp:3.14.1" + } + + object Retrofit { + private const val version = "2.5.0" + const val retrofit = "com.squareup.retrofit2:retrofit:$version" + const val gsonConverter = "com.squareup.retrofit2:converter-gson:$version" + const val rxAdapter = "com.squareup.retrofit2:adapter-rxjava2:$version" + } + + object Gson { + const val gson = "com.google.code.gson:gson:2.8.4" + } +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/dependencies/Versions.kt b/buildSrc/src/main/kotlin/dependencies/Versions.kt new file mode 100644 index 0000000..c97bcf8 --- /dev/null +++ b/buildSrc/src/main/kotlin/dependencies/Versions.kt @@ -0,0 +1,8 @@ +package dependencies + +@Suppress("unused") +object Versions { + const val compileSdk = 28 + const val targetSdk = compileSdk + const val minSdk = 16 +} \ No newline at end of file