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

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

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

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

التوافق

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

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

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

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

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

Kotlin

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

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

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

   // Compose for TV dependencies
   val tvCompose = "1.0.0-alpha10"
   implementation("androidx.tv:tv-foundation:$tvCompose")
   implementation("androidx.tv:tv-material:$tvCompose")
}

رائع

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

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

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

   // Compose for TV dependencies
   def tvCompose = '1.0.0-alpha10'
   implementation 'androidx.tv:tv-foundation:$tvCompose'
   implementation 'androidx.tv:tv-material:$tvCompose'
}

أوجه الاختلاف

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

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

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

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

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