Skip to content

Commit

Permalink
Feat: Migrate to Gradle KTS
Browse files Browse the repository at this point in the history
  • Loading branch information
chepsi committed Feb 14, 2020
1 parent 733a004 commit 5f0add3
Show file tree
Hide file tree
Showing 34 changed files with 463 additions and 364 deletions.
45 changes: 0 additions & 45 deletions app/build.gradle

This file was deleted.

50 changes: 50 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
plugins{
id(BuildPlugins.androidApplication)
id(BuildPlugins.kotlinAndroid)
id(BuildPlugins.kotlinAndroidExtensions)
}
android {
compileSdkVersion(AndroidSDK.compile)
buildToolsVersion("29.0.2")
defaultConfig {
applicationId = "com.android254.droidconKE2020"
minSdkVersion(AndroidSDK.min)
targetSdkVersion(AndroidSDK.target)
versionCode = Versions.code
versionName = Versions.name
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
dynamicFeatures = mutableSetOf(
BuildModules.Features.Home,
BuildModules.Features.Feed,
BuildModules.Features.About,
BuildModules.Features.Sessions,
BuildModules.Features.Auth,
BuildModules.Features.Speaker,
BuildModules.Features.Feedback
)
}

dependencies {
api(APIs.ktxCore)
api(APIs.kotlinStandardLibrary)
api(APIs.navigationFragment)
api(APIs.navigationUI)
api(APIs.navigationDynamicFeature)
implementation (fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
implementation(Libraries.kotlinStandardLibrary)
implementation(Libraries.appCompat)
implementation (Libraries.ktxCore)
implementation (Libraries.constraintLayout)
implementation (Libraries.materialComponents)
testImplementation (TestLibraries.junit4)
androidTestImplementation (TestLibraries.testRunner)
androidTestImplementation (TestLibraries.espresso)
androidTestImplementation (TestLibraries.annotation)
}
2 changes: 1 addition & 1 deletion app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
# proguardFiles setting in build.gradle.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
Expand Down
12 changes: 5 additions & 7 deletions build.gradle → build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext.kotlin_version = '1.3.61'
repositories {
google()
jcenter()

}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath(BuildPlugins.androidGradlePlugin)
classpath(BuildPlugins.kotlinGradlePlugin)
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
Expand All @@ -23,6 +21,6 @@ allprojects {
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}
tasks.register("clean").configure{
delete("build")
}
13 changes: 13 additions & 0 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import org.gradle.kotlin.dsl.`kotlin-dsl`

plugins {
`kotlin-dsl`
}

repositories {
jcenter()
}

kotlinDslPluginOptions {
experimentalWarning.set(false)
}
75 changes: 75 additions & 0 deletions buildSrc/src/main/kotlin/Dependencies.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
object Versions {
const val name = "1.0"
const val code = 1

const val kotlin = "1.3.61"
const val buildToolsVersion = "3.5.3"
const val jetPack = "1.1.0"
const val constraintLayout = "1.1.3"
const val ktx = "1.1.0"
const val material = "1.0.0"

const val junit4 = "4.12"
const val testRunner = "1.1.1"
const val espresso = "3.2.0"
const val annotation = "1.1.0"
}

object BuildPlugins {
const val androidGradlePlugin = "com.android.tools.build:gradle:${Versions.buildToolsVersion}"
const val kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
const val androidApplication = "com.android.application"
const val kotlinAndroid = "kotlin-android"
const val kotlinAndroidExtensions = "kotlin-android-extensions"
const val dynamicFeature = "com.android.dynamic-feature"
const val androidLibrary = "com.android.library"
}

object Libraries {
const val kotlinStandardLibrary = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.kotlin}"
const val appCompat = "androidx.appcompat:appcompat:${Versions.jetPack}"
const val constraintLayout = "androidx.constraintlayout:constraintlayout:${Versions.constraintLayout}"
const val ktxCore = "androidx.core:core-ktx:${Versions.ktx}"
const val materialComponents = "com.google.android.material:material:${Versions.material}"
}

object APIs {
private const val navVersion = "2.3.0-alpha01"
const val ktxCore = "androidx.core:core-ktx:1.2.0"
const val kotlinStandardLibrary = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.kotlin}"
const val navigationFragment = "androidx.navigation:navigation-fragment-ktx:${navVersion}"
const val navigationUI = "androidx.navigation:navigation-ui-ktx:$navVersion"
const val navigationDynamicFeature = "androidx.navigation:navigation-dynamic-features-fragment:$navVersion"
}

object AndroidSDK{
const val min = 21
const val compile = 29
const val target = compile
}

object TestLibraries {
const val junit4 = "junit:junit:${Versions.junit4}"
const val testRunner = "androidx.test:runner:${Versions.testRunner}"
const val espresso = "androidx.test.espresso:espresso-core:${Versions.espresso}"
const val annotation = "androidx.annotation:annotation:${Versions.annotation}"
}

object BuildModules{
object Features {
const val Home = ":features:home"
const val Feed = ":features:feed"
const val Sessions = ":features:sessions"
const val Auth = ":features:auth"
const val Speaker = ":features:speaker"
const val Feedback = ":features:feedback"
const val About = ":features:about"
}
object Libraries{
const val Core = ":core"
const val Repository = ":repository"
const val Network = ":network"
const val Data = ":data"
const val App = ":app"
}
}
35 changes: 0 additions & 35 deletions core/build.gradle

This file was deleted.

35 changes: 35 additions & 0 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
plugins {
id(BuildPlugins.androidLibrary)
id(BuildPlugins.kotlinAndroid)
id(BuildPlugins.kotlinAndroidExtensions)
}

android {
compileSdkVersion(AndroidSDK.compile)
defaultConfig {
minSdkVersion(AndroidSDK.min)
targetSdkVersion(AndroidSDK.target)
versionCode = Versions.code
versionName = Versions.name

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
}

buildTypes {
getByName("release") {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
}

dependencies {
implementation (fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
implementation(Libraries.kotlinStandardLibrary)
implementation(Libraries.appCompat)
implementation (Libraries.ktxCore)
testImplementation (TestLibraries.junit4)
androidTestImplementation (TestLibraries.testRunner)
androidTestImplementation (TestLibraries.espresso)
}
2 changes: 1 addition & 1 deletion core/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
# proguardFiles setting in build.gradle.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
Expand Down
35 changes: 0 additions & 35 deletions data/build.gradle

This file was deleted.

35 changes: 35 additions & 0 deletions data/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
plugins {
id(BuildPlugins.androidLibrary)
id(BuildPlugins.kotlinAndroid)
id(BuildPlugins.kotlinAndroidExtensions)
}

android {
compileSdkVersion(AndroidSDK.compile)
defaultConfig {
minSdkVersion(AndroidSDK.min)
targetSdkVersion(AndroidSDK.target)
versionCode = Versions.code
versionName = Versions.name

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
}

buildTypes {
getByName("release") {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
}

dependencies {
implementation (fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
implementation(Libraries.kotlinStandardLibrary)
implementation(Libraries.appCompat)
implementation (Libraries.ktxCore)
testImplementation (TestLibraries.junit4)
androidTestImplementation (TestLibraries.testRunner)
androidTestImplementation (TestLibraries.espresso)
}
2 changes: 1 addition & 1 deletion data/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
# proguardFiles setting in build.gradle.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
Expand Down
Loading

0 comments on commit 5f0add3

Please sign in to comment.