Ir ao contido principal

Dependencias

Todas as dependencias decláranse en app/build.gradle.kts usando o sistema de catálogo de versións de Gradle (libs). As versións específicas resólvense no ficheiro do proxecto gradle/libs.versions.toml.

Dependencias de produción​

AndroidX Core​

implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)

core.ktx ofrece extensións de Kotlin para as API de Android. lifecycle.runtime.ktx permite lanzar corrutinas con alcance vinculado ao ciclo de vida do compoñente. activity.compose é a ponte entre ComponentActivity e Jetpack Compose.

Jetpack Compose + Material 3​

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("androidx.compose.material3:material3:1.2.0")
implementation("androidx.compose.material:material-icons-extended")

Compose BOM (Bill of Materials) sincroniza as versións de todos os artefactos do kit de ferramentas. material-icons-extended ofrece o conxunto completo de iconas de símbolos materiais utilizados nos distintos compoñentes da interface.

implementation("androidx.navigation:navigation-compose:2.7.7")

Permite definir a gráfica de navegación de forma declarativa mediante composables. A versión 2.7.7 admite API de tipo seguro e o manexo de argumentos escritos usados ​​en MainActivity.kt.

Firebase​

implementation(platform(libs.firebase.bom))
implementation(libs.firebase.auth)

A BOM de Firebase sincroniza as versións dos SDK de Firebase. Só se usa o módulo de autenticación (firebase.auth) a nivel de SDK do cliente, xa que Data Connect invócase mediante chamadas HTTP directas ao punto final de GraphQL.

Supabase​

implementation(libs.supabase.postgrest)
implementation(libs.supabase.auth)
implementation(libs.ktor.client.android)

O SDK oficial de Supabase para Kotlin está dividido en módulos. postgrest xestiona as operacións CRUD en táboas PostgreSQL. supabase.auth ofrece fluxos de autenticación baseados en JWT. ktor.client.android é o motor HTTP subxacente requirido polo SDK.

Persistencia local​

implementation(libs.androidx.datastore.preferences)

As preferencias de DataStore úsanse en ThemeManager.kt para manter a preferencia do tema (claro/escuro) do usuario entre sesións. É o sucesor recomendado de SharedPreferences cando se opera de forma asíncrona en corrutinas.

Material (herdado)​

implementation(libs.material)

Inclúese para compatibilidade cos DatePickerDialog e TimePickerDialog de Android View, que se crean directamente en MaquinasScreen.kt e ReservasScreen.kt xa que Compose Material 3 non proporciona estes diálogos de forma nativa na versión utilizada.

Probando dependencias​

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)

As probas instrumentadas atópanse en app/src/androidTest/ e as unitarias en app/src/test/. O proxecto inclúe as clases de proba predeterminadas xeradas por Android Studio (ExampleInstrumentedTest e ExampleUnitTest) sen probas personalizadas adicionais nesta versión.

Complementos de Gradle​

// app/build.gradle.kts
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.google.services)
alias(libs.plugins.kotlin.serialization)
}

O complemento kotlin.compose activa o compilador Compose para Kotlin 2.0+. google.services procesos google-services.json. kotlin.serialization habilita o procesador de anotacións kotlinx.serialization, usado polas clases de datos do modelo para a deserialización automática das respostas de Supabase.