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

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

تشمل بعض المزايا المحدّدة لاستخدام ميزة "إنشاء رسالة" على التلفزيون ما يلي:

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

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

التوافق

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

إعداد

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

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

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

Kotlin

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

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

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

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

رائع

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

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

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

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

الميزات المختلفة

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

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

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

مصادر إضافية

محتوى إضافي للقراءة

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