استخدام Jetpack Compose على Android TV

Compose for TV هو النهج الحديث لإنشاء واجهة مستخدم Android TV. توفّر أداة Compose لأجهزة التلفزيون جميع مزايا Jetpack Compose من Android لتطبيقاتك المخصّصة لأجهزة التلفزيون، ما يسهّل بشكلٍ كبير إنشاء واجهات مستخدم جميلة وعملية لتطبيقك.

في ما يلي بعض المزايا المحدّدة لاستخدام تطبيق "الكتابة على الشاشة" لأجهزة التلفزيون:

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

إذا لم تكن معتادًا على استخدام مجموعة أدوات Jetpack Compose، يمكنك الاطّلاع على مسار الإنشاء. تنطبق العديد من مبادئ تطوير ميزة "الكتابة الصوتية" على الأجهزة الجوّالة على التلفزيون أيضًا. اطّلِع على أسباب استخدام Compose للحصول على مزيد من الاطّلاع على المزايا العامة لإطار عمل واجهة المستخدم التعريفي. للاطّلاع على معلومات إضافية، يمكنك أيضًا الاطّلاع على مستودع نماذج Compose for TV على GitHub.

التوافق

تعمل ميزة Compose for TV على أجهزة Android TV التي تعمل بالإصدار 5.0 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث. يتطلب استخدام الإصدار 1.0 من Compose لأجهزة التلفزيون الإصدار 1.3.0 من مكتبات androidx.compose وKotlin 1.7.10.

ضبط إعدادات الجهاز

يشبه استخدام Jetpack Compose على Android TV استخدام Jetpack Compose لأي مشروع آخر على Android. يكمن الاختلاف الرئيسي في أنّ تطبيق "الإنشاء للتلفزيون" يضيف مكتبات تتضمّن مكوّنات محسّنة للتلفزيون وتسهّل إنشاء واجهات مستخدم مخصّصة للتلفزيون. وفي بعض الحالات، تحمل هذه المكوّنات الاسم نفسه الذي تحمله نظيراتها غير التابعة للتلفزيون، مثل androidx.tv.material3.Button وandroidx.compose.material3.Button.

اعتماديات مجموعة أدوات Jetpack Compose

لاستخدام Compose لأجهزة التلفزيون، يجب تضمين تبعيات مجموعة أدوات Jetpack Compose في ملف build.gradle الخاص بتطبيقك على النحو التالي:

Kotlin

dependencies {
   val composeBom = platform("androidx.compose:compose-bom:2024.10.01")
   implementation(composeBom)

   // General compose dependencies.
   implementation("androidx.activity:activity-compose:1.9.2")

   implementation("androidx.compose.ui:ui-tooling-preview")
   debugImplementation("androidx.compose.ui:ui-tooling")

   // Compose for TV dependencies.
   implementation("androidx.tv:tv-material:1.0.0")
}

رائع

dependencies {
   def composeBom = platform('androidx.compose:compose-bom:2024.10.01')
   implementation composeBom

   // General compose dependencies.
   implementation 'androidx.activity:activity-compose:1.9.2'

   implementation 'androidx.compose.ui:ui-tooling-preview'
   debugImplementation 'androidx.compose.ui:ui-tooling'

   // Compose for TV dependencies.
   implementation 'androidx.tv:tv-material:1.0.0'
}

الاختلافات

صُمِّمت مكونات مواد التلفزيون لتناسب غرفة المعيشة، وذلك باستخدام مؤشرات واضحة للتركيز وسلوك الإدخال المتوافق عن بُعد. للاطّلاع على تفاصيل حول كيفية استخدام هذه المكوّنات المحدّدة، يمكنك الاطّلاع على أدلّة تصميم واجهة المستخدم في التلفزيون.

الشكل 1. نموذج لمكونات من مكتبة مواد التلفزيون.

استخدِم إصدار التلفزيون من واجهات برمجة التطبيقات متى أمكن للاستفادة من هذه الميزات.

على الرغم من أنّه من الممكن من الناحية الفنية استخدام الإصدار المتوافق مع الأجهزة الجوّالة من Compose Material، فإنه لم يتم تحسينه لتناسب أسلوب التفاعلات الفريد على Android TV. بالإضافة إلى ذلك، يمكن أن يؤدي خلط محتوى Compose Material مع محتوى Compose Material من Compose for TV إلى حدوث سلوك غير متوقّع. على سبيل المثال، من المحتمل أن تكون الألوان أو أسلوب الخط أو الأشكال غير متّسقة في حال استخدام كلا الإصدارين، وذلك بسبب احتواء كل مكتبة على عنصر MaterialTheme خاص بها.

يوضّح الجدول التالي الاختلافات في التبعية بين الأجهزة التلفزيونية و الأجهزة الجوّالة:

التبعية لنظام التشغيل التلفزيوني
(androidx.tv.*)
المقارنة الاعتمادية على الأجهزة الجوّالة
(androidx.compose.*)
androidx.tv:tv-material بدلاً من androidx.compose.material3:material3

مصادر إضافية

مراجع إضافية

يمكنك الاطّلاع على هذه الأدلّة لمعرفة كيفية إنشاء تجارب رائعة محسَّنة للتلفزيون: