पेजिंग लाइब्रेरी के बारे में खास जानकारी यह Android Jetpack का हिस्सा है.
पेजिंग लाइब्रेरी की मदद से, किसी बड़े डेटासेट के पेज को लोकल स्टोरेज या नेटवर्क से लोड और दिखाया जा सकता है. इस तरीके से, आपका ऐप्लिकेशन नेटवर्क बैंडविड्थ और सिस्टम के संसाधनों, दोनों का ज़्यादा बेहतर तरीके से इस्तेमाल कर पाता है. पेजिंग लाइब्रेरी के कॉम्पोनेंट को, सुझाई गई Android ऐप्लिकेशन के आर्किटेक्चर में फ़िट करने के लिए डिज़ाइन किया गया है. साथ ही, इन्हें Jetpack के अन्य कॉम्पोनेंट के साथ आसानी से इंटिग्रेट किया जा सकता है. साथ ही, ये Kotlin के साथ बेहतरीन तरीके से काम करते हैं.
पेजिंग लाइब्रेरी का इस्तेमाल करने के फ़ायदे
पेजिंग लाइब्रेरी में ये सुविधाएं शामिल हैं:
- पेज किए गए डेटा के लिए, कैश मेमोरी में कैश मेमोरी. इससे यह पक्का करने में मदद मिलती है कि पेज वाले डेटा के साथ काम करते समय, आपका ऐप्लिकेशन सिस्टम के संसाधनों का बेहतर तरीके से इस्तेमाल करे.
- अनुरोधों को डुप्लीकेट होने से रोकने की सुविधा, जो यह पक्का करने में मदद करती है कि आपका ऐप्लिकेशन नेटवर्क बैंडविड्थ और सिस्टम के संसाधनों का बेहतर तरीके से इस्तेमाल करे.
- कॉन्फ़िगर किए जा सकने वाले ऐसे
RecyclerView
एडेप्टर जो उपयोगकर्ता के लोड किए गए डेटा के आखिर तक स्क्रोल करने पर, अपने-आप डेटा का अनुरोध करते हैं. - Kotlin कोरुटिन और फ़्लो के साथ-साथ,
LiveData
और RxJava के लिए बेहतरीन सहायता. - गड़बड़ी को मैनेज करने के लिए, बिल्ट-इन सहायता. इसमें रीफ़्रेश करने और फिर से कोशिश करने की सुविधाएं भी शामिल हैं.
सुझाव या राय दें
आपके सुझाव, शिकायत या राय से हमें Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए कोई सुझाव है, तो हमें बताएं. नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याएं देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या पर अपना वोट जोड़ा जा सकता है.
सुझाव, शिकायत या राय सबमिट करने के बारे में ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.
सेटअप
अपने Android ऐप्लिकेशन में पेजिंग कॉम्पोनेंट इंपोर्ट करने के लिए, अपने ऐप्लिकेशन की build.gradle
फ़ाइल में ये डिपेंडेंसी जोड़ें:
ग्रूवी
dependencies { def paging_version = "3.3.2" implementation "androidx.paging:paging-runtime:$paging_version" // alternatively - without Android dependencies for tests testImplementation "androidx.paging:paging-common:$paging_version" // optional - RxJava2 support implementation "androidx.paging:paging-rxjava2:$paging_version" // optional - RxJava3 support implementation "androidx.paging:paging-rxjava3:$paging_version" // optional - Guava ListenableFuture support implementation "androidx.paging:paging-guava:$paging_version" // optional - Jetpack Compose integration implementation "androidx.paging:paging-compose:3.3.2" }
Kotlin
dependencies { val paging_version = "3.3.2" implementation("androidx.paging:paging-runtime:$paging_version") // alternatively - without Android dependencies for tests testImplementation("androidx.paging:paging-common:$paging_version") // optional - RxJava2 support implementation("androidx.paging:paging-rxjava2:$paging_version") // optional - RxJava3 support implementation("androidx.paging:paging-rxjava3:$paging_version") // optional - Guava ListenableFuture support implementation("androidx.paging:paging-guava:$paging_version") // optional - Jetpack Compose integration implementation("androidx.paging:paging-compose:3.3.2") }
लाइब्रेरी आर्किटेक्चर
पेजिंग लाइब्रेरी के कॉम्पोनेंट, आपके ऐप्लिकेशन की तीन लेयर में काम करते हैं:
- रिपॉज़िटरी लेयर
ViewModel
लेयर- यूज़र इंटरफ़ेस (यूआई) लेयर
इस सेक्शन में, पेजिंग लाइब्रेरी के उन कॉम्पोनेंट के बारे में बताया गया है जो हर लेयर पर काम करते हैं. साथ ही, यह भी बताया गया है कि पेज किए गए डेटा को लोड और दिखाने के लिए, ये कॉम्पोनेंट एक साथ कैसे काम करते हैं.
रिपॉज़िटरी लेयर
रिपॉज़िटरी लेयर में, पेजिंग लाइब्रेरी का मुख्य कॉम्पोनेंट PagingSource
है. हर PagingSource
ऑब्जेक्ट, डेटा के सोर्स और उस सोर्स से डेटा पाने का तरीका तय करता है. PagingSource
ऑब्जेक्ट, किसी भी सोर्स से डेटा लोड कर सकता है. इसमें नेटवर्क सोर्स और लोकल डेटाबेस भी शामिल हैं.
पेजिंग लाइब्रेरी का एक और कॉम्पोनेंट, RemoteMediator
है. इसका इस्तेमाल किया जा सकता है. RemoteMediator
ऑब्जेक्ट, लेयर वाले डेटा सोर्स से पेजिंग को मैनेज करता है. जैसे, लोकल डेटाबेस कैश मेमोरी वाला नेटवर्क डेटा सोर्स.
ViewModel लेयर
Pager
कॉम्पोनेंट, PagingData
के इंस्टेंस बनाने के लिए एक सार्वजनिक एपीआई उपलब्ध कराता है. ये इंस्टेंस, PagingSource
ऑब्जेक्ट और PagingConfig
कॉन्फ़िगरेशन ऑब्जेक्ट के आधार पर, रिएक्टिव स्ट्रीम में दिखाए जाते हैं.
ViewModel
लेयर को यूज़र इंटरफ़ेस (यूआई) से जोड़ने वाला कॉम्पोनेंट,
PagingData
है. PagingData
ऑब्जेक्ट, पेज किए गए डेटा के स्नैपशॉट के लिए एक कंटेनर होता है. यह किसी PagingSource
ऑब्जेक्ट से क्वेरी करता है और नतीजे को सेव करता है.
यूज़र इंटरफ़ेस (यूआई) लेयर
यूज़र इंटरफ़ेस (यूआई) लेयर में, पेजिंग लाइब्रेरी का मुख्य कॉम्पोनेंट PagingDataAdapter
है. यह एक ऐसा RecyclerView
एडेप्टर है जो पेज किए गए डेटा को मैनेज करता है.
इसके अलावा, अपना कस्टम अडैप्टर बनाने के लिए, शामिल किए गए AsyncPagingDataDiffer
कॉम्पोनेंट का इस्तेमाल किया जा सकता है.
अन्य संसाधन
पेजिंग लाइब्रेरी के बारे में ज़्यादा जानने के लिए, यहां दिए गए अन्य संसाधन देखें:
कोडलैब
- Android पेजिंग के बुनियादी सिद्धांतों के बारे में जानकारी देने वाला कोडलैब
- Android पेजिंग के बारे में ऐडवांस कोडलैब
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- पेज किए गए डेटा को लोड और दिखाना
- पेजिंग 3 पर माइग्रेट करना
- नेटवर्क और डेटाबेस से पेज