XML ভিউগুলিকে Jetpack Compose-এ স্থানান্তর করুন

জেটপ্যাক কম্পোজ ভিউয়ের সাথে ইন্টারঅপারেবিলিটি সমর্থন করে — আপনি ভিউতে কম্পোজ এবং কম্পোজে ভিউ ব্যবহার করতে পারেন। এটি সমস্ত ভিউ অবিলম্বে স্থানান্তর না করে বিদ্যমান ভিউ-ভিত্তিক অ্যাপগুলিতে কম্পোজ গ্রহণের অনুমতি দেয়।

মাইগ্রেশনের ধাপগুলি

  1. একটি পরিকল্পনা তৈরি করুন: মাইগ্রেশন সম্পাদনের জন্য একটি শক্তিশালী এবং ধাপে ধাপে পরিকল্পনা তৈরি করুন। আমরা মাইগ্রেশন কাজের অগ্রাধিকারমূলক ব্যাকলগ সুপারিশ করি।
  2. মাইগ্রেশনের জন্য XML প্রার্থী শনাক্ত করুন: শ্রেণিবিন্যাসের ক্ষুদ্রতম উপাদানগুলি চিহ্নিত করুন এবং শুরু করুন যা লিফ নোড, এবং মাইগ্রেশন পরিকল্পনাটি নিচ থেকে ক্রমশ উচ্চতর উপাদানগুলিতে প্রসারিত করুন। প্রাথমিক মাইগ্রেশনের জন্য ভাল প্রার্থী হল ছোট, রাষ্ট্রহীন এবং কম নির্ভরতা।
  3. শ্রেণিবিন্যাস বিশ্লেষণ করুন: একবার আপনি মাইগ্রেট করার জন্য XML ভিউ সনাক্ত করার পরে, এর XML লেআউট কাঠামো এবং বাস্তবায়ন বিশ্লেষণ করুন।
  4. প্রাথমিক অবস্থা ক্যাপচার করুন: নির্বাচিত XML ভিউয়ের প্রাথমিক অবস্থা ক্যাপচার করতে একটি স্ক্রিনশট পরীক্ষা চালান।
  5. পূর্বশর্ত: Compose dependencies সেট আপ করুন প্রকল্পটিতে Compose dependencies এবং Compiler সেট আপ আছে কিনা তা সনাক্ত করুন। যদি না থাকে, তাহলে Setup Compose dependencies এবং Compiler অনুসরণ করুন।
  6. পূর্বশর্ত: কম্পোজ থিমিং সেট আপ করুন প্রকল্পটিতে ইতিমধ্যেই কম্পোজ থিমিং সেটআপ আছে কিনা তা সনাক্ত করুন। যদি তা না থাকে, তাহলে ompose থিমিং অনুসরণ করুন। অ্যাপটি ইন্টারঅ্যাপ থাকাকালীন মূল XML থিমিংটি রাখুন। কীভাবে স্টেট করতে হবে তার প্যাটার্ন বুঝতে এবং প্রকল্পটি সম্পূর্ণরূপে কম্পোজে স্থানান্তরিত না হওয়া পর্যন্ত XML থিমটি কম্পোজে স্থানান্তর করুন
  7. XML ভিউকে Compose-এ মাইগ্রেট করুন: XML কোডকে Compose-এ রূপান্তর শুরু করুন, উপযুক্ত থিমিং প্রয়োগ করুন এবং মাইগ্রেট করা কম্পোজেবলের জন্য Compose প্রিভিউ যোগ করুন। সাধারণ মাইগ্রেশন পরিস্থিতির জন্য, অতিরিক্ত রিসোর্স দেখুন। উদাহরণস্বরূপ, Compose-এ Lazy API-তে মাইগ্রেট করার জন্য, Compose-এ মাইগ্রেট করার ধাপগুলি অনুসরণ করুন।
  8. ব্যবহার প্রতিস্থাপন করুন: নতুন কম্পোজ উপাদান ব্যবহার করতে XML ভিউয়ের পূর্ববর্তী ব্যবহারগুলি প্রতিস্থাপন করুন। ভিউতে কম্পোজ যোগ করতে, ভিউতে কম্পোজের ধাপগুলি অনুসরণ করুন। কম্পোজে ভিউ যোগ করতে, কম্পোজে ভিউতে ধাপগুলি অনুসরণ করুন।
  9. মাইগ্রেশন যাচাই করুন: স্ক্রিনশট পরীক্ষায় ধারণ করা প্রাথমিক অবস্থাটি মাইগ্রেটেড কম্পোজেবলের কম্পোজ প্রিভিউয়ের সাথে একই কিনা তা যাচাই করুন। যদি তারা মেলে না, তাহলে নতুন কম্পোজেবল UI-তে পুনরাবৃত্তি করুন এবং প্রাথমিক অবস্থার সাথে সারিবদ্ধ করার জন্য এটি উন্নত করুন। নতুন কম্পোজেবলের জন্য নতুন কম্পোজ UI পরীক্ষা তৈরি করুন।
  10. XML অপসারণ: নতুন স্থানান্তরিত কম্পোজেবলটি প্রাথমিক XML UI এর সাথে মিলে গেলে, অপ্রচলিত XML ভিউ কোড এবং এর পরীক্ষাগুলি সরিয়ে ফেলুন।

সাধারণ অভিবাসন পরিস্থিতি

কম্পোজেবলে dp এবং sp এক্সটেনশন ( 16.dp , 20.sp ) ব্যবহার করা হয়েছে কিনা তা যাচাই করুন। যদি tools:text XML ভিউতে উপস্থিত থাকে, তাহলে এটি একটি পৃথক @Preview কম্পোজেবলে ব্যবহার করুন।

মডিফায়ার রূপান্তরের বৈশিষ্ট্য

বেশিরভাগ XML বৈশিষ্ট্য কম্পোজেবল ফাংশনের modifier চেইন বা প্যারামিটারের অংশ হয়ে যায়।

XML অ্যাট্রিবিউট সমতুল্য রচনা করুন
android:layout_width="match_parent" Modifier.fillMaxWidth()
android:layout_height="match_parent" Modifier.fillMaxHeight()
android:layout_width="wrap_content" (ডিফল্ট আচরণ, সাধারণত কোনও সংশোধক প্রয়োজন হয় না)
android:padding="Xdp" Modifier.padding(X.dp)
android:layout_margin="Xdp" Modifier.padding(X.dp) (বাইরের প্যাডিং)
android:gravity="center" contentAlignment = Alignment.Center (বাক্স) অথবা horizontalAlignment / verticalArrangement (কলাম/সারি)
android:background="@color/white" Modifier.background(colorResource(R.color.white))
android:visibility="gone" if (visible) { ... } ব্লকটি মোড়ানো

স্টাইলগুলি স্থানান্তর করুন (styles.xml)

XML স্টাইলগুলি প্রায়শই একাধিক বৈশিষ্ট্য একত্রিত করে একটি স্টাইল তৈরি করে। কম্পোজে, এটি একটি নির্দিষ্ট স্টাইলের সাথে একটি কম্পোজেবল ভেরিয়েশন তৈরি করে করা হয়।

স্টাইল এবং বেস কম্পোনেন্ট অনুসারে আলাদা আলাদা @Composable ফাংশন প্রদান করুন, যাতে ঐ কম্পোনেন্টগুলির স্টাইলিং এবং ব্যবহারের ক্ষেত্রে পার্থক্য বোঝা যায়।

  • প্যাটার্ন: যদি কোন XML এলিমেন্ট একটি কাস্টম স্টাইল ব্যবহার করে (যেমন, style="@style/MyPrimaryButton" ), তাহলে স্টাইলটি ইনলাইনে প্রতিলিপি করার চেষ্টা করবেন না। পরিবর্তে, একটি নির্দিষ্ট কম্পোজেবল তৈরি করার পরামর্শ দিন।
  • উদাহরণ:
    • এক্সএমএল: <Button style="@style/MyPrimaryButton" ... />
    • রচনা করুন: MyPrimaryButton(onClick = { ... })
  • সাধারণ বৈশিষ্ট্য গোষ্ঠী: যদি একটি স্টাইল সাধারণ সংশোধক (যেমন প্যাডিং + উচ্চতা) সেট করে, তাহলে সেগুলিকে একটি পঠনযোগ্য এক্সটেনশন বৈশিষ্ট্য বা একটি ভাগ করা সংশোধক ভেরিয়েবলে এক্সট্র্যাক্ট করুন।