diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..9f9eae7 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,161 @@ +[versions] +android-gradle-plugin = "8.3.1" +core-ktx = "1.12.0" +junit = "4.13.2" +androidx-test-ext-junit = "1.1.5" +espresso-core = "3.5.1" +appcompat = "1.6.1" +material = "1.11.0" +constraintlayout = "2.1.4" +firebase-bom = "32.7.0" +crashlytics = "2.9.9" + +ksp = "1.9.10-1.0.13" +androidx-app-compat = "1.6.1" +androidx-core = "1.12.0" +androidx-lifecycle = "2.6.2" +androidx-navigation = "2.7.6" +androidx-constraint-layout = "2.1.4" +androidx-activity-ktx = "1.8.2" +androidx-fragment-ktx = "1.6.2" +androidx-recycler-view = "1.3.2" +androidx-splash-screen = "1.0.1" +androidx-datastore = "1.0.0" + +kotlin = "1.9.10" +kotlinx-coroutines = "1.7.3" +kotlinx-serialization-json = "1.5.1" +kotlinx-datetime = "0.4.0" +ktlint = "11.5.1" + +retrofit = "2.9.0" +retrofit-kotlinx-serialization-json = "1.0.0" +okhttp = "4.11.0" + +hilt = "2.48" +room = "2.5.2" +orbit = "6.1.0" + +timber = "5.0.1" +encrypted-datastore = "1.7.21-1.0.8-1.1.0-alpha01" +coil = "2.4.0" +lottie = "6.0.0" +jsoup = "1.13.1" + +detekt = "1.23.1" +kakao-login = "2.19.0" + +google-service = "4.4.0" +process-pheonix = "2.1.2" +preference = "1.2.1" +core-splashscreen = "1.0.1" + +viewpager-indicator = "5.0" + +[plugins] +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" } +android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } +android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" } +hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } +detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } +google-service = { id = "com.google.gms.google-services", version.ref = "google-service" } +navigation-safeargs = { id = "androidx.navigation.safeargs.kotlin", version.ref = "androidx-navigation" } + +sopt-android-application = { id = "sopt.android.application", version = "unspecified" } +sopt-android-library = { id = "sopt.android.library", version = "unspecified" } +sopt-android-hilt = { id = "sopt.android.hilt", version = "unspecified"} +sopt-java-library = { id = "sopt.java.library", version = "unspecified" } +sopt-plugin-feature = { id = "sopt.plugin.feature", version = "unspecified" } + +[libraries] +# Dependencies of the included build-logic +android-gradle-plugin = { group = "com.android.tools.build", name = "gradle", version.ref = "android-gradle-plugin" } +kotlin-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } +ksp-gradle-plugin = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" } +core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" } +junit = { group = "junit", name = "junit", version.ref = "junit" } +androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-ext-junit" } +espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso-core" } +appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" } +gitlab-detekt-plugin-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-plugin-formatting", version.ref = "detekt" } + +hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" } +hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" } +hilt-core = { group = "com.google.dagger", name = "hilt-core", version.ref = "hilt" } +hilt-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" } +hilt-testing-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } + +orbit-core = { group = "org.orbit-mvi", name = "orbit-core", version.ref = "orbit" } +orbit-viewmodel = { group = "org.orbit-mvi", name = "orbit-viewmodel", version.ref = "orbit" } + +kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" } +kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } +kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization-json" } +kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinx-datetime" } + +retrofit-core = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } +retrofit-kotlin-serialization = { group = "com.jakewharton.retrofit", name = "retrofit2-kotlinx-serialization-converter", version.ref = "retrofit-kotlinx-serialization-json" } +okhttp-logging = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" } + +navigation-fragment-ktx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "androidx-navigation" } +navigation-ui-ktx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "androidx-navigation" } + +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-app-compat" } +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidx-core" } +androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidx-constraint-layout" } +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" } +androidx-lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" } +androidx-activity-ktx = { group = "androidx.activity", name = "activity-ktx", version.ref = "androidx-activity-ktx" } +androidx-fragment-ktx = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "androidx-fragment-ktx" } +androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "androidx-recycler-view" } +androidx-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "androidx-splash-screen" } + +google-material = { group = "com.google.android.material", name = "material", version.ref = "material" } + +timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timber" } +androidx-datastore-core = { group = "androidx.datastore", name = "datastore", version.ref = "androidx-datastore" } +androidx-datastore-preferences = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "androidx-datastore" } +encrypted-datastore-preference-ksp = { group = "tech.thdev", name = "useful-encrypted-data-store-preferences-ksp", version.ref = "encrypted-datastore" } +encrypted-datastore-preference-ksp-annotations = { group = "tech.thdev", name = "useful-encrypted-data-store-preferences-ksp-annotations", version.ref = "encrypted-datastore" } +encrypted-datastore-preference-security = { group = "tech.thdev", name = "useful-encrypted-data-store-preferences-security", version.ref = "encrypted-datastore" } + +crashlytics-plugin = { module = "com.google.firebase:firebase-crashlytics-gradle", version.ref = "crashlytics" } +firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebase-bom" } +firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging-ktx" } +firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics-ktx" } +firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx" } +firebase-remoteConfig = { group = "com.google.firebase", name = "firebase-config-ktx" } +firebase-database = { group = "com.google.firebase", name = "firebase-database-ktx" } + +coil = { group = "io.coil-kt", name = "coil", version.ref = "coil" } +lottie = { group = "com.airbnb.android", name = "lottie", version.ref = "lottie" } +jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoup" } + +room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" } +room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" } +room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" } + +viewpager-indicator = { group = "com.tbuonomo", name = "dotsindicator", version.ref = "viewpager-indicator" } + +# formatting +detekt-plugin-formatting = { group = "io.gitlab.arturbosch.detekt", name = "detekt-formatting", version.ref = "detekt" } + +kakao-login = { group = "com.kakao.sdk", name = "v2-user", version.ref = "kakao-login" } + +process-phoenix = { module = "com.jakewharton:process-phoenix", version.ref = "process-pheonix" } + +[bundles] +firebase = ["firebase-analytics", "firebase-database", "firebase-messaging", "firebase-remoteConfig"] +androidx-lifecycle = ["androidx-lifecycle-runtime-ktx", "androidx-lifecycle-viewmodel-ktx"] +androidx-navigation = ["navigation-fragment-ktx", "navigation-ui-ktx"] +coroutine = ["kotlinx-coroutines-android", "kotlinx-coroutines-core"] +encrypted-datastore = ["encrypted-datastore-preference-ksp-annotations","encrypted-datastore-preference-security"] +datastore = ["androidx-datastore-core", "androidx-datastore-preferences"] + +orbit = ["orbit-core", "orbit-viewmodel"] \ No newline at end of file