Skip to content

Commit

Permalink
Merge pull request #66 from gabrielbmoro/feature/playing-with-gradle-…
Browse files Browse the repository at this point in the history
…features

Refactoring Gradle Code
  • Loading branch information
gabrielbmoro committed Sep 17, 2023
2 parents 105b786 + 277d151 commit ec6cdef
Show file tree
Hide file tree
Showing 8 changed files with 55 additions and 62 deletions.
9 changes: 3 additions & 6 deletions src/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ dependencies {

implementation(libs.timber)

// Koin
// Hilt
implementation(libs.hilt.android)
kapt(libs.hilt.android.compiler)

Expand All @@ -81,11 +81,8 @@ dependencies {

// Compose
implementation(platform(libs.compose.bom))
implementation(libs.compose.bom.ui)
implementation(libs.compose.bom.preview)
implementation(libs.compose.bom.activity)
debugImplementation(libs.compose.bom.ui.tooling)
debugImplementation(libs.compose.bom.ui.test.manifest)
implementation(libs.bundles.compose.impl)
debugImplementation(libs.bundles.compose.debug.impl)
implementation(libs.bundles.compose.extras)

// Navigation
Expand Down
64 changes: 33 additions & 31 deletions src/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import com.android.build.gradle.LibraryExtension
import com.android.build.gradle.LibraryPlugin

plugins {
id("com.google.devtools.ksp") version "1.8.10-1.0.9" apply false
id("com.google.dagger.hilt.android") version "2.44" apply false
id("org.jlleitschuh.gradle.ktlint") version "11.5.1"
alias(libs.plugins.ksp) apply false
alias(libs.plugins.hilt) apply false
alias(libs.plugins.ktlint)
}

buildscript {
Expand All @@ -33,13 +33,15 @@ allprojects {

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class.java).configureEach {
kotlinOptions {
jvmTarget = ConfigData.JAVA_VM_TARGET
jvmTarget = Config.javaVMTarget
}
}
}

val ktLintPluginId: String = libs.plugins.ktlint.get().pluginId

subprojects {
apply(plugin = "org.jlleitschuh.gradle.ktlint") // Version should be inherited from parent
apply(plugin = ktLintPluginId) // Version should be inherited from parent

// Accessing the `PluginContainer` in order to use `whenPluginAdded` function
project.plugins.configure(project = project)
Expand Down Expand Up @@ -75,18 +77,18 @@ fun PluginContainer.configure(project: Project) {

// Extension function on `AppExtension`
fun AppExtension.applyCommons() {
compileSdkVersion(ConfigData.COMPILE_SDK)
compileSdkVersion(Config.compileSdk)

defaultConfig {
minSdk = ConfigData.MIN_SDK
targetSdk = ConfigData.TARGET_SDK
versionCode = ConfigData.versionCode()
versionName = ConfigData.versionName()
minSdk = Config.minSdk
targetSdk = Config.targetSdk
versionCode = Config.versionCode()
versionName = Config.versionName()

testInstrumentationRunner = ConfigData.TEST_INSTRUMENTATION_RUNNER
testInstrumentationRunner = Config.testInstrumentationRunner
vectorDrawables.useSupportLibrary = true

applicationId = ConfigData.APPLICATION_ID
applicationId = Config.applicationId

vectorDrawables.useSupportLibrary = true

Expand All @@ -102,30 +104,30 @@ fun AppExtension.applyCommons() {
}

compileOptions {
sourceCompatibility = ConfigData.JAVA_COMPATIBILITY_VERSION
targetCompatibility = ConfigData.JAVA_COMPATIBILITY_VERSION
sourceCompatibility = Config.javaCompatibilityVersion
targetCompatibility = Config.javaCompatibilityVersion
}

buildFeatures.compose = true

namespace = ConfigData.APPLICATION_ID
namespace = Config.applicationId
}

// Extension function on `LibraryExtension`
fun LibraryExtension.applyCommons() {
compileSdk = ConfigData.COMPILE_SDK
compileSdk = Config.compileSdk

defaultConfig {
minSdk = ConfigData.MIN_SDK
minSdk = Config.minSdk
}

composeOptions {
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
}

compileOptions {
sourceCompatibility = ConfigData.JAVA_COMPATIBILITY_VERSION
targetCompatibility = ConfigData.JAVA_COMPATIBILITY_VERSION
sourceCompatibility = Config.javaCompatibilityVersion
targetCompatibility = Config.javaCompatibilityVersion
}

testOptions {
Expand All @@ -139,24 +141,24 @@ tasks.register("clean", Delete::class) {
delete(rootProject.buildDir)
}

object ConfigData {
const val APPLICATION_ID = "com.gabrielbmoro.moviedb"
const val MIN_SDK = 22
const val TARGET_SDK = 33
const val COMPILE_SDK = 33
private const val LOCAL_VERSION_CODE = 10
private const val LOCAL_VERSION_NAME = "1.0.0"
val JAVA_COMPATIBILITY_VERSION = JavaVersion.VERSION_17
const val JAVA_VM_TARGET = "17"
const val TEST_INSTRUMENTATION_RUNNER = "androidx.test.runner.AndroidJUnitRunner"
object Config {
const val applicationId = "com.gabrielbmoro.moviedb"
const val minSdk = 22
const val targetSdk = 33
const val compileSdk = 33
private const val localVersionCode = 10
private const val localVersionName = "1.0.0"
val javaCompatibilityVersion = JavaVersion.VERSION_17
const val javaVMTarget = "17"
const val testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

fun versionCode(): Int {
val versionCode = try {
System.getenv("BITRISE_BUILD_NUMBER").toIntOrNull()
} catch (nullPointerException: NullPointerException) {
null
}
return versionCode ?: LOCAL_VERSION_CODE
return versionCode ?: localVersionCode
}

fun versionName(): String {
Expand All @@ -166,6 +168,6 @@ object ConfigData {
null
}

return versionName?.ifEmpty { LOCAL_VERSION_NAME } ?: LOCAL_VERSION_NAME
return versionName?.ifEmpty { localVersionName } ?: localVersionName
}
}
9 changes: 3 additions & 6 deletions src/core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,16 @@ dependencies {
androidTestImplementation(libs.androidx.test.ext.junit)
androidTestImplementation(libs.espresso.core)

// Koin
// Hilt
implementation(libs.hilt.android)
kapt(libs.hilt.android.compiler)

implementation(libs.timber)

// Compose
implementation(platform(libs.compose.bom))
implementation(libs.compose.bom.ui)
implementation(libs.compose.bom.preview)
implementation(libs.compose.bom.activity)
debugImplementation(libs.compose.bom.ui.tooling)
debugImplementation(libs.compose.bom.ui.test.manifest)
implementation(libs.bundles.compose.impl)
debugImplementation(libs.bundles.compose.debug.impl)
implementation(libs.bundles.compose.extras)

// Coil
Expand Down
7 changes: 2 additions & 5 deletions src/feature_details/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,8 @@ dependencies {

// Compose
implementation(platform(libs.compose.bom))
implementation(libs.compose.bom.ui)
implementation(libs.compose.bom.preview)
implementation(libs.compose.bom.activity)
debugImplementation(libs.compose.bom.ui.tooling)
debugImplementation(libs.compose.bom.ui.test.manifest)
implementation(libs.bundles.compose.impl)
debugImplementation(libs.bundles.compose.debug.impl)
implementation(libs.bundles.compose.extras)

// Player
Expand Down
7 changes: 2 additions & 5 deletions src/feature_movies/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,8 @@ dependencies {

// Compose
implementation(platform(libs.compose.bom))
implementation(libs.compose.bom.ui)
implementation(libs.compose.bom.preview)
implementation(libs.compose.bom.activity)
debugImplementation(libs.compose.bom.ui.tooling)
debugImplementation(libs.compose.bom.ui.test.manifest)
implementation(libs.bundles.compose.impl)
debugImplementation(libs.bundles.compose.debug.impl)
implementation(libs.bundles.compose.extras)

implementation(libs.bundles.lifecycle)
Expand Down
7 changes: 2 additions & 5 deletions src/feature_wishlist/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,8 @@ dependencies {

// Compose
implementation(platform(libs.compose.bom))
implementation(libs.compose.bom.ui)
implementation(libs.compose.bom.preview)
implementation(libs.compose.bom.activity)
debugImplementation(libs.compose.bom.ui.tooling)
debugImplementation(libs.compose.bom.ui.test.manifest)
implementation(libs.bundles.compose.impl)
debugImplementation(libs.bundles.compose.debug.impl)
implementation(libs.bundles.compose.extras)

// Test
Expand Down
10 changes: 8 additions & 2 deletions src/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ core-ktx = "1.10.1"
androidx-test-ext-junit = "1.1.5"
espresso-core = "3.5.1"
material = "1.9.0"
ktlint_plugin = "11.5.1"
ksp = "1.8.10-1.0.9"

[libraries]
androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hilt-navigation-compose" }
Expand Down Expand Up @@ -100,9 +102,13 @@ room = ["room_ktx", "room_runtime"]
lifecycle = ["lifecycle_livedata_ktx", "lifecycle_extensions", "lifecycle_viewmodel_ktx", "lifecycle_compose_runtime"]
test = ["junit", "arc_core_common", "arc_core_runtime", "arc_core_testing", "truth", "mockk", "kotlinx_coroutines_test"]
compose_extras = ["compose_material_3", "navigation_compose", "paging_compose"]
compose_impl = ["compose_bom_ui", "compose_bom_preview", "compose_bom_activity"]
compose_debug_impl = ["compose_bom_ui_tooling", "compose_bom_ui_test_manifest"]

retrofit = ["retrofit", "retrofit_converter_json", "gson"]
hilt = ["hilt-android", "androidx-hilt-navigation-compose"]

[plugins]
androidLibrary = { id = "com.android.library", version.ref = "agp" }
kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin1810" }
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint_plugin" }
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt-android" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
4 changes: 2 additions & 2 deletions src/repository/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ plugins {
id("com.android.library")
kotlin("android")
kotlin("kapt")
id("com.google.devtools.ksp")
alias(libs.plugins.ksp)
id("kotlin-parcelize")
}

Expand All @@ -23,7 +23,7 @@ dependencies {

implementation(libs.paging.compose)

// Koin
// Hilt
implementation(libs.hilt.android)
kapt(libs.hilt.android.compiler)

Expand Down

0 comments on commit ec6cdef

Please sign in to comment.