আসুন দু'টি পর্যালোচনা করা যাক।
কনফিগারেশন
কোটলিন অ্যান্ড্রয়েড এক্সটেনশানস
- উপযুক্ত লেআউট সিন্থেটিক এক্সটেনশানগুলি আমদানি করুন:
import kotlinx.android.synthetic.main.<layout>.*
- তাদের আইডি মাধ্যমে কোডে মতামত রেফারেন্স:
textView.text = "Hello, world!"। এই এক্সটেনশানগুলি কাজ: Activities, Fragmentsএবং Views।
বাইন্ডিং দেখুন
- আপনার শ্রেণীর মধ্যে বাইন্ডিং রেফারেন্স তৈরি করুন:
private lateinit var binding
YourClassBinding
- আপনার বাঁধাই ফোলান
binding = YourClassBinding.inflate(layoutInflater)ভিতরে Activity'র onCreateএবং কল setContentView(binding.root), অথবা এটি মধ্যে ফোলান Fragment' s onCreateViewতারপর তা ফেরত:return binding.root
- কোডগুলিতে রেফারেন্সের দর্শনগুলি তাদের আইডি ব্যবহার করে বাঁধাইয়ের মাধ্যমে
binding.textView.text = "Hello, world!"
সুরক্ষা টাইপ করুন
কোটলিন অ্যান্ড্রয়েড এক্সটেনশানস এবং ভিউবাইন্ডিং সংজ্ঞা অনুসারে প্রকারের সুরক্ষিত, কারণ রেফারেন্স করা ভিউগুলি ইতিমধ্যে উপযুক্ত প্রকারে কাস্ট করা থাকে।
নাল সুরক্ষা
কোটলিন অ্যান্ড্রয়েড এক্সটেনশন এবং ভিউবাইন্ডিং উভয়ই নাল নিরাপদ। ভিউবাইন্ডিংয়ের এখানে কোনও সুবিধা নেই । কেএই এর ক্ষেত্রে যদি ভিউটি কিছু লেআউট কনফিগারেশনে উপস্থিত থাকে তবে আইডিই আপনাকে এটি নির্দেশ করবে:

সুতরাং আপনি এটিকে কোটলিনে অন্য কোনও প্র্রজনীয় প্রকারের মতোই আচরণ করুন এবং ত্রুটিটি অদৃশ্য হয়ে যাবে:

বিন্যাসের পরিবর্তনগুলি প্রয়োগ করা হচ্ছে
কোটলিন অ্যান্ড্রয়েড এক্সটেনশনের ক্ষেত্রে , বিন্যাসের পরিবর্তনগুলি তাত্ক্ষণিক সিন্থেটিক এক্সটেনশানগুলির উত্সে অনুবাদ করে, আপনি এখনই এগুলি ব্যবহার করতে পারেন। ভিউবাইন্ডিংয়ের ক্ষেত্রে আপনাকে আপনার প্রকল্পটি তৈরি করতে হবে
ভুল লেআউট ব্যবহার
কোটলিন অ্যান্ড্রয়েড এক্সটেনশনের ক্ষেত্রে , ভুল লেআউট সিন্থেটিক এক্সটেনশানগুলি আমদানি করা সম্ভব, যার ফলে NullPointerException। একইভাবে ভিউবাইন্ডিংয়ের ক্ষেত্রে প্রযোজ্য , যেহেতু আমরা ভুল Bindingশ্রেণি আমদানি করতে পারি । যদিও, এটি ভুল শ্রেণীর নামের চেয়ে ভুল আমদানিকে উপেক্ষা করার সম্ভাবনা বেশি, বিশেষত যদি লেআউট ফাইলটি Activity/ Fragment/ এর পরে নামকরণ করা হয় View, সুতরাং এখানে ভিউবাইন্ডিংয়ের উপরের হাত রয়েছে।
কেএই বনাম ভিউবাইন্ডিংয়ের সংক্ষিপ্তসার
- সুরক্ষা টাইপ করুন - আঁকুন।
- নাল সুরক্ষা - আঁকুন।
- বয়লারপ্লেট কোড - কেএই জিতল । কোটলিন অ্যান্ড্রয়েড এক্সটেনশনের ডকুমেন্টেশন থেকে :
কোটলিন অ্যান্ড্রয়েড এক্সটেনশানস প্লাগইন আমাদের কোনও অতিরিক্ত কোড যুক্ত না করে এই লাইব্রেরির সাথে আমাদের একই অভিজ্ঞতা অর্জনের অনুমতি দেয়।
- লেআউট পরিবর্তনগুলি প্রয়োগ করে - কেএই জিতল । পরিবর্তনগুলি ভিউবাইন্ডিংয়ের বিপরীতে তাত্ক্ষণিক ।
- ভুল লেআউট ব্যবহার - ভিউবাইন্ডিংয়ের জয়
আমি মনে করি সম্পর্কে বড় ভুল ধারণা আছে ViewBinding হচ্ছে প্রতিস্থাপন Kae । লোকেরা বড় কীওয়ার্ড শুনে এবং এটিকে আগে যাচাই না করে পুনরাবৃত্তি করে। নিশ্চিত, ViewBinding জাভা উন্নয়নের জন্য ডান এখন সবচেয়ে ভাল বিকল্প (জন্য প্রতিস্থাপন ButterKnife ), কিন্তু ওইখানে নেই বা সামান্য সুবিধা Kae Kotlin মধ্যে (দেখুন ভুল বিন্যাস ব্যবহার অধ্যায়)।
পার্শ্ব দ্রষ্টব্য:
আমি নিশ্চিত ডেটাবাইন্ডিংয়ের লোকেরা ভিউবাইন্ডিং পছন্দ করবে :)