You've already forked RekomenciMobile
fddd145cfc
[body] [footer(s)]
210 lines
5.7 KiB
Kotlin
210 lines
5.7 KiB
Kotlin
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
import org.gradle.api.tasks.compile.JavaCompile
|
|
|
|
plugins {
|
|
alias(libs.plugins.androidApplication)
|
|
alias(libs.plugins.jetbrainsKotlinAndroid)
|
|
alias(libs.plugins.compose.compiler)
|
|
alias(libs.plugins.googleKsp)
|
|
alias(libs.plugins.room)
|
|
alias(libs.plugins.serialization)
|
|
alias(libs.plugins.secrets.gradle.plugin)
|
|
alias(libs.plugins.kotlin.parcelize)
|
|
alias(libs.plugins.google.services.gmc)
|
|
alias(libs.plugins.firebase.crashlytics)
|
|
alias(libs.plugins.kotzilla)
|
|
}
|
|
|
|
android {
|
|
namespace = "com.prodhack.moscow2025"
|
|
compileSdk {
|
|
version = release(36)
|
|
}
|
|
|
|
defaultConfig {
|
|
applicationId = "com.prodhack.moscow2025"
|
|
minSdk = 29
|
|
targetSdk = 36
|
|
versionCode = 1
|
|
versionName = "1.0"
|
|
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
}
|
|
|
|
room {
|
|
schemaDirectory("$projectDir/schemas")
|
|
}
|
|
|
|
|
|
buildTypes {
|
|
release {
|
|
isMinifyEnabled = false
|
|
proguardFiles(
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
"proguard-rules.pro"
|
|
)
|
|
}
|
|
}
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_21
|
|
targetCompatibility = JavaVersion.VERSION_21
|
|
}
|
|
|
|
buildFeatures {
|
|
compose = true
|
|
buildConfig = true
|
|
viewBinding = true
|
|
}
|
|
|
|
ksp {
|
|
arg("KOIN_CONFIG_CHECK", "true")
|
|
arg("KOIN_DEFAULT_MODULE", "false")
|
|
arg("KOIN_USE_COMPOSE_VIEWMODEL", "true")
|
|
}
|
|
composeOptions.kotlinCompilerExtensionVersion = "1.5.6"
|
|
packagingOptions.resources.excludes.add("/META-INF/{AL2.0,LGPL2.1}")
|
|
kotlin {
|
|
compilerOptions {
|
|
jvmTarget.set(JvmTarget.JVM_21)
|
|
freeCompilerArgs = listOf("-XXLanguage:+PropertyParamAnnotationDefaultTargetMode")
|
|
}
|
|
}
|
|
|
|
// Disable Java compilation for unit tests since we only use Kotlin
|
|
tasks.withType<JavaCompile>().configureEach {
|
|
if (name.contains("UnitTest")) {
|
|
enabled = false
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(libs.kotzilla.sdk)
|
|
// Base libraries ------------------------------------------------------------------------------
|
|
|
|
implementation(libs.core.ktx)
|
|
implementation(platform(libs.kotlin.bom))
|
|
implementation(libs.lifecycle.runtime.ktx)
|
|
implementation(libs.activity.compose)
|
|
implementation(platform(libs.compose.bom))
|
|
implementation(libs.ui)
|
|
implementation(libs.ui.graphics)
|
|
implementation(libs.ui.tooling.preview)
|
|
implementation(libs.compose.animation.graphics)
|
|
implementation(libs.material.icons.extended)
|
|
implementation(libs.androidx.foundation)
|
|
implementation(libs.androidx.runtime)
|
|
androidTestImplementation(platform(libs.compose.bom))
|
|
androidTestImplementation(libs.androidx.ui.test.junit4)
|
|
debugImplementation(libs.ui.tooling)
|
|
debugImplementation(libs.ui.test.manifest)
|
|
|
|
// Material
|
|
implementation(libs.material3)
|
|
|
|
// Navigation
|
|
implementation(libs.navigation.compose)
|
|
|
|
// Data store
|
|
implementation(libs.androidx.datastore.preferences)
|
|
|
|
// TESTING -------------------------------------------------------------------------------------
|
|
|
|
testImplementation(libs.junit)
|
|
androidTestImplementation(libs.ext.junit)
|
|
androidTestImplementation(libs.espresso.core)
|
|
|
|
// Koin testing
|
|
testImplementation(libs.koin.test)
|
|
|
|
// IMAGES --------------------------------------------------------------------------------------
|
|
|
|
// Coil
|
|
implementation(libs.coil.compose)
|
|
implementation(libs.coil.svg)
|
|
implementation(libs.coil.gif)
|
|
|
|
// VIEW ELEMENTS -------------------------------------------------------------------------------
|
|
|
|
// Lottie animation for start
|
|
implementation(libs.lottie.compose)
|
|
|
|
// Fonts
|
|
implementation(libs.ui.text.google.fonts)
|
|
|
|
// Constraint layout
|
|
implementation(libs.constraintlayout.compose)
|
|
|
|
// NETWORK -------------------------------------------------------------------------------------
|
|
|
|
// gson
|
|
implementation(libs.gson)
|
|
|
|
|
|
// Ktor
|
|
implementation(libs.ktor.serialization.kotlinx.json)
|
|
implementation(libs.ktor.client.logging)
|
|
implementation(libs.ktor.client.core)
|
|
implementation(libs.io.ktor.ktor.client.cio)
|
|
implementation(libs.ktor.client.websockets)
|
|
implementation(libs.ktor.client.negotiation)
|
|
implementation(libs.ktor.client.auth)
|
|
|
|
// Paging
|
|
implementation(libs.androidx.paging.runtime.ktx)
|
|
implementation(libs.androidx.paging.compose)
|
|
|
|
// GOOGLE AND FACEBOOK SERVICES ----------------------------------------------------------------
|
|
|
|
// Cloud messaging
|
|
implementation(libs.play.services.gcm)
|
|
implementation(libs.google.firebase.analytics)
|
|
implementation(libs.firebase.messaging)
|
|
|
|
// Import the BoM for the Firebase platform
|
|
implementation(platform(libs.firebase.bom))
|
|
|
|
// Guava
|
|
implementation(libs.guava)
|
|
|
|
// OTHER SERVICES ------------------------------------------------------------------------------
|
|
|
|
// CameraX
|
|
implementation(libs.camera.core)
|
|
implementation(libs.camera.camera2)
|
|
implementation(libs.androidx.camera.lifecycle)
|
|
implementation(libs.androidx.camera.video)
|
|
implementation(libs.androidx.camera.view)
|
|
implementation(libs.androidx.camera.extensions)
|
|
|
|
// Koin
|
|
implementation(libs.koin.core)
|
|
implementation(libs.koin.android)
|
|
implementation(libs.koin.annotations)
|
|
implementation(libs.koin.androidx.compose)
|
|
implementation(libs.koin.androidx.compose.navigation)
|
|
ksp(libs.koin.ksp.compiler)
|
|
ksp(libs.koin.ksp.bom)
|
|
|
|
// Viewmodel
|
|
implementation(libs.androidx.savedstate.ktx)
|
|
implementation(libs.androidx.lifecycle.viewmodel.ktx)
|
|
implementation(libs.androidx.lifecycle.service)
|
|
implementation(libs.lifecycle.runtime.ktx)
|
|
|
|
// Room
|
|
implementation(libs.androidx.room.runtime)
|
|
ksp(libs.androidx.room.compiler)
|
|
implementation(libs.androidx.room.ktx)
|
|
implementation(libs.androidx.room.paging)
|
|
|
|
// Permission manager
|
|
implementation(libs.accompanist.permissions)
|
|
|
|
// System UI controller
|
|
implementation(libs.accompanist.systemuicontroller)
|
|
|
|
implementation(libs.androidx.core.splashscreen)
|
|
|
|
// END -------------------------------------------------------------------------------------
|
|
} |