Skip to content

Commit

Permalink
build: migrate to Gradle Catalog
Browse files Browse the repository at this point in the history
  • Loading branch information
urFate committed Sep 11, 2024
1 parent 79ecc87 commit 0412b4f
Show file tree
Hide file tree
Showing 5 changed files with 206 additions and 103 deletions.
115 changes: 56 additions & 59 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
plugins {
kotlin("android")
kotlin("plugin.serialization") version "1.9.20"
id ("com.android.application")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
id("com.google.dagger.hilt.android")
id("com.google.devtools.ksp")
alias(libs.plugins.kotlinAndroid)
alias(libs.plugins.androidApplication)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.googleServices)
alias(libs.plugins.crashlytics)
alias(libs.plugins.daggerHiltAndroid)
alias(libs.plugins.ksp)
}

android {
Expand Down Expand Up @@ -63,76 +64,72 @@ android {

dependencies {
// Core dependencies
val composeVersion = "1.7.0"

implementation ("androidx.core:core-ktx:1.13.1")
implementation ("androidx.lifecycle:lifecycle-runtime-ktx:2.8.5")
implementation ("androidx.activity:activity-compose:1.9.2")
implementation ("androidx.compose.ui:ui:$composeVersion")
implementation ("androidx.compose.ui:ui-graphics:$composeVersion")
implementation ("androidx.compose.ui:ui-tooling-preview:$composeVersion")
implementation ("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.5")
implementation (platform("androidx.compose:compose-bom:2024.09.00"))
implementation (platform("org.jetbrains.kotlin:kotlin-bom:1.9.23"))
implementation ("androidx.lifecycle:lifecycle-runtime-compose:2.8.5")
implementation ("androidx.core:core-splashscreen:1.0.1")
implementation ("androidx.graphics:graphics-core:1.0.1")

testImplementation ("junit:junit:4.13.2")
androidTestImplementation ("androidx.test.ext:junit:1.2.1")
androidTestImplementation ("androidx.test.espresso:espresso-core:3.6.1")
androidTestImplementation ("androidx.compose.ui:ui-test-junit4:$composeVersion")
androidTestImplementation (platform("androidx.compose:compose-bom:2024.09.00"))
debugImplementation ("androidx.compose.ui:ui-tooling:$composeVersion")
debugImplementation ("androidx.compose.ui:ui-test-manifest:$composeVersion")

implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.graphics)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.lifecycle.viewmodel.ktx)
implementation(platform(libs.androidx.compose.bom))
implementation(platform(libs.org.jetbrains.kotlin.bom))
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.core.splashscreen)
implementation(libs.androidx.graphics.core)
implementation(libs.androidx.compose.ui.test.junit4)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.test.ext.junit)
androidTestImplementation(libs.androidx.test.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
debugImplementation(libs.androidx.compose.ui.tooling)
debugImplementation(libs.androidx.compose.ui.test.manifest)

// Compose UI
val richtextVersion = "1.0.0-alpha01"

implementation ("de.mr-pine.utils:zoomables:1.4.0")
implementation ("androidx.compose.material3:material3:1.3.0")
implementation ("androidx.compose.material:material:$composeVersion")
implementation ("androidx.compose.material:material-icons-extended:$composeVersion")
implementation ("androidx.navigation:navigation-compose:2.8.0")
implementation ("com.google.accompanist:accompanist-systemuicontroller:0.30.1")
implementation ("com.google.accompanist:accompanist-placeholder-material3:0.30.1")
implementation("com.halilibo.compose-richtext:richtext-ui-material3:$richtextVersion")
implementation("com.halilibo.compose-richtext:richtext-markdown:$richtextVersion")
implementation("com.halilibo.compose-richtext:richtext-commonmark:$richtextVersion")

implementation(libs.de.mr.pine.utils.zoomables)
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.compose.material)
implementation(libs.androidx.compose.material.icons.extended)
implementation(libs.androidx.navigation.compose)
implementation(libs.com.google.accompanist.systemuicontroller)
implementation(libs.com.google.accompanist.placeholder.material3)
implementation(libs.com.halilibo.compose.richtext.ui.material3)
implementation(libs.com.halilibo.compose.richtext.markdown)
implementation(libs.com.halilibo.compose.richtext.commonmark)

// Hilt
implementation("com.google.dagger:hilt-android:2.51.1")
implementation("androidx.hilt:hilt-navigation-compose:1.2.0")
ksp("com.google.dagger:hilt-android-compiler:2.51.1")
implementation(libs.com.google.dagger.hilt.android)
implementation(libs.androidx.hilt.navigation.compose)
ksp(libs.com.google.dagger.hilt.android.compiler)


// Kotlin Serialization
implementation ("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
implementation(libs.org.jetbrains.kotlinx.serialization.json)

// Exo Player
val media3Version = "1.4.1"

implementation ("androidx.media3:media3-exoplayer:$media3Version")
implementation ("androidx.media3:media3-exoplayer-dash:$media3Version")
implementation ("androidx.media3:media3-ui:$media3Version")
implementation ("androidx.media3:media3-exoplayer-hls:$media3Version")
implementation(libs.androidx.media3.exoplayer)
implementation(libs.androidx.media3.exoplayer.dash)
implementation(libs.androidx.media3.ui)
implementation(libs.androidx.media3.exoplayer.hls)

// Firebase
implementation (platform("com.google.firebase:firebase-bom:33.2.0"))
implementation ("com.google.firebase:firebase-crashlytics-ktx")
implementation ("com.google.firebase:firebase-analytics-ktx")
implementation ("com.google.firebase:firebase-messaging-ktx")
implementation ("com.google.firebase:firebase-inappmessaging-display")
implementation(platform(libs.com.google.firebase.bom))
implementation(libs.firebase.crashlytics.ktx)
implementation(libs.firebase.analytics.ktx)
implementation(libs.firebase.messaging.ktx)
implementation(libs.firebase.inappmessaging.display)

// Image processing
implementation ("io.coil-kt:coil-compose:2.5.0")
implementation("io.coil-kt:coil-svg:2.6.0")
implementation(libs.io.coil.kt.compose)
implementation(libs.io.coil.kt.svg)

// Network
implementation("com.github.kittinunf.fuel:fuel:3.0.0-alpha1")
implementation(libs.com.github.kittinunf.fuel)

// Datastore
implementation ("androidx.datastore:datastore-preferences:1.1.1")
implementation(libs.androidx.datastore.preferences)

// Project modules
implementation (project(":core"))
Expand Down
17 changes: 9 additions & 8 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
buildscript {
dependencies {
classpath("com.google.gms:google-services:4.4.2")
classpath(libs.google.services)
}
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
kotlin("android") version "1.9.20" apply false
id ("com.android.application") version "8.6.0" apply false
id ("com.android.library") version "8.6.0" apply false
id("com.google.devtools.ksp") version "1.9.22-1.0.17" apply false
id("com.google.gms.google-services") version "4.4.2" apply false
id("com.google.firebase.crashlytics") version "3.0.2" apply false
id("com.google.dagger.hilt.android") version "2.51.1" apply false
alias(libs.plugins.kotlinAndroid) apply false
alias(libs.plugins.androidApplication) apply false
alias(libs.plugins.androidLibrary) apply false
alias(libs.plugins.compose.compiler) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.googleServices) apply false
alias(libs.plugins.crashlytics) apply false
alias(libs.plugins.daggerHiltAndroid) apply false
}
39 changes: 18 additions & 21 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("plugin.serialization") version "1.9.20"
id("com.google.devtools.ksp")
id("kotlin-parcelize")
alias(libs.plugins.androidLibrary)
alias(libs.plugins.kotlinAndroid)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.ksp)
}

android {
Expand Down Expand Up @@ -39,22 +38,20 @@ android {
}

dependencies {
implementation("androidx.core:core-ktx:1.13.1")
implementation("androidx.appcompat:appcompat:1.7.0")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.2.1")
androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
implementation("androidx.room:room-common:2.6.1")
implementation ("com.google.accompanist:accompanist-systemuicontroller:0.30.1")
implementation ("androidx.media3:media3-common:1.4.1")
implementation ("androidx.datastore:datastore-preferences:1.1.1")
implementation(libs.androidx.core.ktx)
implementation(libs.org.jetbrains.kotlinx.serialization.json)
implementation(libs.com.google.accompanist.systemuicontroller)
implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.room.common)
implementation(libs.androidx.media3.common)
implementation(libs.androidx.appcompat)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.test.ext.junit)
androidTestImplementation(libs.androidx.test.espresso.core)

// Room
val roomVersion = "2.6.1"

implementation ("androidx.room:room-common:$roomVersion")
api ("androidx.room:room-runtime:$roomVersion")
ksp ("androidx.room:room-compiler:$roomVersion")
implementation ("androidx.room:room-ktx:$roomVersion")
api(libs.androidx.room.runtime)
ksp(libs.androidx.room.compiler)
implementation(libs.androidx.room.common)
implementation(libs.androidx.room.ktx)
}
32 changes: 17 additions & 15 deletions data/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
id("com.android.library")
kotlin("android")
kotlin("plugin.serialization") version "1.9.20"
alias(libs.plugins.androidLibrary)
alias(libs.plugins.kotlinAndroid)
alias(libs.plugins.kotlinSerialization)
}

android {
Expand Down Expand Up @@ -34,20 +34,22 @@ android {
}

dependencies {
implementation(project(":core"))
implementation("androidx.core:core-ktx:1.13.1")
implementation("androidx.appcompat:appcompat:1.7.0")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.2.1")
androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
runtimeOnly("org.jetbrains.kotlin:kotlin-reflect:1.9.23")
implementation ("androidx.datastore:datastore-preferences:1.1.1")
runtimeOnly(libs.kotlin.refrect)
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.org.jetbrains.kotlinx.serialization.json)
implementation (libs.androidx.datastore.preferences)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.test.ext.junit)
androidTestImplementation(libs.androidx.test.espresso.core)

// Network
implementation("com.github.kittinunf.fuel:fuel:3.0.0-alpha1")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation(libs.com.github.kittinunf.fuel)
implementation(libs.com.squareup.okhttp3.okhttp)

// Date-time
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.1")
implementation(libs.org.jetbrains.kotlinx.datetime)

// Project modules
implementation(project(":core"))
}
106 changes: 106 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
[versions]
googleServicesVersion = "4.4.2"
kotlin = "2.0.20"
ksp = "2.0.20-1.0.25"
googleServices = "4.4.2"
crashlytics = "3.0.2"
daggerHiltAndroid = "2.51.1"
agp = "8.6.0"
androidxCore = "1.13.1"
androidxCoreSplashScreen = "1.0.1"
androidxLifecycle = "2.8.5"
androidxActivity = "1.9.2"
androidxComposeUi = "1.7.0"
androidxCompose = "2024.09.00"
orgJetbrainsKotlin = "1.9.23"
androidxGraphics = "1.0.1"
junit = "4.13.2"
androidxTestExt = "1.1.5"
androidxTestEspresso = "3.5.0"
deMrPineUtils = "1.4.0"
androidxComposeMaterial3 = "1.2.1"
androidxComposeMaterial = "1.7.0"
androidxNavigation = "2.8.0"
comGoogleAccompanist = "0.30.1"
comHaliliboComposeRichtext = "1.0.0-alpha01"
comGoogleDagger = "2.51.1"
androidxHilt = "1.2.0"
orgJetbrainsKotlinx = "1.6.3"
orgJetbrainsKotlinxDateTime = "0.6.1"
androidxMedia3 = "1.4.1"
comGoogleFirebase = "33.2.0"
ioCoilKt = "2.6.0"
comSquareupOkhttp3 = "4.12.0"
comGithubKittinunfFuel = "3.0.0-alpha1"
androidxDatastore = "1.1.1"
androidxRoom = "2.6.1"
androidxAppcompat = "1.7.0"

[libraries]
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidxCore" }
androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycle" }
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidxActivity" }
androidx-compose-ui = { module = "androidx.compose.ui:ui", version.ref = "androidxComposeUi" }
androidx-compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics", version.ref = "androidxComposeUi" }
androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "androidxComposeUi" }
androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidxLifecycle" }
androidx-compose-bom = { module = "androidx.compose:compose-bom", version.ref = "androidxCompose" }
firebase-analytics-ktx = { module = "com.google.firebase:firebase-analytics-ktx" }
firebase-crashlytics-ktx = { module = "com.google.firebase:firebase-crashlytics-ktx" }
firebase-inappmessaging-display = { module = "com.google.firebase:firebase-inappmessaging-display" }
firebase-messaging-ktx = { module = "com.google.firebase:firebase-messaging-ktx" }
google-services = { module = "com.google.gms:google-services", version.ref = "googleServicesVersion" }
org-jetbrains-kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "orgJetbrainsKotlin" }
androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidxLifecycle" }
androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "androidxCoreSplashScreen" }
androidx-graphics-core = { module = "androidx.graphics:graphics-core", version.ref = "androidxGraphics" }
junit = { module = "junit:junit", version.ref = "junit" }
androidx-test-ext-junit = { module = "androidx.test.ext:junit", version.ref = "androidxTestExt" }
androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidxTestEspresso" }
androidx-compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "androidxComposeUi" }
androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "androidxComposeUi" }
androidx-compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "androidxComposeUi" }
de-mr-pine-utils-zoomables = { module = "de.mr-pine.utils:zoomables", version.ref = "deMrPineUtils" }
androidx-compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "androidxComposeMaterial3" }
androidx-compose-material = { module = "androidx.compose.material:material", version.ref = "androidxComposeMaterial" }
androidx-compose-material-icons-extended = { module = "androidx.compose.material:material-icons-extended", version.ref = "androidxComposeMaterial" }
androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidxNavigation" }
com-google-accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "comGoogleAccompanist" }
com-google-accompanist-placeholder-material3 = { module = "com.google.accompanist:accompanist-placeholder-material3", version.ref = "comGoogleAccompanist" }
com-halilibo-compose-richtext-ui-material3 = { module = "com.halilibo.compose-richtext:richtext-ui-material3", version.ref = "comHaliliboComposeRichtext" }
com-halilibo-compose-richtext-markdown = { module = "com.halilibo.compose-richtext:richtext-markdown", version.ref = "comHaliliboComposeRichtext" }
com-halilibo-compose-richtext-commonmark = { module = "com.halilibo.compose-richtext:richtext-commonmark", version.ref = "comHaliliboComposeRichtext" }
com-google-dagger-hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "comGoogleDagger" }
androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "androidxHilt" }
com-google-dagger-hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "comGoogleDagger" }
org-jetbrains-kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "orgJetbrainsKotlinx" }
androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "androidxMedia3" }
androidx-media3-exoplayer-dash = { module = "androidx.media3:media3-exoplayer-dash", version.ref = "androidxMedia3" }
androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "androidxMedia3" }
androidx-media3-exoplayer-hls = { module = "androidx.media3:media3-exoplayer-hls", version.ref = "androidxMedia3" }
com-google-firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "comGoogleFirebase" }
io-coil-kt-compose = { module = "io.coil-kt:coil-compose", version.ref = "ioCoilKt" }
io-coil-kt-svg = { module = "io.coil-kt:coil-svg", version.ref = "ioCoilKt" }
com-github-kittinunf-fuel = { module = "com.github.kittinunf.fuel:fuel", version.ref = "comGithubKittinunfFuel" }
androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "androidxDatastore" }
androidx-room-common = { module = "androidx.room:room-common", version.ref = "androidxRoom" }
androidx-media3-common = { module = "androidx.media3:media3-common", version.ref = "androidxMedia3" }
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidxAppcompat" }
androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "androidxRoom" }
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "androidxRoom" }
androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "androidxRoom" }
kotlin-refrect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin"}
com-squareup-okhttp3-okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "comSquareupOkhttp3" }
org-jetbrains-kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "orgJetbrainsKotlinxDateTime" }

[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
androidLibrary = { id = "com.android.library", version.ref = "agp" }
kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin"}
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin"}
kotlinParcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin"}
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
googleServices = { id = "com.google.gms.google-services", version.ref = "googleServices" }
crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "crashlytics" }
daggerHiltAndroid = { id = "com.google.dagger.hilt.android", version.ref = "daggerHiltAndroid" }

0 comments on commit 0412b4f

Please sign in to comment.