পেজিং লাইব্রেরি ওভারভিউ অ্যান্ড্রয়েড জেটপ্যাকের অংশ।

পেজিং লাইব্রেরি আপনাকে স্থানীয় স্টোরেজ বা নেটওয়ার্কের মাধ্যমে একটি বড় ডেটাসেট থেকে ডেটার পৃষ্ঠাগুলি লোড এবং প্রদর্শন করতে সহায়তা করে। এই পদ্ধতিটি আপনার অ্যাপকে আরও দক্ষতার সাথে নেটওয়ার্ক ব্যান্ডউইথ এবং সিস্টেম সংস্থান উভয়ই ব্যবহার করতে দেয়। পেজিং লাইব্রেরির উপাদানগুলি প্রস্তাবিত অ্যান্ড্রয়েড অ্যাপ আর্কিটেকচারের সাথে মানানসই করার জন্য ডিজাইন করা হয়েছে, অন্যান্য জেটপ্যাক উপাদানগুলির সাথে পরিষ্কারভাবে সংহত করতে এবং প্রথম-শ্রেণীর কোটলিন সমর্থন প্রদান করে৷

পেজিং লাইব্রেরি ব্যবহার করার সুবিধা

পেজিং লাইব্রেরিতে নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে:

  • আপনার পৃষ্ঠাযুক্ত ডেটার জন্য ইন-মেমরি ক্যাশিং। এটি নিশ্চিত করতে সাহায্য করে যে আপনার অ্যাপ পৃষ্ঠাযুক্ত ডেটার সাথে কাজ করার সময় দক্ষতার সাথে সিস্টেম সংস্থানগুলি ব্যবহার করে৷
  • অন্তর্নির্মিত অনুরোধ ডিডপ্লিকেশন, যা নিশ্চিত করতে সাহায্য করে যে আপনার অ্যাপ নেটওয়ার্ক ব্যান্ডউইথ এবং সিস্টেম সংস্থান দক্ষতার সাথে ব্যবহার করে।
  • কনফিগারযোগ্য 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 স্তর
রিপোজিটরি স্তরের পেজিং সোর্স বা রিমোটমিডিয়েটর উপাদানগুলি থেকে ভিউমডেল স্তরের পেজার উপাদানে পেজযুক্ত ডেটা প্রবাহিত একটি চিত্র।     তারপর পেজার উপাদানটি UI স্তরে PagingDataAdapter-এ পেজিং ডেটার একটি প্রবাহ প্রকাশ করে।
চিত্র 1. পেজিং লাইব্রেরি আপনার অ্যাপ আর্কিটেকচারে কীভাবে ফিট করে তার একটি উদাহরণ।

এই বিভাগে পেজিং লাইব্রেরি উপাদানগুলি বর্ণনা করে যা প্রতিটি স্তরে কাজ করে এবং কীভাবে তারা পৃষ্ঠাযুক্ত ডেটা লোড এবং প্রদর্শন করতে একসাথে কাজ করে।

সংগ্রহস্থল স্তর

রিপোজিটরি স্তরের প্রাথমিক পেজিং লাইব্রেরি উপাদান হল PagingSource । প্রতিটি PagingSource অবজেক্ট ডেটার একটি উৎস নির্ধারণ করে এবং সেই উৎস থেকে কীভাবে ডেটা পুনরুদ্ধার করা যায়। একটি PagingSource অবজেক্ট নেটওয়ার্ক উত্স এবং স্থানীয় ডাটাবেস সহ যে কোনও একক উত্স থেকে ডেটা লোড করতে পারে।

আরেকটি পেজিং লাইব্রেরি উপাদান যা আপনি ব্যবহার করতে পারেন তা হল RemoteMediator । একটি RemoteMediator অবজেক্ট একটি স্তরযুক্ত ডেটা উত্স থেকে পেজিং পরিচালনা করে, যেমন একটি স্থানীয় ডাটাবেস ক্যাশ সহ একটি নেটওয়ার্ক ডেটা উত্স।

দেখুন মডেল স্তর

Pager উপাদান একটি PagingSource অবজেক্ট এবং একটি PagingConfig কনফিগারেশন অবজেক্টের উপর ভিত্তি করে প্রতিক্রিয়াশীল স্ট্রীমগুলিতে প্রকাশিত PagingData উদাহরণ তৈরির জন্য একটি সর্বজনীন API প্রদান করে।

যে উপাদানটি ViewModel স্তরটিকে UI এর সাথে সংযুক্ত করে তা হল PagingData । একটি PagingData অবজেক্ট হল পেজিনেটেড ডেটার স্ন্যাপশটের জন্য একটি ধারক। এটি একটি PagingSource অবজেক্টকে জিজ্ঞাসা করে এবং ফলাফল সংরক্ষণ করে।

UI স্তর

UI স্তরের প্রাথমিক পেজিং লাইব্রেরি উপাদান হল PagingDataAdapter , একটি RecyclerView অ্যাডাপ্টার যা পৃষ্ঠাযুক্ত ডেটা পরিচালনা করে।

বিকল্পভাবে, আপনি আপনার নিজস্ব কাস্টম অ্যাডাপ্টার তৈরি করতে অন্তর্ভুক্ত AsyncPagingDataDiffer উপাদান ব্যবহার করতে পারেন।

অতিরিক্ত সম্পদ

পেজিং লাইব্রেরি সম্পর্কে আরও জানতে, নিম্নলিখিত অতিরিক্ত সংস্থানগুলি দেখুন:

কোডল্যাব

নমুনা

{% শব্দার্থে %} {% endverbatim %} {% শব্দার্থে %} {% endverbatim %}