// [FILE] Dependencies.kt // [PURPOSE] Centralized dependency management for the entire project. object Versions { // Build const val compileSdk = 34 const val minSdk = 26 const val targetSdk = 34 const val versionCode = 1 const val versionName = "1.0" // Kotlin const val kotlin = "1.9.22" const val coroutines = "1.7.3" // Jetpack Compose const val composeCompiler = "1.5.8" const val composeBom = "2023.10.01" const val activityCompose = "1.8.2" const val navigationCompose = "2.7.6" const val hiltNavigationCompose = "1.1.0" // AndroidX const val coreKtx = "1.12.0" const val lifecycle = "2.6.2" const val appcompat = "1.6.1" // Networking const val retrofit = "2.9.0" const val okhttp = "4.12.0" const val moshi = "1.15.0" // Database const val room = "2.6.1" // DI const val hilt = "2.48.1" const val hiltCompiler = "1.1.0" // Logging const val timber = "5.0.1" // Testing const val junit = "4.13.2" const val extJunit = "1.1.5" const val espresso = "3.5.1" } object Libs { // Kotlin const val coroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.coroutines}" const val coroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.coroutines}" // AndroidX const val coreKtx = "androidx.core:core-ktx:${Versions.coreKtx}" const val lifecycleRuntime = "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.lifecycle}" const val appcompat = "androidx.appcompat:appcompat:${Versions.appcompat}" // Compose const val composeBom = "androidx.compose:compose-bom:${Versions.composeBom}" const val composeUi = "androidx.compose.ui:ui" const val composeUiGraphics = "androidx.compose.ui:ui-graphics" const val composeUiToolingPreview = "androidx.compose.ui:ui-tooling-preview" const val composeMaterial3 = "androidx.compose.material3:material3" const val activityCompose = "androidx.activity:activity-compose:${Versions.activityCompose}" const val navigationCompose = "androidx.navigation:navigation-compose:${Versions.navigationCompose}" const val hiltNavigationCompose = "androidx.hilt:hilt-navigation-compose:${Versions.hiltNavigationCompose}" // Networking (Retrofit, OkHttp, Moshi) const val retrofit = "com.squareup.retrofit2:retrofit:${Versions.retrofit}" const val converterMoshi = "com.squareup.retrofit2:converter-moshi:${Versions.retrofit}" const val okhttp = "com.squareup.okhttp3:okhttp:${Versions.okhttp}" const val okhttpLoggingInterceptor = "com.squareup.okhttp3:logging-interceptor:${Versions.okhttp}" const val moshi = "com.squareup.moshi:moshi:${Versions.moshi}" const val moshiKotlin = "com.squareup.moshi:moshi-kotlin:${Versions.moshi}" const val moshiCodegen = "com.squareup.moshi:moshi-kotlin-codegen:${Versions.moshi}" // Database (Room) const val roomRuntime = "androidx.room:room-runtime:${Versions.room}" const val roomKtx = "androidx.room:room-ktx:${Versions.room}" const val roomCompiler = "androidx.room:room-compiler:${Versions.room}" // Dependency Injection (Hilt) const val hiltAndroid = "com.google.dagger:hilt-android:${Versions.hilt}" const val hiltCompiler = "com.google.dagger:hilt-android-compiler:${Versions.hilt}" // Logging const val timber = "com.jakewharton.timber:timber:${Versions.timber}" // Testing const val junit = "junit:junit:${Versions.junit}" const val extJunit = "androidx.test.ext:junit:${Versions.extJunit}" const val espressoCore = "androidx.test.espresso:espresso-core:${Versions.espresso}" const val composeUiTestJunit4 = "androidx.compose.ui:ui-test-junit4" const val composeUiTooling = "androidx.compose.ui:ui-tooling" const val composeUiTestManifest = "androidx.compose.ui:ui-test-manifest" } // [END_FILE_Dependencies.kt]