Mendekotasunak
Mendekotasun guztiak app/build.gradle.ktsn deklaratzen dira Gradleren bertsioen katalogo sistema erabiliz (libs). Bertsio zehatzak gradle/libs.versions.toml proiektuaren fitxategian ebazten dira.
Produkzioaren menpekotasunak
AndroidX Core
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
core.ktx-k Kotlin luzapenak eskaintzen ditu Android APIetarako. lifecycle.runtime.ktx-k osagaiaren bizi-zikloari lotutako esparrua duten koroutinak abiarazteko aukera ematen du. activity.compose ComponentActivity eta Jetpack Compose arteko zubia da.
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 (materialen faktura) tresna-kitaren artefaktu guztien bertsioak sinkronizatzen ditu. material-icons-extended interfazearen osagaietan erabiltzen diren Material Ikurren ikonoen multzo osoa eskaintzen du.
Nabigazioa
implementation("androidx.navigation:navigation-compose:2.7.7")
Nabigazio grafikoa deklaratiboki definitzeko aukera ematen du konposagarriak erabiliz. 2.7.7 bertsioak MainActivity.kt-n erabiltzen diren API mota seguruak eta idatzitako argumentuen kudeaketa onartzen ditu.
Firebase
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.auth)
Firebase BOM-ek Firebase SDK-en bertsioak sinkronizatzen ditu. Bezeroaren SDK mailan autentifikazio-modulua (firebase.auth) bakarrik erabiltzen da, Data Connect GraphQL amaierako puntura HTTP zuzeneko deien bidez deitzen baita.
Supabase
implementation(libs.supabase.postgrest)
implementation(libs.supabase.auth)
implementation(libs.ktor.client.android)
Kotlin-erako Supabase SDK ofiziala modulutan banatuta dago. postgrest CRUD eragiketak kudeatzen ditu PostgreSQL tauletan. supabase.auth-k JWTn oinarritutako autentifikazio-fluxuak eskaintzen ditu. ktor.client.android SDK-ak eskatzen duen azpiko HTTP motorra da.
Tokiko iraunkortasuna
implementation(libs.androidx.datastore.preferences)
DataStore Preferences ThemeManager.kt-n erabiltzen da erabiltzailearen gaiaren (argia/iluna) hobespena saioen artean mantentzeko. SharedPreferences-ren ondorengo gomendatua da koroutinetan modu asinkronoan jarduten denean.
Materiala (ondarea)
implementation(libs.material)
Android View-ren DatePickerDialog eta TimePickerDialog-ekin bateragarritasunerako sartuta dago, MaquinasScreen.kt eta ReservasScreen.kt-n zuzenean instantziatuta daudenez, Compose Material 3-k ez baititu berez ematen elkarrizketa hauek erabilitako bertsioan.
Mendekotasunak probatzen
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)
Tresna-probak app/src/androidTest/-n daude eta unitate-probak app/src/test/-n. Proiektuak Android Studio-k (ExampleInstrumentedTest eta ExampleUnitTest) sortutako proba-klase lehenetsiak biltzen ditu bertsio honetan proba pertsonalizaturik gabe.
Gradle-ren pluginak
// 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)
}
kotlin.compose pluginak Compose konpilatzailea gaitzen du Kotlin 2.0+erako. google.services prozesuak google-services.json. kotlin.serialization-k kotlinx.serialization oharpen-prozesadorea gaitzen du, ereduko datu-klaseek Supabase erantzunetatik deserializazio automatikorako erabiltzen dutena.