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

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

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

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

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

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

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

सेटअप

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

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

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

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'
}

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

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

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

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

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

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

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

अन्य संसाधन

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

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