plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.hilt) alias(libs.plugins.kapt) } android { namespace = "com.example.myserver" compileSdk = 35 defaultConfig { applicationId = "com.example.myserver" minSdk = 29 targetSdk = 35 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { arguments("-DANDROID_STL=c++_shared") cppFlags("-Wl,-z,max-page-size=16384") } } } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { // Compose и Hilt лучше работают на Java 17 sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.1" // Соответствует Kotlin 1.9.0 } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1,androidx.compose.material3_material3.version}" } } externalNativeBuild { cmake { path = file("src/main/cpp/CMakeLists.txt") version = "3.22.1" } } } dependencies { // 1. Сначала объявляем BOM (один раз в самом начале) val composeBom = platform("androidx.compose:compose-bom:2024.02.01") implementation(composeBom) androidTestImplementation(composeBom) // 2. Jetpack Compose (версии берутся из BOM) implementation(libs.compose.ui) implementation(libs.compose.ui.graphics) implementation(libs.compose.ui.tooling.preview) implementation(libs.activity.compose) implementation(libs.lifecycle.viewmodel.compose) implementation(libs.foundation) // 3. Material 3 (обязательно для PullToRefreshBox) implementation("androidx.compose.material3:material3") implementation("androidx.compose.material3:material3-window-size-class") implementation("androidx.compose.material:material-icons-extended") // 4. Сеть (Retrofit) implementation(libs.retrofit) implementation(libs.retrofit.gson) implementation(libs.okhttp.logging) // 5. Dagger Hilt implementation(libs.hilt.android) kapt(libs.hilt.compiler) implementation("androidx.hilt:hilt-navigation-compose:1.1.0") // 6. Остальное implementation(libs.appcompat) implementation(libs.material) implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1") // Тесты и отладка testImplementation(libs.junit) androidTestImplementation(libs.ext.junit) androidTestImplementation(libs.espresso.core) debugImplementation(libs.compose.ui.tooling) }