إعداد حالة واجهة المستخدم (طرق العرض)

مفاهيم وتنفيذ Jetpack Compose

في الأساس، إنتاج الحالة هو تطبيق تدريجي للتغييرات على حالة واجهة المستخدم. تكون الحالة موجودة دائمًا، وتتغيّر نتيجةً للأحداث. يلخّص الجدول أدناه الاختلافات بين الأحداث والحالة:

الأحداث

الحالة

عابرة وغير متوقّعة ومحدودة المدة

موجودة دائمًا

مدخلات إنتاج الحالة

ناتج إنتاج الحالة

ناتج واجهة المستخدم أو مصادر أخرى

تستهلكه واجهة المستخدم

يمكن أن تأتي الأحداث من:

  • المستخدمون: أثناء تفاعلهم مع واجهة مستخدم التطبيق
  • مصادر أخرى لتغيير الحالة: واجهات برمجة التطبيقات التي تعرض بيانات التطبيق من واجهة المستخدم، النطاق أو طبقات البيانات، مثل أحداث مهلة شريط الإشعارات أو حالات الاستخدام أو المستودعات على التوالي

واجهات برمجة التطبيقات لإنتاج الحالة

هناك واجهتا برمجة تطبيقات رئيسيتان تُستخدمان في إنتاج الحالة، وذلك حسب مرحلة البنية الأساسية التي تستخدمها:

مرحلة مسار التعلّم

واجهة برمجة التطبيقات

الإدخال

عليك استخدام واجهات برمجة التطبيقات غير المتزامنة لتنفيذ العمل خارج سلسلة واجهة المستخدم من أجل الحفاظ على سلاسة واجهة المستخدم. على سبيل المثال، أنماط "كوروتين" أو "تدفقات" في Kotlin، و RxJava أو عمليات معاودة الاتصال في لغة برمجة Java

الناتج

عليك استخدام واجهات برمجة التطبيقات الخاصة بحاويات البيانات القابلة للمراقبة لإبطال واجهة المستخدم وإعادة عرضها عند تغيُّر الحالة. على سبيل المثال، StateFlow أو LiveData تضمن حاويات البيانات القابلة للمراقبة أن يكون لدى واجهة المستخدم دائمًا حالة واجهة مستخدم لعرضها على الشاشة

من بين واجهتَي برمجة التطبيقات، يكون لاختيار واجهة برمجة التطبيقات غير المتزامنة للإدخال تأثير أكبر في طبيعة البنية الأساسية لإنتاج الحالة من اختيار واجهة برمجة التطبيقات القابلة للمراقبة للناتج. ويرجع ذلك إلى أنّ المدخلات تحدّد نوع المعالجة التي يمكن تطبيقها على البنية الأساسية.

تجميع مسار التعلّم لإنتاج الحالة

تتناول الأقسام التالية تقنيات إنتاج الحالة الأنسب لمختلف المدخلات وواجهات برمجة التطبيقات المطابقة للناتج. تتألف كل بنية أساسية لإنتاج الحالة من مجموعة من المدخلات والمخرجات، ويجب أن تكون:

  • مدرِكة لدورة الحياة: في حال عدم ظهور واجهة المستخدم أو عدم نشاطها، يجب ألا تستهلك البنية الأساسية لإنتاج الحالة أي موارد ما لم يكن ذلك مطلوبًا بشكلٍ صريح.
  • سهلة الاستخدام: يجب أن تتمكّن واجهة المستخدم من عرض حالة واجهة المستخدم المنتَجة بسهولة. ستختلف اعتبارات ناتج البنية الأساسية لإنتاج الحالة باختلاف واجهات برمجة التطبيقات المختلفة للعرض، مثل نظام العرض أو Jetpack Compose.

أنواع النواتج في البنى الأساسية لإنتاج الحالة

يعتمد اختيار واجهة برمجة التطبيقات للناتج لحالة واجهة المستخدم وطبيعة عرضها إلى حد كبير على واجهة برمجة التطبيقات التي يستخدمها تطبيقك لعرض واجهة المستخدم. في تطبيقات Android، يمكنك اختيار استخدام "طرق العرض" أو Jetpack Compose. تشمل الاعتبارات هنا ما يلي:

يلخّص الجدول التالي واجهات برمجة التطبيقات التي يجب استخدامها في البنية الأساسية لإنتاج الحالة عند استخدام إطار عمل "طرق العرض":

الإدخال

الناتج

واجهات برمجة التطبيقات التي يتم تنفيذها مرة واحدة

StateFlow أو LiveData

واجهات برمجة التطبيقات التي تنقل البيانات بشكل مستمر

StateFlow أو LiveData

واجهات برمجة التطبيقات التي يتم تنفيذها مرة واحدة والتي تنقل البيانات بشكل مستمر

StateFlow أو LiveData