diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 018bb525..ee2d7d57 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -53,21 +53,17 @@ android { isIncludeAndroidResources = true } managedDevices { - devices { + allDevices { maybeCreate("pixel2api30atd").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp-atd" } - } - devices { maybeCreate("pixel2api30").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp" } - } - devices { maybeCreate("pixel2api27").apply { device = "Pixel 2" apiLevel = 27 @@ -76,9 +72,9 @@ android { } groups { maybeCreate("api27and30").apply { - targetDevices.add(devices["pixel2api30"]) - targetDevices.add(devices["pixel2api30atd"]) - targetDevices.add(devices["pixel2api27"]) + targetDevices.add(allDevices.getByName("pixel2api30")) + targetDevices.add(allDevices.getByName("pixel2api30atd")) + targetDevices.add(allDevices.getByName("pixel2api27")) } } } diff --git a/core/combine/build.gradle.kts b/core/combine/build.gradle.kts index 71e0c3a8..bd41d5df 100644 --- a/core/combine/build.gradle.kts +++ b/core/combine/build.gradle.kts @@ -25,21 +25,17 @@ android { } testOptions { managedDevices { - devices { + allDevices { maybeCreate("pixel2api30atd").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp-atd" } - } - devices { maybeCreate("pixel2api30").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp" } - } - devices { maybeCreate("pixel2api27").apply { device = "Pixel 2" apiLevel = 27 @@ -48,9 +44,9 @@ android { } groups { maybeCreate("api27and30").apply { - targetDevices.add(devices["pixel2api30"]) - targetDevices.add(devices["pixel2api30atd"]) - targetDevices.add(devices["pixel2api27"]) + targetDevices.add(allDevices.getByName("pixel2api30")) + targetDevices.add(allDevices.getByName("pixel2api30atd")) + targetDevices.add(allDevices.getByName("pixel2api27")) } } } diff --git a/core/firebase/build.gradle.kts b/core/firebase/build.gradle.kts index d108b333..81cc6dc4 100644 --- a/core/firebase/build.gradle.kts +++ b/core/firebase/build.gradle.kts @@ -23,7 +23,7 @@ android { } testOptions { managedDevices { - devices { + allDevices { maybeCreate("pixel2api30atd").apply { device = "Pixel 2" apiLevel = 30 diff --git a/core/work/build.gradle.kts b/core/work/build.gradle.kts index f146c452..059bebfc 100644 --- a/core/work/build.gradle.kts +++ b/core/work/build.gradle.kts @@ -26,21 +26,17 @@ android { } testOptions { managedDevices { - devices { + allDevices { maybeCreate("pixel2api30atd").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp-atd" } - } - devices { maybeCreate("pixel2api30").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp" } - } - devices { maybeCreate("pixel2api27").apply { device = "Pixel 2" apiLevel = 27 @@ -49,9 +45,9 @@ android { } groups { maybeCreate("api27and30").apply { - targetDevices.add(devices["pixel2api30"]) - targetDevices.add(devices["pixel2api30atd"]) - targetDevices.add(devices["pixel2api27"]) + targetDevices.add(allDevices.getByName("pixel2api30")) + targetDevices.add(allDevices.getByName("pixel2api30atd")) + targetDevices.add(allDevices.getByName("pixel2api27")) } } } diff --git a/data/api/build.gradle.kts b/data/api/build.gradle.kts index 4e322641..2cf9856e 100644 --- a/data/api/build.gradle.kts +++ b/data/api/build.gradle.kts @@ -1,4 +1,6 @@ +import com.android.build.api.dsl.ManagedVirtualDevice import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties +import org.gradle.kotlin.dsl.maybeCreate import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { @@ -32,22 +34,18 @@ android { isReturnDefaultValues = true } managedDevices { - devices { - maybeCreate("pixel2api30atd").apply { + allDevices { + maybeCreate("pixel2api30atd").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp-atd" } - } - devices { - maybeCreate("pixel2api30").apply { + maybeCreate("pixel2api30").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp" } - } - devices { - maybeCreate("pixel2api27").apply { + maybeCreate("pixel2api27").apply { device = "Pixel 2" apiLevel = 27 systemImageSource = "aosp" @@ -55,9 +53,9 @@ android { } groups { maybeCreate("api27and30").apply { - targetDevices.add(devices["pixel2api30"]) - targetDevices.add(devices["pixel2api30atd"]) - targetDevices.add(devices["pixel2api27"]) + targetDevices.add(allDevices.getByName("pixel2api30")) + targetDevices.add(allDevices.getByName("pixel2api30atd")) + targetDevices.add(allDevices.getByName("pixel2api27")) } } } diff --git a/data/meal/build.gradle.kts b/data/meal/build.gradle.kts index 55266a13..3eb1245b 100644 --- a/data/meal/build.gradle.kts +++ b/data/meal/build.gradle.kts @@ -1,3 +1,5 @@ +import com.android.build.api.dsl.ManagedVirtualDevice +import org.gradle.kotlin.dsl.maybeCreate import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { @@ -23,22 +25,18 @@ android { } testOptions { managedDevices { - devices { - maybeCreate("pixel2api30atd").apply { + allDevices { + maybeCreate("pixel2api30atd").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp-atd" } - } - devices { - maybeCreate("pixel2api30").apply { + maybeCreate("pixel2api30").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp" } - } - devices { - maybeCreate("pixel2api27").apply { + maybeCreate("pixel2api27").apply { device = "Pixel 2" apiLevel = 27 systemImageSource = "aosp" @@ -46,9 +44,9 @@ android { } groups { maybeCreate("api27and30").apply { - targetDevices.add(devices["pixel2api30"]) - targetDevices.add(devices["pixel2api30atd"]) - targetDevices.add(devices["pixel2api27"]) + targetDevices.add(allDevices.getByName("pixel2api30")) + targetDevices.add(allDevices.getByName("pixel2api30atd")) + targetDevices.add(allDevices.getByName("pixel2api27")) } } } diff --git a/data/memo/build.gradle.kts b/data/memo/build.gradle.kts index d88a590e..db072481 100644 --- a/data/memo/build.gradle.kts +++ b/data/memo/build.gradle.kts @@ -1,3 +1,4 @@ +import com.android.build.api.dsl.ManagedVirtualDevice import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { @@ -25,15 +26,13 @@ android { } testOptions { managedDevices { - devices { - maybeCreate("pixel2api30atd").apply { + allDevices { + maybeCreate("pixel2api30atd").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp-atd" } - } - devices { - maybeCreate("pixel2api27").apply { + maybeCreate("pixel2api27").apply { device = "Pixel 2" apiLevel = 27 systemImageSource = "aosp" @@ -41,8 +40,8 @@ android { } groups { maybeCreate("api27and30").apply { - targetDevices.add(devices["pixel2api30atd"]) - targetDevices.add(devices["pixel2api27"]) + targetDevices.add(allDevices.getByName("pixel2api30atd")) + targetDevices.add(allDevices.getByName("pixel2api27")) } } } diff --git a/data/preferences/build.gradle.kts b/data/preferences/build.gradle.kts index 19f5ea33..b38de47b 100644 --- a/data/preferences/build.gradle.kts +++ b/data/preferences/build.gradle.kts @@ -1,3 +1,5 @@ +import com.android.build.api.dsl.ManagedVirtualDevice +import org.gradle.kotlin.dsl.maybeCreate import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { @@ -18,22 +20,18 @@ android { } testOptions { managedDevices { - devices { - maybeCreate("pixel2api30atd").apply { + allDevices { + maybeCreate("pixel2api30atd").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp-atd" } - } - devices { - maybeCreate("pixel2api30").apply { + maybeCreate("pixel2api30").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp" } - } - devices { - maybeCreate("pixel2api27").apply { + maybeCreate("pixel2api27").apply { device = "Pixel 2" apiLevel = 27 systemImageSource = "aosp" @@ -41,9 +39,9 @@ android { } groups { maybeCreate("api27and30").apply { - targetDevices.add(devices["pixel2api30"]) - targetDevices.add(devices["pixel2api30atd"]) - targetDevices.add(devices["pixel2api27"]) + targetDevices.add(allDevices.getByName("pixel2api30")) + targetDevices.add(allDevices.getByName("pixel2api30atd")) + targetDevices.add(allDevices.getByName("pixel2api27")) } } } diff --git a/data/schedule/build.gradle.kts b/data/schedule/build.gradle.kts index 49778676..8f248570 100644 --- a/data/schedule/build.gradle.kts +++ b/data/schedule/build.gradle.kts @@ -1,3 +1,5 @@ +import com.android.build.api.dsl.ManagedVirtualDevice +import org.gradle.kotlin.dsl.maybeCreate import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { @@ -23,22 +25,18 @@ android { } testOptions { managedDevices { - devices { - maybeCreate("pixel2api30atd").apply { + allDevices { + maybeCreate("pixel2api30atd").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp-atd" } - } - devices { - maybeCreate("pixel2api30").apply { + maybeCreate("pixel2api30").apply { device = "Pixel 2" apiLevel = 30 systemImageSource = "aosp" } - } - devices { - maybeCreate("pixel2api27").apply { + maybeCreate("pixel2api27").apply { device = "Pixel 2" apiLevel = 27 systemImageSource = "aosp" @@ -46,9 +44,9 @@ android { } groups { maybeCreate("api27and30").apply { - targetDevices.add(devices["pixel2api30"]) - targetDevices.add(devices["pixel2api30atd"]) - targetDevices.add(devices["pixel2api27"]) + targetDevices.add(allDevices.getByName("pixel2api30")) + targetDevices.add(allDevices.getByName("pixel2api30atd")) + targetDevices.add(allDevices.getByName("pixel2api27")) } } } diff --git a/gradle.properties b/gradle.properties index ba821f74..05009659 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,4 +21,14 @@ kotlin.code.style=official # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true -android.nonFinalResIds=false \ No newline at end of file +android.nonFinalResIds=false +android.defaults.buildfeatures.resvalues=true +android.sdk.defaultTargetSdkToCompileSdkIfUnset=false +android.enableAppCompileTimeRClass=false +android.usesSdkInManifest.disallowed=false +android.uniquePackageNames=false +android.dependency.useConstraints=true +android.r8.strictFullModeForKeepRules=false +android.r8.optimizedResourceShrinking=false +android.builtInKotlin=false +android.newDsl=false \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f2935a45..9f5c7c3a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ compileSdk = "35" minSdk = "26" targetSdk = "35" -versionName = "2.5.4" +versionName = "2.5.5" # library accompanist = '0.32.0' @@ -11,19 +11,19 @@ compose-bom = "2025.08.01" coroutines = "1.10.2" credentials = '1.2.2' firebase-bom = "33.1.1" -hilt = "2.57.1" +hilt = "2.57.2" hsk-ktx = '1.0-beta17' junit5 = "5.9.3" -kotlin = '2.1.20' +kotlin = "2.2.10" lifecycle = '2.8.2' retrofit = '2.11.0' room = "2.7.2" violet-dreams = '0.1.2' -navigation = '2.8.2' -work = "2.9.0" +navigation = '2.8.3' +work = "2.9.1" [libraries] -android-gradle = "com.android.tools.build:gradle:8.12.2" +android-gradle = "com.android.tools.build:gradle:9.2.0" hilt-android-gradle-plugin = { module = 'com.google.dagger:hilt-android-gradle-plugin', version.ref = 'hilt' } kotlin-gradle-plugin = { module = 'org.jetbrains.kotlin:kotlin-gradle-plugin', version.ref = 'kotlin' } kotlinx-serialization-plugin = { module = 'org.jetbrains.kotlin:kotlin-serialization', version.ref = 'kotlin' } @@ -40,7 +40,7 @@ accompanist-placeholder-material = { module = 'com.google.accompanist:accompanis accompanist-systemuicontroller = { module = 'com.google.accompanist:accompanist-systemuicontroller', version.ref = 'accompanist' } accompanist-permission = { module = 'com.google.accompanist:accompanist-permissions', version.ref = 'accompanist' } -androidx-collection-ktx = 'androidx.collection:collection-ktx:1.4.1' +androidx-collection-ktx = 'androidx.collection:collection-ktx:1.4.4' androidx-core-ktx = 'androidx.core:core-ktx:1.13.1' androidx-palette-ktx = 'androidx.palette:palette-ktx:1.0.0' @@ -65,8 +65,8 @@ room-testing = { module = 'androidx.room:room-testing', version.ref = 'room' } androidx-core-splashscreen = 'androidx.core:core-splashscreen:1.0.1' androidx-datastore-preferences = 'androidx.datastore:datastore-preferences:1.1.1' -androidx-profileinstaller = 'androidx.profileinstaller:profileinstaller:1.3.1' -androidx-startup-runtime = 'androidx.startup:startup-runtime:1.1.1' +androidx-profileinstaller = 'androidx.profileinstaller:profileinstaller:1.4.1' +androidx-startup-runtime = 'androidx.startup:startup-runtime:1.2.0' androidx-credentials = { module = 'androidx.credentials:credentials', version.ref = 'credentials' } androidx-credentials-play = { module = 'androidx.credentials:credentials-play-services-auth', version.ref = 'credentials' } @@ -74,8 +74,8 @@ android-identity = "com.google.android.libraries.identity.googleid:googleid:1.1. androidx-activity-compose = { module = 'androidx.activity:activity-compose' } androidx-hilt-navigation-compose = 'androidx.hilt:hilt-navigation-compose:1.2.0' -androidx-lifecycle-viewmodel-compose = 'androidx.lifecycle:lifecycle-viewmodel-compose:2.8.3' -androidx-paging-compose = 'androidx.paging:paging-compose:3.3.0' +androidx-lifecycle-viewmodel-compose = { module = 'androidx.lifecycle:lifecycle-viewmodel-compose', version.ref = 'lifecycle' } +androidx-paging-compose = 'androidx.paging:paging-compose:3.3.2' androidx-navigation-compose = { module = 'androidx.navigation:navigation-compose', version.ref = 'navigation' } androidx-constraintlayout-compose = 'androidx.constraintlayout:constraintlayout-compose:1.0.1' @@ -118,17 +118,17 @@ retrofit-coroutines-adapter = 'com.jakewharton.retrofit:retrofit2-kotlin-corouti junit-jupiter = { module = 'org.junit.jupiter:junit-jupiter', version.ref = 'junit5' } junit-vintage-engine = { module = 'org.junit.vintage:junit-vintage-engine', version.ref = 'junit5' } -androidx-benchmark-macro-junit4 = 'androidx.benchmark:benchmark-macro-junit4:1.2.4' +androidx-benchmark-macro-junit4 = 'androidx.benchmark:benchmark-macro-junit4:1.3.3' androidx-test-uiautomaker = 'androidx.test.uiautomator:uiautomator:2.3.0' -androidx-test-orchestrator = 'androidx.test:orchestrator:1.5.0' +androidx-test-orchestrator = 'androidx.test:orchestrator:1.5.1' assertj-core = 'org.assertj:assertj-core:3.24.2' androidx-junit = "androidx.test.ext:junit:1.1.5" # 업데이트하지 말 것 androidx-test-espresso-core = "androidx.test.espresso:espresso-core:3.5.0" # 절대 업데이트하지 말 것 vanniktech-dependency-graph-generator = 'com.vanniktech:gradle-dependency-graph-generator-plugin:0.7.0' -coil = "io.coil-kt:coil-compose:2.6.0" +coil = "io.coil-kt:coil-compose:2.7.0" google-play-auth = 'com.google.android.gms:play-services-auth:21.2.0' @@ -178,4 +178,4 @@ retrofit = ['retrofit', 'retrofit-converter-gson', 'retrofit-coroutines-adapter' [plugins] compose-compiler = { id = 'org.jetbrains.kotlin.plugin.compose', version.ref = 'kotlin' } -ksp = { id = 'com.google.devtools.ksp', version = '2.1.20-2.0.1' } \ No newline at end of file +ksp = { id = 'com.google.devtools.ksp', version = "2.3.2" } \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 853af104..2a3e4838 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Thu Feb 16 15:01:47 KST 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists