@@ -7,6 +7,7 @@ import java.util.Properties
77
88plugins {
99 id(" com.android.application" )
10+ id(" org.jetbrains.kotlin.plugin.compose" )
1011 id(" kotlin-android" )
1112 id(" kotlin-parcelize" )
1213 id(" com.google.devtools.ksp" )
@@ -19,16 +20,16 @@ plugins {
1920}
2021
2122android {
22- namespace = " com.example.moviedb"
2323 val appId = " com.example.moviedb"
24+ namespace = appId
2425 defaultConfig {
2526 applicationId = appId
2627 buildToolsVersion = " 35.0.0-rc3"
2728 minSdk = 23
28- // compileSdk = 34
29- // targetSdk = 34
30- compileSdkPreview = " VanillaIceCream "
31- targetSdkPreview = " VanillaIceCream "
29+ // compileSdkPreview = "VanillaIceCream"
30+ // targetSdkPreview = "VanillaIceCream"
31+ compileSdk = 34
32+ targetSdk = 34
3233 multiDexEnabled = true
3334 vectorDrawables {
3435 useSupportLibrary = true
@@ -133,10 +134,10 @@ android {
133134 dataBinding = true
134135 compose = true
135136 }
136- composeOptions {
137+ /* composeOptions {
137138 // check version here https://developer.android.com/jetpack/androidx/releases/compose-kotlin
138- kotlinCompilerExtensionVersion = " 1.5.4 "
139- }
139+ kotlinCompilerExtensionVersion = "1.5.14 "
140+ }*/
140141 lint {
141142// checkReleaseBuilds = false
142143// abortOnError = false
@@ -145,13 +146,13 @@ android {
145146
146147dependencies {
147148 // common
148- implementation(" androidx.appcompat:appcompat:1.6.1 " )
149+ implementation(" androidx.appcompat:appcompat:1.7.0 " )
149150 implementation(" androidx.legacy:legacy-support-v4:1.0.0" )
150151 implementation(" androidx.constraintlayout:constraintlayout:2.1.4" )
151152 implementation(" androidx.recyclerview:recyclerview:1.3.2" )
152153 implementation(" com.google.android.material:material:1.12.0" )
153- implementation(" org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20 " )
154- implementation(" org.jetbrains.kotlin:kotlin-reflect:1.9.20 " )
154+ implementation(" org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.0 " )
155+ implementation(" org.jetbrains.kotlin:kotlin-reflect:2.0.0 " )
155156 implementation(" androidx.multidex:multidex:2.0.1" )
156157
157158 // List of KTX extensions
@@ -162,10 +163,10 @@ dependencies {
162163
163164 // Lifecycle
164165 // https://developer.android.com/jetpack/androidx/releases/lifecycle
165- implementation(" androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.0 " )
166+ implementation(" androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.1 " )
166167// implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.6.1")
167- implementation(" androidx.lifecycle:lifecycle-runtime-ktx:2.8.0 " )
168- implementation(" androidx.lifecycle:lifecycle-common-java8:2.8.0 " )
168+ implementation(" androidx.lifecycle:lifecycle-runtime-ktx:2.8.1 " )
169+ implementation(" androidx.lifecycle:lifecycle-common-java8:2.8.1 " )
169170
170171 // Preferences DataStore
171172 // https://android-developers.googleblog.com/2020/09/prefer-storing-data-with-jetpack.html
@@ -189,19 +190,19 @@ dependencies {
189190
190191 // coroutines
191192 // https://github.com/Kotlin/kotlinx.coroutines
192- implementation(" org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 " )
193- implementation(" org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 " )
194- testImplementation(" org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3 " )
193+ implementation(" org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 " )
194+ implementation(" org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 " )
195+ testImplementation(" org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.1 " )
195196
196197 // moshi
197- implementation(" com.squareup.moshi:moshi-kotlin:1.15.0 " )
198- ksp(" com.squareup.moshi:moshi-kotlin-codegen:1.15.0 " )
198+ implementation(" com.squareup.moshi:moshi-kotlin:1.15.1 " )
199+ ksp(" com.squareup.moshi:moshi-kotlin-codegen:1.15.1 " )
199200
200201 // retrofit
201202 // https://github.com/square/retrofit
202- implementation(" com.squareup.retrofit2:retrofit:2.9 .0" )
203- implementation(" com.squareup.retrofit2:converter-moshi:2.9 .0" )
204- implementation(" com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.11 " )
203+ implementation(" com.squareup.retrofit2:retrofit:2.11 .0" )
204+ implementation(" com.squareup.retrofit2:converter-moshi:2.11 .0" )
205+ implementation(" com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.14 " )
205206
206207 // OkHttpProfiler
207208 // https://github.com/itkacher/OkHttpProfiler
@@ -218,8 +219,8 @@ dependencies {
218219 ksp(" com.github.bumptech.glide:ksp:4.16.0" )
219220
220221 // dagger hilt
221- implementation(" com.google.dagger:hilt-android:2.49 " )
222- ksp(" com.google.dagger:hilt-android-compiler:2.49 " )
222+ implementation(" com.google.dagger:hilt-android:2.51.1 " )
223+ ksp(" com.google.dagger:hilt-android-compiler:2.51.1 " )
223224 implementation(" androidx.hilt:hilt-navigation-fragment:1.2.0" )
224225 ksp(" androidx.hilt:hilt-compiler:1.2.0" )
225226
@@ -229,7 +230,7 @@ dependencies {
229230
230231 // firebase
231232 // https://firebase.google.com/docs/android/setup
232- implementation(platform(" com.google.firebase:firebase-bom:33.0 .0" ))
233+ implementation(platform(" com.google.firebase:firebase-bom:33.1 .0" ))
233234 implementation(" com.google.firebase:firebase-analytics-ktx" )
234235 implementation(" com.google.firebase:firebase-crashlytics-ktx" )
235236 implementation(" com.google.firebase:firebase-messaging-ktx" )
@@ -247,12 +248,12 @@ dependencies {
247248
248249 // unit test
249250 testImplementation(" junit:junit:4.13.2" )
250- testImplementation(" org.mockito:mockito-core:5.6 .0" )
251+ testImplementation(" org.mockito:mockito-core:5.12 .0" )
251252// testImplementation("org.mockito:mockito-inline:3.3.3")
252- testImplementation(" io.mockk:mockk:1.13.8 " )
253+ testImplementation(" io.mockk:mockk:1.13.11 " )
253254 testImplementation(" androidx.arch.core:core-testing:2.2.0" )
254- testImplementation(" com.squareup.okhttp3:mockwebserver:5.0.0-alpha.11 " )
255- testImplementation(" org.jetbrains.kotlin:kotlin-stdlib:1.9.22 " )
255+ testImplementation(" com.squareup.okhttp3:mockwebserver:5.0.0-alpha.14 " )
256+ testImplementation(" org.jetbrains.kotlin:kotlin-stdlib:2.0.0 " )
256257// testImplementation("org.robolectric:robolectric:4.3")
257258
258259 /* *
@@ -373,20 +374,21 @@ dependencies {
373374 // https://developer.android.com/jetpack/compose/interop/adding
374375 // https://developer.android.com/jetpack/compose/setup
375376// implementation("androidx.compose.compiler:compiler:1.4.5")
376- // implementation("androidx.compose:compose-bom:2023.04.00")
377- // androidTestImplementation("androidx.compose:compose-bom:2023.04.00")
377+ val composeBom = platform(" androidx.compose:compose-bom:2024.05.00" )
378+ implementation(composeBom)
379+ androidTestImplementation(composeBom)
378380 // Foundation (Border, Background, Box, Image, Scroll, shapes, animations, etc.)
379- implementation(" androidx.compose.foundation:foundation:1.6.7 " )
381+ implementation(" androidx.compose.foundation:foundation" )
380382 // or Material Design 2
381- implementation(" androidx.compose.material:material:1.6.7 " )
383+ implementation(" androidx.compose.material:material" )
382384 // Material Design 3
383- implementation(" androidx.compose.material3:material3:1.2.1 " )
385+ implementation(" androidx.compose.material3:material3" )
384386 // Android Studio Preview support
385- implementation(" androidx.compose.ui:ui-tooling-preview:1.6.7 " )
386- debugImplementation(" androidx.compose.ui:ui-tooling:1.6.7 " )
387+ implementation(" androidx.compose.ui:ui-tooling-preview" )
388+ debugImplementation(" androidx.compose.ui:ui-tooling" )
387389 // UI Tests
388- androidTestImplementation(" androidx.compose.ui:ui-test-junit4:1.6.7 " )
389- debugImplementation(" androidx.compose.ui:ui-test-manifest:1.6.7 " )
390+ androidTestImplementation(" androidx.compose.ui:ui-test-junit4" )
391+ debugImplementation(" androidx.compose.ui:ui-test-manifest" )
390392 // Animations
391393 implementation(" androidx.compose.animation:animation:1.6.7" )
392394 // Constraint layout
@@ -402,21 +404,21 @@ dependencies {
402404 // Optional - Integration with activities
403405 implementation(" androidx.activity:activity-compose:1.9.0" )
404406 // Optional - Integration with ViewModels
405- implementation(" androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0 " )
407+ implementation(" androidx.lifecycle:lifecycle-viewmodel-compose:2.8.1 " )
406408 // Optional - Integration with LiveData
407409// implementation("androidx.compose.runtime:runtime-livedata:1.4.3")
408410 // Lifecycle utilities for Compose
409- implementation(" androidx.lifecycle:lifecycle-runtime-compose:2.8.0 " )
411+ implementation(" androidx.lifecycle:lifecycle-runtime-compose:2.8.1 " )
410412 // navigation
411413 implementation(" androidx.navigation:navigation-compose:2.7.7" )
412414 implementation(" androidx.hilt:hilt-navigation-compose:1.2.0" )
413415 // https://github.com/skydoves/landscapist
414416// implementation("com.github.skydoves:landscape-bom:2.1.7")
415- implementation(" com.github.skydoves:landscapist-glide:2.2.10 " )
416- implementation(" com.github.skydoves:landscapist-placeholder:2.2.10 " )
417+ implementation(" com.github.skydoves:landscapist-glide:2.3.3 " )
418+ implementation(" com.github.skydoves:landscapist-placeholder:2.3.3 " )
417419 // https://google.github.io/accompanist/
418420 // https://github.com/google/accompanist
419- val accompanistVersion = " 0.32 .0"
421+ val accompanistVersion = " 0.34 .0"
420422 implementation(" com.google.accompanist:accompanist-systemuicontroller:$accompanistVersion " )
421423 implementation(" com.google.accompanist:accompanist-pager:$accompanistVersion " )
422424 implementation(" com.google.accompanist:accompanist-permissions:$accompanistVersion " )
@@ -427,6 +429,12 @@ dependencies {
427429 implementation(" com.google.accompanist:accompanist-adaptive:$accompanistVersion " )
428430}
429431
432+ composeCompiler {
433+ enableStrongSkippingMode = true
434+ reportsDestination = layout.buildDirectory.dir(" compose_compiler" )
435+ stabilityConfigurationFile = rootProject.layout.projectDirectory.file(" stability_config.conf" )
436+ }
437+
430438kapt {
431439 correctErrorTypes = true
432440}
0 commit comments