Android TV पर Jetpack Compose का इस्तेमाल करना

Compose for TV, Android TV के यूज़र इंटरफ़ेस बनाने का आधुनिक तरीका है. Compose for TV, आपके टीवी ऐप्लिकेशन के लिए Android के Jetpack Compose के सभी फ़ायदे उपलब्ध कराता है. इससे, आपके ऐप्लिकेशन के लिए सुंदर और काम के यूज़र इंटरफ़ेस (यूआई) बनाना बहुत आसान हो जाता है.

'टीवी के लिए लिखें' सुविधा का इस्तेमाल करने के कुछ खास फ़ायदे यहां दिए गए हैं:

  • सुविधाजनक: 'लिखें' सुविधा का इस्तेमाल करके, आसान लेआउट से लेकर मुश्किल ऐनिमेशन तक, किसी भी तरह का यूज़र इंटरफ़ेस (यूआई) बनाया जा सकता है. कॉम्पोनेंट, बिना किसी बदलाव के काम करते हैं. हालांकि, इन्हें अपने ऐप्लिकेशन की ज़रूरतों के हिसाब से पसंद के मुताबिक बनाया जा सकता है और इनमें स्टाइल भी जोड़ी जा सकती है.
  • आसान और तेज़ी से डेवलपमेंट: Compose, मौजूदा कोड के साथ काम करता है. साथ ही, डेवलपर को कम कोड के साथ ऐप्लिकेशन को ज़्यादा बेहतर तरीके से बनाने में मदद करता है.
  • इंटियूटिव: Compose, डिक्लेरेटिव सिंटैक्स का इस्तेमाल करता है. इससे, अपने यूज़र इंटरफ़ेस (यूआई) में बदलाव करने, कोड को डीबग करने, समझने, और उसकी समीक्षा करने में मदद मिलती है.

अगर आपको Jetpack Compose टूलकिट इस्तेमाल करने के बारे में कोई जानकारी नहीं है, तो लिखें पाथवे देखें. मोबाइल Compose के लिए डेवलपमेंट के कई सिद्धांत, टीवी पर भी लागू होते हैं. डिक्लेरेटिव यूआई फ़्रेमवर्क के सामान्य फ़ायदों के बारे में ज़्यादा जानकारी के लिए, क्यों लिखें पढ़ें. ज़्यादा जानने के लिए, GitHub पर Compose for TV के सैंपल का डेटा स्टोर करने की जगह भी देखें.

इनके साथ काम करता है

'टीवी के लिए कॉम्पोज़ करें' सुविधा, Android 5.0 (एपीआई लेवल 21) या उसके बाद के वर्शन वाले Android TV पर काम करती है. 'टीवी के लिए लिखें' के वर्शन 1.0 का इस्तेमाल करने के लिए, androidx.compos लाइब्रेरी का 1.3.0 और Kotlin 1.7.10 होना ज़रूरी है.

सेटअप

Android TV पर Jetpack Compose का इस्तेमाल करना, किसी दूसरे Android प्रोजेक्ट के लिए Jetpack Compose की सुविधा जैसा है. मुख्य अंतर यह है कि 'टीवी के लिए लिखें' सुविधा में ऐसी लाइब्रेरी जुड़ जाती हैं जो टीवी के लिए ऑप्टिमाइज़ किए गए कॉम्पोनेंट देती हैं. साथ ही, टीवी के हिसाब से यूज़र इंटरफ़ेस बनाना भी आसान हो जाता है. कुछ मामलों में, उन कॉम्पोनेंट का नाम वही होता है जो टीवी के अलावा अन्य डिवाइसों के लिए होता है. जैसे, androidx.tv.material3.Button और androidx.compose.material3.Button.

Jetpack Compose टूलकिट की डिपेंडेंसी

'टीवी के लिए लिखें' सुविधा का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन की build.gradle फ़ाइल पर Jetpack Compose टूलकिट शामिल करें. इसका तरीका यहां बताया गया है:

Kotlin

dependencies {
   val composeBom = platform("androidx.compose:compose-bom:2024.09.03")
   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")
}

Groovy

dependencies {
   def composeBom = platform('androidx.compose:compose-bom:2024.09.03')
   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'
}

इसमें क्या फ़र्क़ है

टीवी के कॉन्टेंट के कॉम्पोनेंट लिविंग रूम के लिए डिज़ाइन किए गए हैं, जिनमें साफ़ फ़ोकस इंडिकेटर और रिमोट-फ़्रेंडली इनपुट व्यवहार होते हैं. इन कॉम्पोनेंट को इस्तेमाल करने के तरीके के बारे में जानने के लिए, टीवी के यूज़र इंटरफ़ेस (यूआई) के डिज़ाइन से जुड़ी गाइड देखें.

पहला डायग्राम. टीवी मटीरियल लाइब्रेरी के सैंपल कॉम्पोनेंट.

इन सुविधाओं का फ़ायदा पाने के लिए, जहां भी हो सके वहां एपीआई के टीवी वर्शन का इस्तेमाल करें.

Compose Material के मोबाइल वर्शन का इस्तेमाल तकनीकी तौर पर किया जा सकता है. हालांकि, इसे Android TV पर इंटरैक्शन के यूनीक स्टाइल के लिए ऑप्टिमाइज़ नहीं किया गया है. इसके अलावा, Compose for TV से Compose मटीरियल के साथ Compose मटीरियल को मिलाने पर, अनचाहा बर्ताव हो सकता है. उदाहरण के लिए, हर लाइब्रेरी का अपना MaterialTheme ऑब्जेक्ट होता है. इसलिए, हो सकता है कि दोनों वर्शन का इस्तेमाल करने पर रंग, टाइपोग्राफ़ी या अलग-अलग आकार एक जैसे न हों.

यहां दी गई टेबल में, टीवी और मोबाइल के बीच डिपेंडेंसी के अंतर के बारे में बताया गया है:

टीवी डिपेंडेंसी
(androidx.tv.*)
तुलना मोबाइल डिपेंडेंसी
(androidx.compose.*)
androidx.tv:tv-material इसके बजाय androidx.compos.material3:material3

अन्य संसाधन

इसके बारे में और पढ़ें

टीवी के लिए ऑप्टिमाइज़ किए गए शानदार अनुभव बनाने के बारे में जानने के लिए, ये गाइड देखें: