ধারণা এবং জেটপ্যাক কম্পোজ বাস্তবায়ন
মূলত, স্টেট প্রোডাকশন হলো UI স্টেটে পরিবর্তনসমূহের ক্রমবর্ধমান প্রয়োগ। স্টেট সর্বদা বিদ্যমান থাকে এবং ইভেন্টের ফলে এটি পরিবর্তিত হয়। ইভেন্ট এবং স্টেটের মধ্যে পার্থক্যগুলো নিচের সারণিতে সংক্ষেপে তুলে ধরা হলো:
ইভেন্টগুলি | রাজ্য |
ক্ষণস্থায়ী, অপ্রত্যাশিত এবং একটি সসীম সময়ের জন্য বিদ্যমান। | সর্বদা বিদ্যমান। |
রাষ্ট্রীয় উৎপাদনের উপকরণসমূহ। | রাষ্ট্রীয় উৎপাদনের ফলাফল। |
UI বা অন্যান্য উৎসের ফল। | UI দ্বারা ব্যবহৃত হয়। |
ঘটনাগুলো নিম্নলিখিত উৎস থেকে আসতে পারে:
- ব্যবহারকারীগণ : যখন তাঁরা অ্যাপটির ইউজার ইন্টারফেসের সাথে মিথস্ক্রিয়া করেন।
- অবস্থা পরিবর্তনের অন্যান্য উৎস : এপিআই (API) যেগুলো ইউআই (UI), ডোমেইন বা ডেটা লেয়ার থেকে অ্যাপ ডেটা উপস্থাপন করে, যেমন যথাক্রমে স্নাকবার টাইমআউট ইভেন্ট, ইউজ কেস বা রিপোজিটরি।
রাষ্ট্রীয় উৎপাদন এপিআই
আপনি পাইপলাইনের কোন পর্যায়ে আছেন তার উপর নির্ভর করে স্টেট তৈরিতে দুটি প্রধান এপিআই ব্যবহৃত হয়:
পাইপলাইন পর্যায় | এপিআই |
ইনপুট | UI-কে জ্যাঙ্ক-মুক্ত রাখতে UI থ্রেডের বাইরে কাজ সম্পাদনের জন্য আপনার অ্যাসিঙ্ক্রোনাস API ব্যবহার করা উচিত। উদাহরণস্বরূপ, কোটলিনের Coroutines বা Flows, এবং জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজের RxJava বা কলব্যাক। |
আউটপুট | স্টেট পরিবর্তনের সময় UI-কে বাতিল ও পুনরায় রেন্ডার করতে আপনার অবজার্ভেবল ডেটা হোল্ডার API ব্যবহার করা উচিত। উদাহরণস্বরূপ, StateFlow বা LiveData। অবজার্ভেবল ডেটা হোল্ডাররা নিশ্চিত করে যে স্ক্রিনে প্রদর্শনের জন্য UI-এর সর্বদা একটি স্টেট থাকে। |
এই দুটির মধ্যে, আউটপুটের জন্য অবজার্ভেবল এপিআই (Observable API) পছন্দের চেয়ে ইনপুটের জন্য অ্যাসিঙ্ক্রোনাস এপিআই (asynchronous API) পছন্দ স্টেট প্রোডাকশন পাইপলাইনের প্রকৃতির উপর বেশি প্রভাব ফেলে। এর কারণ হলো, ইনপুটগুলোই নির্ধারণ করে দেয় যে পাইপলাইনে কী ধরনের প্রসেসিং প্রয়োগ করা যেতে পারে ।
রাষ্ট্রীয় উৎপাদন পাইপলাইন সমাবেশ
পরবর্তী বিভাগগুলিতে বিভিন্ন ইনপুটের জন্য সবচেয়ে উপযুক্ত স্টেট প্রোডাকশন কৌশল এবং তার সাথে সামঞ্জস্যপূর্ণ আউটপুট এপিআইগুলি আলোচনা করা হয়েছে। প্রতিটি স্টেট প্রোডাকশন পাইপলাইন হলো ইনপুট এবং আউটপুটের একটি সমন্বয় এবং তা নিম্নরূপ হওয়া উচিত:
- লাইফসাইকেল সচেতন : যখন UI দৃশ্যমান বা সক্রিয় থাকে না, তখন সুস্পষ্টভাবে প্রয়োজন না হলে স্টেট প্রোডাকশন পাইপলাইন কোনো রিসোর্স ব্যবহার করবে না।
- ব্যবহারে সহজ : UI-কে অবশ্যই উৎপাদিত UI স্টেট সহজে রেন্ডার করতে সক্ষম হতে হবে। স্টেট প্রোডাকশন পাইপলাইনের আউটপুটের বিবেচ্য বিষয়গুলো ভিউ সিস্টেম বা জেটপ্যাক কম্পোজের মতো বিভিন্ন ভিউ এপিআই-এর ক্ষেত্রে ভিন্ন ভিন্ন হবে।
রাষ্ট্রীয় উৎপাদন পাইপলাইনে আউটপুটের প্রকারভেদ
UI স্টেটের জন্য আউটপুট API-এর নির্বাচন এবং এর উপস্থাপনার ধরণ মূলত নির্ভর করে আপনার অ্যাপ UI রেন্ডার করার জন্য কোন API ব্যবহার করে তার উপর। অ্যান্ড্রয়েড অ্যাপে, আপনি ভিউস (Views) অথবা জেটপ্যাক কম্পোজ (Jetpack Compose) ব্যবহার করতে পারেন। এক্ষেত্রে বিবেচ্য বিষয়গুলো হলো:
- জীবনচক্র-সচেতন পদ্ধতিতে অবস্থা পাঠ করা।
- রাষ্ট্রধারীর পক্ষ থেকে রাষ্ট্রকে এক বা একাধিক ক্ষেত্রে উন্মোচিত করা উচিত কিনা।
ভিউস ফ্রেমওয়ার্ক ব্যবহার করার সময় আপনার স্টেট প্রোডাকশন পাইপলাইনের জন্য কোন এপিআইগুলো ব্যবহার করতে হবে, তা নিচের সারণিতে সংক্ষেপে তুলে ধরা হলো:
ইনপুট | আউটপুট |
ওয়ান-শট এপিআই | |
স্ট্রিম এপিআই | |
ওয়ান-শট এবং স্ট্রিম এপিআই | |