Saltatu eduki nagusira

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.