انتقل إلى المحتوى الرئيسي

التبعيات

تم الإعلان عن جميع التبعيات في app/build.gradle.kts باستخدام نظام كتالوج إصدار Gradle (libs). يتم حل الإصدارات المحددة في ملف المشروع gradle/libs.versions.toml.

تبعيات الإنتاج​

أندرويد اكس كور​

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

core.ktx يوفر امتدادات Kotlin لواجهات برمجة تطبيقات Android. lifecycle.runtime.ktx يسمح بإطلاق coroutines بنطاق مرتبط بدورة حياة المكون. activity.compose هو الجسر بين ComponentActivity وJetpack Compose.

Jetpack Compose + المادة 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 (قائمة المواد) بمزامنة إصدارات كافة العناصر الموجودة في مجموعة الأدوات. يوفر material-icons-extended مجموعة كاملة من أيقونات رموز المواد المستخدمة في مكونات الواجهة المختلفة.

ملاحة​

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

يسمح بتحديد الرسم البياني للتنقل بشكل تعريفي باستخدام العناصر المركبة. يدعم الإصدار 2.7.7 واجهات برمجة التطبيقات الآمنة من النوع ومعالجة الوسائط المكتوبة المستخدمة في MainActivity.kt.

فايربيس​

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

يقوم Firebase BOM بمزامنة إصدارات Firebase SDK. يتم استخدام وحدة المصادقة (firebase.auth) فقط على مستوى SDK للعميل، حيث يتم استدعاء Data Connect عبر مكالمات HTTP المباشرة إلى نقطة نهاية GraphQL.

سوباس​

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

تنقسم حزمة Supabase SDK الرسمية لـ Kotlin إلى وحدات. postgrest يدير عمليات CRUD على جداول PostgreSQL. يوفر supabase.auth تدفقات المصادقة المستندة إلى JWT. ktor.client.android هو محرك HTTP الأساسي المطلوب بواسطة SDK.

الثبات المحلي​

implementation(libs.androidx.datastore.preferences)

يتم استخدام تفضيلات DataStore في ThemeManager.kt للاستمرار في تفضيل سمة المستخدم (فاتح/داكن) بين الجلسات. إنه الوريث الموصى به لـ SharedPreferences عند العمل بشكل غير متزامن على coroutines.

المادة (القديمة)​

implementation(libs.material)

تم تضمينه للتوافق مع DatePickerDialog وTimePickerDialog في Android View، والتي تم إنشاء مثيل لها مباشرة في MaquinasScreen.kt وReservasScreen.kt نظرًا لأن Compose Material 3 لا يوفر مربعات الحوار هذه أصلاً في الإصدار المستخدم.

اختبار التبعيات​

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)

توجد الاختبارات المجهزة في app/src/androidTest/ واختبارات الوحدة في app/src/test/. يتضمن المشروع فئات الاختبار الافتراضية التي تم إنشاؤها بواسطة Android Studio (ExampleInstrumentedTest وExampleUnitTest) مع عدم وجود اختبارات مخصصة إضافية في هذا الإصدار.

ملحقات 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)
}

يعمل المكون الإضافي kotlin.compose على تمكين برنامج التحويل البرمجي Compose لـ Kotlin 2.0+. google.services العمليات google-services.json. kotlin.serialization يمكّن معالج التعليقات التوضيحية kotlinx.serialization، الذي تستخدمه فئات بيانات النموذج لإلغاء التسلسل التلقائي من استجابات Supabase.