plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.serialization) alias(libs.plugins.hilt) alias(libs.plugins.ksp) alias(libs.plugins.google.services) } android { namespace = "org.yobble.messenger" compileSdk { version = release(36) } defaultConfig { applicationId = "org.yobble.messenger" minSdk = 28 targetSdk = 36 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" buildConfigField("String", "BASE_URL", "\"https://dev.api.yobble.org/\"") buildConfigField("String", "USER_AGENT", "\"yobble android/${versionName}\"") buildConfigField("String", "SOCKET_PATH", "\"/socket.io/\"") } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" } buildFeatures { compose = true buildConfig = true } } dependencies { // Core implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.lifecycle.runtime.compose) implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.kotlinx.coroutines.android) // Compose implementation(libs.androidx.activity.compose) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.graphics) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.material.icons.extended) // Navigation implementation(libs.androidx.navigation.compose) // Hilt implementation(libs.hilt.android) ksp(libs.hilt.android.compiler) implementation(libs.hilt.navigation.compose) // Network implementation(libs.retrofit) implementation(libs.okhttp) implementation(libs.okhttp.logging.interceptor) implementation(libs.retrofit.kotlinx.serialization) implementation(libs.kotlinx.serialization.json) // Firebase implementation(platform(libs.firebase.bom)) implementation(libs.firebase.messaging) // Socket.IO implementation(libs.socket.io.client) // Image loading implementation(libs.coil.compose) // Emoji picker implementation(libs.androidx.emoji2.emojipicker) // Security implementation(libs.androidx.security.crypto) // Test testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.compose.ui.test.junit4) debugImplementation(libs.androidx.compose.ui.tooling) debugImplementation(libs.androidx.compose.ui.test.manifest) }