diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c79d1a14f..5efecc293 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,13 +1,13 @@ import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") - id("kotlin-kapt") - id("org.jetbrains.kotlin.plugin.serialization") version "1.9.0" - id("com.google.dagger.hilt.android") - id("kotlin-parcelize") - id("com.google.gms.google-services") + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.hilt.android) + alias(libs.plugins.google.services) + alias(libs.plugins.parcelize) + alias(libs.plugins.kotlin.kapt) } android { @@ -18,8 +18,8 @@ android { applicationId = "com.into.websoso" minSdk = 30 targetSdk = 34 - versionCode = 10008 - versionName = "1.0.8" + versionCode = libs.versions.versionCode.get().toInt() + versionName = libs.versions.versionName.get() buildConfigField("String", "S3_BASE_URL", gradleLocalProperties(rootDir).getProperty("s3.url")) buildConfigField("String", "KAKAO_APP_KEY", gradleLocalProperties(rootDir).getProperty("kakao.app.key")) @@ -63,70 +63,43 @@ android { } dependencies { - - implementation("androidx.core:core-ktx:1.9.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.11.0") - implementation("androidx.constraintlayout:constraintlayout:2.1.4") - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") - - // Retrofit2 - implementation("com.squareup.retrofit2:retrofit:2.11.0") - - // Kotlinx Serialization - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1") - implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0") - - // Okhttp3 - implementation("com.squareup.okhttp3:okhttp:4.11.0") - implementation("com.squareup.okhttp3:logging-interceptor:4.10.0") - - // ViewPager2 - implementation("androidx.viewpager2:viewpager2:1.0.0") - - // coroutine - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4") - - // fragment-ktx - implementation("androidx.fragment:fragment-ktx:1.6.1") - - // viewModel - implementation("androidx.lifecycle:lifecycle-extensions:2.2.0") - - // coil - implementation("io.coil-kt:coil:2.6.0") - implementation("io.coil-kt:coil-gif:2.6.0") - implementation("io.coil-kt:coil-svg:2.6.0") - implementation("jp.wasabeef.transformers:coil:1.0.6") - - // Pager Dots Indicator - implementation("com.tbuonomo:dotsindicator:5.0") - - // Hilt - implementation("com.google.dagger:hilt-android:2.48") - kapt("com.google.dagger:hilt-compiler:2.48") - - // lottie - implementation("com.airbnb.android:lottie:5.0.2") - - // SwipeRefreshLayout - implementation("com.github.SimformSolutionsPvtLtd:SSPullToRefresh:1.5.2") - - // DataStore - implementation("androidx.datastore:datastore-preferences:1.1.1") - - // KAKAO - implementation("com.kakao.sdk:v2-user:2.15.0") - - // Security - implementation("androidx.security:security-crypto:1.1.0-alpha06") - - // Firebase - implementation(platform("com.google.firebase:firebase-bom:33.7.0")) - implementation("com.google.firebase:firebase-analytics") - - // Amplitude - implementation("com.amplitude:analytics-android:1.+") + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + implementation(libs.constraintlayout) + implementation(libs.viewpager2) + implementation(libs.fragment.ktx) + implementation(libs.lifecycle.extensions) + implementation(libs.datastore.preferences) + implementation(libs.security.crypto) + + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.test.junit) + androidTestImplementation(libs.espresso.core) + + implementation(libs.retrofit) + implementation(libs.retrofit.kotlinx.serialization) + implementation(libs.serialization.json) + implementation(libs.okhttp) + implementation(libs.okhttp.logging.interceptor) + implementation(libs.coroutines) + + implementation(libs.coil) + implementation(libs.coil.gif) + implementation(libs.coil.svg) + implementation(libs.coil.transformers) + + implementation(libs.dots.indicator) + implementation(libs.lottie) + implementation(libs.pull.to.refresh) + + implementation(libs.kakao) + + implementation(platform(libs.firebase.bom)) + implementation(libs.firebase.analytics) + + implementation(libs.amplitude) + + implementation(libs.hilt.android) + kapt(libs.hilt.compiler) } diff --git a/build.gradle.kts b/build.gradle.kts index 5cd490c70..1cb77d673 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,9 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id("com.android.application") version "8.1.3" apply false - id("org.jetbrains.kotlin.android") version "1.9.0" apply false - id("org.jetbrains.kotlin.jvm") version "1.9.0" apply false - id("com.google.dagger.hilt.android") version "2.48" apply false - id("com.google.gms.google-services") version "4.4.2" apply false -} \ No newline at end of file + alias(libs.plugins.android.application) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.kotlin.jvm) apply false + alias(libs.plugins.hilt.android) apply false + alias(libs.plugins.google.services) apply false + alias(libs.plugins.parcelize) apply false + alias(libs.plugins.kotlin.kapt) apply false +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..287c2e726 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,116 @@ +[versions] +# App Versioning +versionCode = "10008" +versionName = "1.0.8" + +# Gradle Plugin & Kotlin +android-gradle-plugin = "8.1.3" +kotlin = "1.9.0" +serialization = "1.5.1" + +# Dependency Injection +hilt = "2.48" + +# Firebase +google-services = "4.4.2" +firebase-bom = "33.7.0" + +# Analytics +amplitude = "1.+" + +# AndroidX Libraries +androidx = "1.9.0" +appcompat = "1.6.1" +material = "1.11.0" +constraintlayout = "2.1.4" +viewpager2 = "1.0.0" +fragment-ktx = "1.6.1" +lifecycle-extensions = "2.2.0" +datastore-preferences = "1.1.1" +security-crypto = "1.1.0-alpha06" + +# Testing Libraries +junit = "4.13.2" +androidx-test-junit = "1.1.5" +espresso-core = "3.5.1" + +# Networking Libraries +retrofit = "2.11.0" +retrofit-kotlinx-serialization = "1.0.0" +okhttp = "4.11.0" +okhttp-logging-interceptor = "4.10.0" + +# Coroutines +coroutines = "1.6.4" + +# Image Loading Libraries +coil = "2.7.0" +coil-transformers = "1.0.6" + +# Misc UI Libraries +dots-indicator = "5.0" +lottie = "5.0.2" +pull-to-refresh = "1.5.2" + +# Social Login Libraries +kakao = "2.15.0" + +[plugins] +android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } +parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } +google-services = { id = "com.google.gms.google-services", version.ref = "google-services" } + +[libraries] +# AndroidX Libraries +androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx" } +androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } +material = { module = "com.google.android.material:material", version.ref = "material" } +constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintlayout" } +viewpager2 = { module = "androidx.viewpager2:viewpager2", version.ref = "viewpager2" } +fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "fragment-ktx" } +lifecycle-extensions = { module = "androidx.lifecycle:lifecycle-extensions", version.ref = "lifecycle-extensions" } +datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastore-preferences" } +security-crypto = { module = "androidx.security:security-crypto", version.ref = "security-crypto" } + +# Testing Libraries +junit = { module = "junit:junit", version.ref = "junit" } +androidx-test-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-test-junit" } +espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso-core" } + +# Networking Libraries +retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } +retrofit-kotlinx-serialization = { module = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter", version.ref = "retrofit-kotlinx-serialization" } +serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" } +okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } +okhttp-logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp-logging-interceptor" } +coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" } + +# Image Loading Libraries +coil = { module = "io.coil-kt:coil", version.ref = "coil" } +coil-gif = { module = "io.coil-kt:coil-gif", version.ref = "coil" } +coil-svg = { module = "io.coil-kt:coil-svg", version.ref = "coil" } +coil-transformers = { module = "jp.wasabeef.transformers:coil", version.ref = "coil-transformers" } + +# Misc UI Libraries +dots-indicator = { module = "com.tbuonomo:dotsindicator", version.ref = "dots-indicator" } +lottie = { module = "com.airbnb.android:lottie", version.ref = "lottie" } +pull-to-refresh = { module = "com.github.SimformSolutionsPvtLtd:SSPullToRefresh", version.ref = "pull-to-refresh" } + +# Social Login Libraries +kakao = { module = "com.kakao.sdk:v2-user", version.ref = "kakao" } + +# Dependency Injection Libraries +hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } +hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } + +# Firebase Libraries +firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebase-bom" } +firebase-analytics = { module = "com.google.firebase:firebase-analytics" } + +# Amplitude Libraries +amplitude = { module = "com.amplitude:analytics-android", version.ref = "amplitude" }