Skip to content

Commit

Permalink
Merge pull request #117 from Wottrich/issues-101
Browse files Browse the repository at this point in the history
Migrate to Gradle Version Catalogs
  • Loading branch information
waseefakhtar authored Nov 25, 2023
2 parents 1657795 + a825630 commit 77be76c
Show file tree
Hide file tree
Showing 4 changed files with 194 additions and 145 deletions.
124 changes: 0 additions & 124 deletions app/build.gradle

This file was deleted.

107 changes: 107 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("kotlin-kapt")
id("dagger.hilt.android.plugin")
id("kotlin-parcelize")
id("com.google.devtools.ksp")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
}

android {
compileSdk = 34

defaultConfig {
applicationId = "com.waseefakhtar.doseapp"
minSdk = 21
targetSdk = 34
versionCode = 4
versionName = "1.2.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}

buildTypes {
getByName("release") {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get()
}
packaging {
resources.excludes.apply {
add("/META-INF/{AL2.0,LGPL2.1}")
}
}
ksp {
arg("room.schemaLocation", "$projectDir/schemas")
}

namespace = "com.waseefakhtar.doseapp"
}

dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.compose.ui)
implementation(libs.compose.material3)
implementation(libs.compose.navigation)
implementation(libs.compose.fundation)

implementation(libs.compose.preview)

implementation(libs.compose.activity)

// Lifecycle
implementation(libs.lifecycle.runtime.ktx)
implementation(libs.lifecycle.viewmodel.compose)

// Hilt
implementation(libs.hilt.android)
kapt(libs.hilt.compiler)
kapt(libs.hilt.androidx.compiler)
implementation(libs.hilt.navigation.compose)

// Gson
implementation(libs.gson)

// Room
implementation(libs.room.runtime)
implementation(libs.room.ktx)
ksp(libs.room.compiler)

// OkHttp
implementation(platform(libs.okhttp.bom))
implementation(libs.okhttp)
implementation(libs.okhttp.logging.interceptor)

// Firebase
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.analytics)
implementation(libs.firebase.crashlytics)

// Accompanist
implementation(libs.accompanist.permission)

testImplementation(libs.junit)
androidTestImplementation(libs.junit.ext)
androidTestImplementation(libs.espresso.core)
androidTestImplementation(libs.compose.junit.ui)
debugImplementation(libs.compose.ui.tooling.debug)
debugImplementation(libs.compose.ui.test.manifest)
}
31 changes: 10 additions & 21 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,33 +1,22 @@
buildscript {
ext {
// Before updating, check Kotlin compatibility with Compose Compiler: https://developer.android.com/jetpack/androidx/releases/compose-kotlin#pre-release_kotlin_compatibility
// Also check Jetpack libraries update to go along with it: https://developer.android.com/jetpack/androidx/versions/all-channel
compose_compiler_version = '1.5.4'
compose_version = '1.5.4'
hilt_version = '2.47'
ktlint_version = '10.3.0'
google_services_version = '4.3.13'
firebase_crashlytics_version = '2.9.1'
}

repositories {
google()
mavenCentral()
}

dependencies {
classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
classpath "org.jlleitschuh.gradle:ktlint-gradle:$ktlint_version"
classpath "com.google.gms:google-services:$google_services_version"
classpath "com.google.firebase:firebase-crashlytics-gradle:$firebase_crashlytics_version"
classpath(libs.hilt.gradle.plugin)
classpath(libs.ktlint.gradle.plugin)
classpath(libs.google.services.gradle.plugin)
classpath(libs.firebase.crashlytics.gradle.plugin)
}
}// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '8.1.2' apply false
id 'com.android.library' version '8.1.2' apply false
id 'org.jetbrains.kotlin.android' version '1.9.20' apply false
id "org.jlleitschuh.gradle.ktlint" version "10.3.0"
id 'com.google.devtools.ksp' version '1.9.0-1.0.12' apply false
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.jetbrains.kotlin.android) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.ktlint)
}

subprojects {
Expand All @@ -48,6 +37,6 @@ allprojects {
}
}

task clean(type: Delete) {
tasks.register('clean', Delete) {
delete rootProject.buildDir
}
77 changes: 77 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
[versions]
accompanistPermissions = "0.33.2-alpha"
activity = "1.8.0"
androidxHilt = "1.1.0"
compose = "1.6.0-alpha08"
composeCompiler = "1.5.4"
composeNavigation = "2.7.5"
core = "1.12.0"
espresso = "3.5.1"
firebase = "32.5.0"
firebaseCrashlyticsGradle = "2.9.1"
gson = "2.10"
gradle = "8.1.2"
googleServices = "4.3.13"
hilt = "2.47"
junit = "4.13.2"
junitExt = "1.1.5"
kotlin = "1.9.20" # Must be aligned with KSP version
ksp = "1.9.20-1.0.14" # KSP version must be aligned with kotlin https://github.com/google/ksp/releases
ktlint = "10.3.0"
lifecycle = "2.7.0-beta01"
room = "2.6.0"
material3 = "1.2.0-alpha10"
okhttp = "4.10.0"
[libraries]
# Accompanist
accompanist-permission = { group="com.google.accompanist", name="accompanist-permissions", version.ref="accompanistPermissions" }
# Android
androidx-core-ktx = { group="androidx.core", name="core-ktx", version.ref="core" }
# Compose
compose-activity = { group="androidx.activity", name="activity-compose", version.ref="activity" }
compose-fundation = { group="androidx.compose.foundation", name="foundation", version.ref="compose" }
compose-material3 = { group="androidx.compose.material3", name="material3", version.ref = "material3" }
compose-junit-ui = { group="androidx.compose.ui", name="ui-test-junit4", version.ref="compose" }
compose-navigation = { group="androidx.navigation", name="navigation-compose", version.ref="composeNavigation" }
compose-preview = { group="androidx.compose.ui", name="ui-tooling-preview", version.ref="compose" }
compose-ui-tooling-debug = { group="androidx.compose.ui", name="ui-tooling", version.ref="compose" }
compose-ui-test-manifest = { group="androidx.compose.ui", name="ui-test-manifest", version.ref="compose" }
compose-ui = { group="androidx.compose.ui", name="ui", version.ref="compose" }
# Firebase
firebase-analytics = { group="com.google.firebase", name="firebase-analytics" }
firebase-crashlytics = { group="com.google.firebase", name="firebase-crashlytics" }
firebase-bom = { group="com.google.firebase", name="firebase-bom", version.ref="firebase" }
firebase-crashlytics-gradle-plugin = { group="com.google.firebase", name="firebase-crashlytics-gradle", version.ref="firebaseCrashlyticsGradle" }
# Google Services
google-services-gradle-plugin = { group="com.google.gms", name="google-services", version.ref="googleServices" }
# Gson
gson = { group="com.google.code.gson", name="gson", version.ref="gson" }
# Hilt
hilt-android = { group="com.google.dagger", name="hilt-android", version.ref="hilt"}
hilt-compiler = { group="com.google.dagger", name="hilt-compiler", version.ref="hilt"}
hilt-gradle-plugin = { group="com.google.dagger", name="hilt-android-gradle-plugin", version.ref="hilt" }
hilt-androidx-compiler = { group= "androidx.hilt", name= "hilt-compiler", version.ref="androidxHilt"}
hilt-navigation-compose = { group= "androidx.hilt", name= "hilt-navigation-compose", version.ref="androidxHilt"}
# Ktlin
ktlint-gradle-plugin = { group="org.jlleitschuh.gradle", name="ktlint-gradle", version.ref="ktlint" }
# Lifecycle
lifecycle-runtime-ktx = { group="androidx.lifecycle", name="lifecycle-runtime-ktx", version.ref="lifecycle" }
lifecycle-viewmodel-compose = { group="androidx.lifecycle", name="lifecycle-viewmodel-compose", version.ref="lifecycle" }
# OkHttp
okhttp = { group="com.squareup.okhttp3", name="okhttp" }
okhttp-logging-interceptor = { group="com.squareup.okhttp3", name="logging-interceptor" }
okhttp-bom = { group="com.squareup.okhttp3", name="okhttp-bom", version.ref="okhttp" }
# Room
room-runtime = { group="androidx.room", name="room-runtime", version.ref="room"}
room-ktx = { group="androidx.room", name="room-ktx", version.ref="room"}
room-compiler = { group="androidx.room", name="room-compiler", version.ref="room"}
# Tests
junit = { group="junit", name="junit", version.ref="junit" }
junit-ext = { group="androidx.test.ext", name="junit", version.ref="junitExt" }
espresso-core = { group="androidx.test.espresso", name="espresso-core", version.ref="espresso" }
[plugins]
android-application = { id="com.android.application", version.ref="gradle" }
android-library = { id="com.android.library", version.ref="gradle" }
jetbrains-kotlin-android = { id="org.jetbrains.kotlin.android", version.ref="kotlin" }
ktlint = { id="org.jlleitschuh.gradle.ktlint", version.ref="ktlint" }
ksp = { id="com.google.devtools.ksp", version.ref="ksp" }

0 comments on commit 77be76c

Please sign in to comment.