পেজিং লাইব্রেরি ওভারভিউ অ্যান্ড্রয়েড জেটপ্যাকের অংশ।
পেজিং লাইব্রেরি আপনাকে স্থানীয় স্টোরেজ বা নেটওয়ার্কের মাধ্যমে একটি বড় ডেটাসেট থেকে ডেটার পৃষ্ঠাগুলি লোড এবং প্রদর্শন করতে সহায়তা করে। এই পদ্ধতিটি আপনার অ্যাপকে আরও দক্ষতার সাথে নেটওয়ার্ক ব্যান্ডউইথ এবং সিস্টেম সংস্থান উভয়ই ব্যবহার করতে দেয়। পেজিং লাইব্রেরির উপাদানগুলি প্রস্তাবিত অ্যান্ড্রয়েড অ্যাপ আর্কিটেকচারের সাথে মানানসই করার জন্য ডিজাইন করা হয়েছে, অন্যান্য জেটপ্যাক উপাদানগুলির সাথে পরিষ্কারভাবে সংহত করতে এবং প্রথম-শ্রেণীর কোটলিন সমর্থন প্রদান করে৷
পেজিং লাইব্রেরি ব্যবহার করার সুবিধা
পেজিং লাইব্রেরিতে নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে:
- আপনার পৃষ্ঠাযুক্ত ডেটার জন্য ইন-মেমরি ক্যাশিং। এটি নিশ্চিত করতে সাহায্য করে যে আপনার অ্যাপ পৃষ্ঠাযুক্ত ডেটার সাথে কাজ করার সময় দক্ষতার সাথে সিস্টেম সংস্থানগুলি ব্যবহার করে৷
- অন্তর্নির্মিত অনুরোধ ডিডপ্লিকেশন, যা নিশ্চিত করতে সাহায্য করে যে আপনার অ্যাপ নেটওয়ার্ক ব্যান্ডউইথ এবং সিস্টেম সংস্থান দক্ষতার সাথে ব্যবহার করে।
- কনফিগারযোগ্য
RecyclerView
অ্যাডাপ্টার যা ব্যবহারকারী লোড করা ডেটার শেষের দিকে স্ক্রোল করার সাথে সাথে স্বয়ংক্রিয়ভাবে ডেটার অনুরোধ করে। - Kotlin coroutines এবং প্রবাহের পাশাপাশি
LiveData
এবং RxJava-এর জন্য প্রথম-শ্রেণীর সমর্থন। - রিফ্রেশ এবং পুনরায় চেষ্টা করার ক্ষমতা সহ ত্রুটি পরিচালনার জন্য অন্তর্নির্মিত সমর্থন।
মতামত প্রদান
আপনার প্রতিক্রিয়া জেটপ্যাককে আরও ভাল করতে সাহায্য করে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন বা এই লাইব্রেরির উন্নতির জন্য ধারনা পান তাহলে আমাদের জানান। আপনি একটি নতুন একটি তৈরি করার আগে এই লাইব্রেরির জন্য বিদ্যমান সমস্যাগুলি পরীক্ষা করুন৷ আপনি তারকা বোতামে ক্লিক করে একটি বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
প্রতিক্রিয়া জমা দেওয়ার বিষয়ে আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
সেটআপ
আপনার অ্যান্ড্রয়েড অ্যাপে পেজিং উপাদান আমদানি করতে, আপনার অ্যাপের 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" }
কোটলিন
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
স্তর - UI স্তর
এই বিভাগে পেজিং লাইব্রেরি উপাদানগুলি বর্ণনা করে যা প্রতিটি স্তরে কাজ করে এবং কীভাবে তারা পৃষ্ঠাযুক্ত ডেটা লোড এবং প্রদর্শন করতে একসাথে কাজ করে।
সংগ্রহস্থল স্তর
রিপোজিটরি স্তরের প্রাথমিক পেজিং লাইব্রেরি উপাদান হল PagingSource
। প্রতিটি PagingSource
অবজেক্ট ডেটার একটি উৎস নির্ধারণ করে এবং সেই উৎস থেকে কীভাবে ডেটা পুনরুদ্ধার করা যায়। একটি PagingSource
অবজেক্ট নেটওয়ার্ক উত্স এবং স্থানীয় ডাটাবেস সহ যে কোনও একক উত্স থেকে ডেটা লোড করতে পারে।
আরেকটি পেজিং লাইব্রেরি উপাদান যা আপনি ব্যবহার করতে পারেন তা হল RemoteMediator
। একটি RemoteMediator
অবজেক্ট একটি স্তরযুক্ত ডেটা উত্স থেকে পেজিং পরিচালনা করে, যেমন একটি স্থানীয় ডাটাবেস ক্যাশ সহ একটি নেটওয়ার্ক ডেটা উত্স।
দেখুন মডেল স্তর
Pager
উপাদান একটি PagingSource
অবজেক্ট এবং একটি PagingConfig
কনফিগারেশন অবজেক্টের উপর ভিত্তি করে প্রতিক্রিয়াশীল স্ট্রীমগুলিতে প্রকাশিত PagingData
উদাহরণ তৈরির জন্য একটি সর্বজনীন API প্রদান করে।
যে উপাদানটি ViewModel
স্তরটিকে UI এর সাথে সংযুক্ত করে তা হল PagingData
। একটি PagingData
অবজেক্ট হল পেজিনেটেড ডেটার স্ন্যাপশটের জন্য একটি ধারক। এটি একটি PagingSource
অবজেক্টকে জিজ্ঞাসা করে এবং ফলাফল সংরক্ষণ করে।
UI স্তর
UI স্তরের প্রাথমিক পেজিং লাইব্রেরি উপাদান হল PagingDataAdapter
, একটি RecyclerView
অ্যাডাপ্টার যা পৃষ্ঠাযুক্ত ডেটা পরিচালনা করে।
বিকল্পভাবে, আপনি আপনার নিজস্ব কাস্টম অ্যাডাপ্টার তৈরি করতে অন্তর্ভুক্ত AsyncPagingDataDiffer
উপাদান ব্যবহার করতে পারেন।
অতিরিক্ত সম্পদ
পেজিং লাইব্রেরি সম্পর্কে আরও জানতে, নিম্নলিখিত অতিরিক্ত সংস্থানগুলি দেখুন:
কোডল্যাব
নমুনা
{% শব্দার্থে %}আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট প্রদর্শিত হয়
- পৃষ্ঠাযুক্ত ডেটা লোড এবং প্রদর্শন করুন
- পেজিং 3 এ স্থানান্তর করুন
- নেটওয়ার্ক এবং ডাটাবেস থেকে পৃষ্ঠা