diff --git a/app/build.gradle b/app/build.gradle index aaeca7d7d..f1f756820 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -118,6 +118,7 @@ dependencies { implementation libs.glide ksp libs.glide.ksp implementation libs.coil + implementation libs.coil.network.okhttp // Firebase implementation platform(libs.firebase.bom) diff --git a/app/src/main/java/com/runnect/runnect/di/ServiceModule.kt b/app/src/main/java/com/runnect/runnect/di/ServiceModule.kt index 0b1de2cf9..eb9a1b24b 100644 --- a/app/src/main/java/com/runnect/runnect/di/ServiceModule.kt +++ b/app/src/main/java/com/runnect/runnect/di/ServiceModule.kt @@ -1,8 +1,8 @@ package com.runnect.runnect.di import com.google.firebase.firestore.FirebaseFirestore -import com.google.firebase.firestore.ktx.firestore -import com.google.firebase.ktx.Firebase +import com.google.firebase.Firebase +import com.google.firebase.firestore.firestore import com.runnect.runnect.data.service.CourseService import com.runnect.runnect.data.service.LoginService import com.runnect.runnect.data.service.ReverseGeocodingService diff --git a/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt b/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt index 5182c2293..63aa4f3b8 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt @@ -5,9 +5,9 @@ import android.content.Intent import android.os.Bundle import android.view.View import androidx.core.net.toUri -import com.google.firebase.ktx.Firebase -import com.google.firebase.remoteconfig.ktx.remoteConfig -import com.google.firebase.remoteconfig.ktx.remoteConfigSettings +import com.google.firebase.Firebase +import com.google.firebase.remoteconfig.remoteConfig +import com.google.firebase.remoteconfig.remoteConfigSettings import com.runnect.runnect.BuildConfig.REMOTE_KEY_APP_VERSION import com.runnect.runnect.R import com.runnect.runnect.binding.BindingActivity diff --git a/app/src/main/java/com/runnect/runnect/presentation/detail/CourseDetailActivity.kt b/app/src/main/java/com/runnect/runnect/presentation/detail/CourseDetailActivity.kt index cf15b9018..314a5600e 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/detail/CourseDetailActivity.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/detail/CourseDetailActivity.kt @@ -11,7 +11,7 @@ import android.widget.EditText import androidx.activity.OnBackPressedCallback import androidx.activity.viewModels import androidx.core.view.isVisible -import coil.load +import coil3.load import com.google.firebase.dynamiclinks.DynamicLink import com.google.firebase.dynamiclinks.FirebaseDynamicLinks import com.naver.maps.geometry.LatLng diff --git a/app/src/main/java/com/runnect/runnect/presentation/mypage/history/adapter/MyHistoryAdapter.kt b/app/src/main/java/com/runnect/runnect/presentation/mypage/history/adapter/MyHistoryAdapter.kt index 4dc969242..7d2711257 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/mypage/history/adapter/MyHistoryAdapter.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/mypage/history/adapter/MyHistoryAdapter.kt @@ -5,7 +5,7 @@ import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import coil.load +import coil3.load import com.bumptech.glide.Glide import com.bumptech.glide.load.DecodeFormat import com.runnect.runnect.data.dto.HistoryInfoDTO @@ -50,7 +50,8 @@ class MyHistoryAdapter( RecyclerView.ViewHolder(binding.root) { fun onBind(data: HistoryInfoDTO) { with(binding) { - Glide.with(itemView).load(data.img).thumbnail(0.3f) + Glide.with(itemView).load(data.img) + .thumbnail(Glide.with(itemView).load(data.img).sizeMultiplier(0.3f)) .format(DecodeFormat.PREFER_RGB_565) .into(ivMyPageHistoryCourse) diff --git a/app/src/main/java/com/runnect/runnect/presentation/mypage/reward/adapter/MyRewardAdapter.kt b/app/src/main/java/com/runnect/runnect/presentation/mypage/reward/adapter/MyRewardAdapter.kt index 6bc574cfb..9bf599c40 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/mypage/reward/adapter/MyRewardAdapter.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/mypage/reward/adapter/MyRewardAdapter.kt @@ -17,7 +17,7 @@ class MyRewardAdapter : with(binding) { Glide.with(itemView) .load(data.img) - .thumbnail(0.3f) + .thumbnail(Glide.with(itemView).load(data.img).sizeMultiplier(0.3f)) .into(ivItemMyPageRewardCircleFrame) tvItemMyPageRewardCondition.text = data.condition } diff --git a/app/src/main/java/com/runnect/runnect/presentation/mypage/upload/adapter/MyUploadAdapter.kt b/app/src/main/java/com/runnect/runnect/presentation/mypage/upload/adapter/MyUploadAdapter.kt index d9441f41b..536b314e0 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/mypage/upload/adapter/MyUploadAdapter.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/mypage/upload/adapter/MyUploadAdapter.kt @@ -66,7 +66,7 @@ class MyUploadAdapter( Glide.with(itemView) .load(data.img) - .thumbnail(0.3f) + .thumbnail(Glide.with(itemView).load(data.img).sizeMultiplier(0.3f)) .format(DecodeFormat.PREFER_RGB_565).into(ivMyPageUploadCourse) tvMyPageUploadCourseTitle.text = data.title diff --git a/app/src/main/java/com/runnect/runnect/util/binding/BindingAdapter.kt b/app/src/main/java/com/runnect/runnect/util/binding/BindingAdapter.kt index 782755995..7bca1f160 100644 --- a/app/src/main/java/com/runnect/runnect/util/binding/BindingAdapter.kt +++ b/app/src/main/java/com/runnect/runnect/util/binding/BindingAdapter.kt @@ -3,7 +3,7 @@ package com.runnect.runnect.util.binding import android.widget.ImageView import androidx.appcompat.widget.AppCompatButton import androidx.databinding.BindingAdapter -import coil.load +import coil3.load import com.bumptech.glide.Glide import com.bumptech.glide.load.DecodeFormat @@ -46,7 +46,7 @@ fun AppCompatButton.updateEditFinishButtonBackground( fun ImageView.setDiscoverItemImage(imageUrl: String?) { Glide.with(context) .load(imageUrl) - .thumbnail(0.3f) + .thumbnail(Glide.with(context).load(imageUrl).sizeMultiplier(0.3f)) .format(DecodeFormat.PREFER_RGB_565) .into(this) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 12b6db887..119a5690f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] # SDK -compileSdk = "35" +compileSdk = "36" minSdk = "28" targetSdk = "35" @@ -14,55 +14,53 @@ kotlin = "2.2.0" ksp = "2.2.0-2.0.2" # AndroidX -core-ktx = "1.9.0" -appcompat = "1.5.1" -constraintlayout = "2.1.4" -activity-ktx = "1.6.1" -activity-compose = "1.9.0" -fragment-ktx = "1.5.5" -lifecycle = "2.8.2" -recyclerview = "1.3.0" -viewpager2 = "1.0.0" -swiperefreshlayout = "1.1.0" +core-ktx = "1.18.0" +appcompat = "1.7.1" +constraintlayout = "2.2.1" +activity-ktx = "1.13.0" +activity-compose = "1.13.0" +fragment-ktx = "1.8.9" +lifecycle = "2.10.0" +recyclerview = "1.4.0" +viewpager2 = "1.1.0" +swiperefreshlayout = "1.2.0" preference-ktx = "1.2.1" -security-crypto = "1.1.0-alpha03" +security-crypto = "1.1.0" # Compose -compose-bom = "2023.03.00" +compose-bom = "2026.03.01" # Material -material = "1.8.0" +material = "1.13.0" # Hilt hilt = "2.56.2" # Network retrofit = "2.9.0" -okhttp-bom = "4.10.0" -kotlinx-serialization-json = "1.4.1" -retrofit2-kotlinx-serialization = "0.8.0" -gson = "2.10.1" +okhttp-bom = "4.12.0" +kotlinx-serialization-json = "1.10.0" +retrofit2-kotlinx-serialization = "1.0.0" +gson = "2.13.2" # Coroutines -coroutines = "1.6.4" +coroutines = "1.10.2" # Image -glide = "4.16.0" -coil = "2.2.2" +glide = "5.0.5" +coil = "3.4.0" # Firebase -firebase-bom = "31.2.3" +firebase-bom = "33.14.0" firebase-crashlytics-gradle = "3.0.6" -google-services = "4.3.15" +google-services = "4.4.4" # Map -naver-map = "3.22.1" +naver-map = "3.23.2" play-services-location = "21.3.0" # Kakao -kakao-sdk = "2.15.0" -kakao-link = "2.9.0" -kakao-login-legacy = "2.10.0" +kakao-sdk = "2.23.3" # Google play-services-auth = "20.4.1" @@ -76,7 +74,7 @@ scalablelayout = "2.1.6" shimmer = "0.5.0" # Permission -tedpermission = "3.3.0" +tedpermission = "3.4.2" # Secrets secrets-gradle-plugin = "2.0.1" @@ -86,8 +84,8 @@ foojay = "0.10.0" # Test junit = "4.13.2" -androidx-junit = "1.1.5" -espresso = "3.5.1" +androidx-junit = "1.3.0" +espresso = "3.7.0" [libraries] # AndroidX @@ -139,7 +137,8 @@ kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx- # Image glide = { group = "com.github.bumptech.glide", name = "glide", version.ref = "glide" } glide-ksp = { group = "com.github.bumptech.glide", name = "ksp", version.ref = "glide" } -coil = { group = "io.coil-kt", name = "coil", version.ref = "coil" } +coil = { group = "io.coil-kt.coil3", name = "coil-android", version.ref = "coil" } +coil-network-okhttp = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coil" } # Firebase (BOM 관리 - 개별 버전 불필요) firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebase-bom" } @@ -159,8 +158,7 @@ play-services-location = { group = "com.google.android.gms", name = "play-servic # Kakao kakao-user = { group = "com.kakao.sdk", name = "v2-user", version.ref = "kakao-sdk" } kakao-talk = { group = "com.kakao.sdk", name = "v2-talk", version.ref = "kakao-sdk" } -kakao-story = { group = "com.kakao.sdk", name = "v2-story", version.ref = "kakao-sdk" } -kakao-link = { group = "com.kakao.sdk", name = "v2-link", version.ref = "kakao-link" } +kakao-share = { group = "com.kakao.sdk", name = "v2-share", version.ref = "kakao-sdk" } kakao-navi = { group = "com.kakao.sdk", name = "v2-navi", version.ref = "kakao-sdk" } # Google @@ -196,8 +194,7 @@ firebase = [ kakao = [ "kakao-user", "kakao-talk", - "kakao-story", - "kakao-link", + "kakao-share", "kakao-navi", ] compose = [