Skip to content
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
8688f39
Refactor: Update dependencies and plugins to use version catalog
baraa0abd Jul 17, 2025
6c9bc62
Refactor: Enable minification and resource shrinking for app release
baraa0abd Jul 17, 2025
b25ab11
Merge remote-tracking branch 'origin/develop' into refactor/refactor-…
baraa0abd Jul 19, 2025
958047b
Merge pull request #115 from MadridSquad/update/kotlin-version
baraa0abd Jul 19, 2025
5cd58b6
Merge pull request #115 from MadridSquad/update/kotlin-version
baraa0abd Jul 19, 2025
582bb60
Merge pull request #115 from MadridSquad/update/kotlin-version
baraa0abd Jul 19, 2025
b09a0c1
Merge pull request #115 from MadridSquad/update/kotlin-version
baraa0abd Jul 19, 2025
dbc6fc5
Merge branch 'refs/heads/develop' into refactor/refactor-gradle
baraa0abd Jul 19, 2025
8ea7f78
Merge pull request #115 from MadridSquad/update/kotlin-version
baraa0abd Jul 19, 2025
626c8df
Downgrade Gradle to 8.4 and related dependencies
baraa0abd Jul 19, 2025
0e829db
Refactor: Downgrade Kotlin and update dependencies
baraa0abd Jul 19, 2025
75ec0c0
Refactor: Update dependencies and Gradle configuration
baraa0abd Jul 20, 2025
b2e0aee
Refactor: Update dependencies and Gradle configuration
baraa0abd Jul 20, 2025
e300be9
Refactor: Update dependencies and Gradle configuration
baraa0abd Jul 20, 2025
a4c2275
Remove Material3 dependency and update Coil library
baraa0abd Jul 20, 2025
66b410e
Update Room Database to version 2.7.2
baraa0abd Jul 20, 2025
5b73d92
kotlin-stdlib version to 1.9.10
baraa0abd Jul 20, 2025
bf681a6
Merge remote-tracking branch 'origin/develop' into refactor/refactor-…
baraa0abd Jul 20, 2025
af1cb10
Merge branch 'develop' into refactor/refactor-gradle
baraa0abd Jul 20, 2025
887857c
Merge branch 'develop' into refactor/refactor-gradle
baraa0abd Jul 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

47 changes: 22 additions & 25 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,10 @@ val firebaseApiKey = localProperties.getProperty("FIREBASE_API_KEY") ?: "NO_KEY_
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
id("org.jetbrains.kotlin.kapt")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")

alias(libs.plugins.compose)
alias(libs.plugins.kotlin.kapt)
alias(libs.plugins.google.services)
alias(libs.plugins.firebase.crashlytics)
jacoco
}

Expand All @@ -36,13 +35,20 @@ android {

buildTypes {
release {
isMinifyEnabled = false
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
signingConfig = signingConfigs.getByName("debug")
}
debug {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
Expand All @@ -56,6 +62,9 @@ android {
buildConfig = true

}
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.compiler.get()
}
testOptions {
unitTests.isIncludeAndroidResources = true
}
Expand Down Expand Up @@ -100,24 +109,14 @@ tasks.register<JacocoReport>("jacocoTestReport") {
}

dependencies {

implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)

implementation("androidx.compose.foundation:foundation")

implementation(libs.androidx.navigation.compose)
Comment thread
baraa0abd marked this conversation as resolved.

//firebase
implementation("com.google.firebase:firebase-analytics")
implementation(platform("com.google.firebase:firebase-bom:33.16.0"))
implementation("com.google.firebase:firebase-crashlytics-ndk")
implementation(libs.firebase.crashlytics.buildtools)
implementation(libs.androidx.core.ktx)
implementation(libs.firebase.analytics)
implementation(libs.firebase.crashlytics.ndk)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
Expand All @@ -130,13 +129,11 @@ dependencies {
implementation(project(":domain"))
implementation(project(":data"))
implementation(project(":presentation"))
implementation(libs.room.runtime)
implementation(libs.room.ktx)
kapt(libs.room.compiler)

//koin
implementation(libs.androidx.room.runtime)
implementation(libs.androidx.room.ktx)
kapt(libs.androidx.room.compiler)
implementation(libs.koin.androidx.compose)
api(libs.koin.annotations)
implementation(libs.koin.android)

implementation(libs.slf4j.simple)
}
23 changes: 22 additions & 1 deletion app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,25 @@

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
#-renamesourcefileattribute SourceFile

# SLF4J rules to prevent R8 issues
-dontwarn org.slf4j.**
-keep class org.slf4j.** { *; }
-dontwarn org.slf4j.impl.StaticLoggerBinder
-dontwarn org.slf4j.impl.StaticMDCBinder

# Ktor rules
-dontwarn io.ktor.**
-keep class io.ktor.** { *; }

# Kotlin serialization rules
-keepattributes *Annotation*, InnerClasses
-dontnote kotlinx.serialization.AnnotationsKt
-keep,includedescriptorclasses class com.madrid.presentation.navigation.**$$serializer { *; }
-keepclassmembers class com.madrid.presentation.navigation.** {
*** Companion;
}
-keepclasseswithmembers class com.madrid.presentation.navigation.** {
kotlinx.serialization.KSerializer serializer(...);
}
34 changes: 30 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,37 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.compose) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.jetbrains.kotlin.jvm) apply false
id("com.google.gms.google-services") version "4.4.3" apply false
id("com.google.firebase.crashlytics") version "3.0.4" apply false
alias(libs.plugins.compose) apply false
alias(libs.plugins.kotlin.kapt) apply false
alias(libs.plugins.kotlin.serialization) apply false
alias(libs.plugins.google.services) apply false
alias(libs.plugins.firebase.crashlytics) apply false
alias(libs.plugins.ksp) apply false
}

// Custom clean task to handle file system issues
tasks.register("cleanAll") {
dependsOn("clean")
doLast {
// Force delete build directories that might be locked
project.subprojects.forEach { subproject ->
val buildDir = subproject.buildDir
if (buildDir.exists()) {
buildDir.deleteRecursively()
}
}
}
}

subprojects {
configurations.all {
resolutionStrategy.eachDependency {
if (requested.group == "org.jetbrains.kotlin" && requested.name.startsWith("kotlin-stdlib")) {
useVersion("1.9.10")
}
}
}
}
65 changes: 29 additions & 36 deletions data/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.serialization)
id("com.google.devtools.ksp") version "2.1.21-2.0.1"
alias(libs.plugins.ksp)
}

android {
Expand All @@ -17,15 +17,17 @@ android {
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
}
android.buildFeatures.buildConfig = true
buildFeatures{
buildConfig = true
}
val properties = Properties()
properties.load(rootProject.file("secret.properties").inputStream())
properties.getProperty("API_KEY")
buildTypes {
debug {
buildConfigField("String", "API_KEY", properties.getProperty("API_KEY"))
buildConfigField("String", "BASE_URL", properties.getProperty("BASE_URL"))
isMinifyEnabled = false
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
Expand All @@ -48,47 +50,38 @@ android {
kotlinOptions {
jvmTarget = "17"
}
ksp {
arg("room.schemaLocation", "$projectDir/schemas")
}
}

dependencies {

implementation(project(":domain"))
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
implementation(libs.androidx.room.common.jvm)
implementation(libs.androidx.room.runtime.android)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)

implementation(libs.ktor.client.core)
implementation(libs.ktor.client.okhttp)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.client.cio)
implementation(libs.ktor.client.logging)
implementation(libs.ktor.client.logging.jvm)
implementation(libs.kotlinx.serialization.json)
implementation(libs.ktor.serialization.kotlinx.json)
implementation(libs.kotlinx.datetime)

implementation(project(":domain"))
implementation("com.google.code.gson:gson:2.10.1")

implementation("io.ktor:ktor-client-core:2.3.13")
implementation("io.ktor:ktor-client-cio:2.3.13")
implementation("io.ktor:ktor-client-content-negotiation:2.3.13")

implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.2")
implementation("io.insert-koin:koin-core:3.5.3")
implementation("io.insert-koin:koin-android:3.5.3")

implementation(libs.kotlinx.datetime)



// Room Database - Version 2.7.2
val room_version = "2.7.2"
implementation("androidx.room:room-runtime:$room_version")
// use Kotlin Symbol Processing (KSP
ksp("androidx.room:room-compiler:$room_version")
// Kotlin Extensions and Coroutines support for Room
implementation("androidx.room:room-ktx:$room_version")
// Test helpers
testImplementation("androidx.room:room-testing:${room_version}")
// Paging 3 Integration
implementation("androidx.room:room-paging:${room_version}")

implementation(libs.ktor.logging)

testImplementation("androidx.room:room-testing:$room_version")
implementation("androidx.room:room-paging:$room_version")

implementation(libs.koin.android)
implementation(libs.koin.annotations)
constraints {
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.10")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10")
}
}
27 changes: 27 additions & 0 deletions data/consumer-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Keep model classes for serialization/deserialization
-keepclassmembers class * {
@com.google.gson.annotations.SerializedName <fields>;
}

# Keep Retrofit interfaces
-keep interface retrofit2.** { *; }
-keep class retrofit2.** { *; }
-dontwarn retrofit2.**

# Keep Room database entities and DAOs
-keep class androidx.room.Entity
-keep @androidx.room.* class * { *; }
-keepclassmembers class * {
@androidx.room.* <fields>;
}

# Keep Kotlin data classes (for serialization)
-keepclassmembers class * {
<init>(...);
}

# Keep all classes with @Keep annotation
-keep @androidx.annotation.Keep class * {*;}
-keep @androidx.annotation.Keep class * { *; }

# Add additional rules as needed for your project
28 changes: 17 additions & 11 deletions designSystem/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.compose)
}

android {
Expand Down Expand Up @@ -35,20 +35,26 @@ android {
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.compiler.get()
}
}
}

dependencies {
implementation("androidx.compose.foundation:foundation")
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
debugImplementation(libs.ui.tooling)
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)

//material3
implementation(libs.material3)
implementation(libs.androidx.material3.window.size.class1)
implementation(libs.androidx.material3.adaptive.navigation.suite)
implementation(libs.androidx.material3)
implementation(libs.androidx.material)
implementation(libs.androidx.foundation)
implementation(libs.androidx.material3.window)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
}
15 changes: 6 additions & 9 deletions detectImageContent/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.compose)
}

android {
Expand Down Expand Up @@ -31,11 +31,11 @@ android {
kotlinOptions {
jvmTarget = "17"
}

android {
buildFeatures {
compose = true
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.12"
}
}

Expand All @@ -46,11 +46,8 @@ dependencies {
implementation(libs.material)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)

implementation(libs.coil)
implementation(libs.coil.compose)
implementation(libs.coil.network.okhttp)
implementation(libs.tensorflow.lite)

}
Loading