পুনরাবৃত্তিমূলক কোড উন্নয়ন

একজন মোবাইল ডেভেলপার হিসেবে, আপনি প্রায়শই আপনার অ্যাপের UI ধাপে ধাপে ডেভেলপ করছেন, সবকিছু একসাথে ডেভেলপ করার পরিবর্তে। অ্যান্ড্রয়েড স্টুডিও জেটপ্যাক কম্পোজের সাথে এই পদ্ধতিটি গ্রহণ করে এমন সরঞ্জাম সরবরাহ করে যার জন্য পরিদর্শন, মান পরিবর্তন এবং চূড়ান্ত ফলাফল যাচাই করার জন্য সম্পূর্ণ বিল্ডের প্রয়োজন হয় না।

লাইভ সম্পাদনা

লাইভ এডিট এমন একটি বৈশিষ্ট্য যা আপনাকে রিয়েল টাইমে এমুলেটর এবং ফিজিক্যাল ডিভাইসে কম্পোজেবল আপডেট করতে দেয়। এই কার্যকারিতাটি লেখা এবং আপনার অ্যাপ তৈরির মধ্যে প্রসঙ্গ পরিবর্তনকে কমিয়ে দেয়, যা আপনাকে কোনও বাধা ছাড়াই দীর্ঘ সময় ধরে কোড লেখার উপর মনোযোগ দিতে দেয়।

লাইভ এডিট-এর তিনটি মোড রয়েছে:

  • ম্যানুয়াল: কোড পরিবর্তনগুলি তখন প্রয়োগ করা হয় যখন সেগুলি কন্ট্রোল+' ( macOS-এ Command+' ) ব্যবহার করে ম্যানুয়ালি পুশ করা হয়।
  • সংরক্ষণের সময় ম্যানুয়াল: কোড পরিবর্তনগুলি তখন প্রয়োগ করা হয় যখন সেগুলি Control+S (macOS-এ Command+S ) ব্যবহার করে ম্যানুয়ালি সংরক্ষণ করা হয়।
  • স্বয়ংক্রিয়: যখন আপনি একটি কম্পোজেবল ফাংশন আপডেট করেন তখন আপনার ডিভাইস বা এমুলেটরে পরিবর্তনগুলি প্রয়োগ করা হয়।

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

এই বৈশিষ্ট্যটি আপনার অ্যাপ তৈরি এবং চালানোর জন্য অথবা Apply Changes এর জন্য কোনও বিকল্প নয়। পরিবর্তে, এটি আপনার কর্মপ্রবাহকে অপ্টিমাইজ করার জন্য ডিজাইন করা হয়েছে যখন আপনি Compose UI তৈরি, স্থাপন এবং পুনরাবৃত্তি করেন।

সর্বোত্তম অনুশীলন কর্মপ্রণালী নিম্নরূপ:

  1. আপনার অ্যাপ্লিকেশনটি এমনভাবে সেট আপ করুন যাতে এটি চালানো যায়।
  2. যতক্ষণ না আপনার এমন কোনও পরিবর্তন করতে হয় যা লাইভ এডিট সমর্থন করে না, যেমন অ্যাপটি চলাকালীন নতুন পদ্ধতি যোগ করা।
  3. অসমর্থিত পরিবর্তন করার পরে, Run এ ক্লিক করুন। রান আইকন আপনার অ্যাপটি পুনরায় চালু করতে এবং লাইভ এডিট পুনরায় শুরু করতে।

লাইভ এডিট দিয়ে শুরু করুন

শুরু করতে, একটি খালি কম্পোজ অ্যাক্টিভিটি তৈরি করতে, আপনার প্রকল্পের জন্য লাইভ এডিট সক্ষম করতে এবং লাইভ এডিট ব্যবহার করে পরিবর্তন করতে এই পদক্ষেপগুলি অনুসরণ করুন।

আপনার নতুন প্রকল্প সেট আপ করুন

  1. শুরু করার আগে, নিশ্চিত করুন যে আপনার Android Studio Giraffe বা তার উচ্চতর সংস্করণ ইনস্টল করা আছে এবং আপনার ফিজিক্যাল ডিভাইস বা এমুলেটরের API স্তর কমপক্ষে 30।

  2. অ্যান্ড্রয়েড স্টুডিও খুলুন এবং ওয়েলকাম টু অ্যান্ড্রয়েড স্টুডিও ডায়ালগে নতুন প্রকল্প নির্বাচন করুন। যদি আপনার ইতিমধ্যেই একটি প্রকল্প খোলা থাকে, তাহলে আপনি ফাইল > নতুন > নতুন প্রকল্প এ নেভিগেট করে একটি নতুন প্রকল্প তৈরি করতে পারেন।

  3. ফোন এবং ট্যাবলেটের জন্য খালি রচনা কার্যকলাপ টেমপ্লেটটি নির্বাচন করুন, এবং তারপরে পরবর্তী ক্লিক করুন।

    অ্যান্ড্রয়েড স্টুডিওতে টেমপ্লেট নির্বাচন
    চিত্র ১. আপনি যে টেমপ্লেটগুলি থেকে বেছে নিতে পারেন। লাইভ এডিট করার জন্য, খালি রচনা কার্যকলাপ নির্বাচন করুন।
  4. প্রয়োজনীয় তথ্য দিয়ে নতুন প্রকল্পের ডায়ালগটি সম্পূর্ণ করুন: নাম, প্যাকেজের নাম, সংরক্ষণের অবস্থান, ন্যূনতম SDK এবং বিল্ড কনফিগারেশন ভাষা।

    ধাপ ৪ থেকে অ্যান্ড্রয়েড স্টুডিওতে প্রবেশ করানো প্রকল্প সেটিংসের উদাহরণ
    চিত্র ২। প্রকল্প সেটিংসের উদাহরণ।
  5. Finish এ ক্লিক করুন।

লাইভ এডিট সক্ষম করুন

  1. লাইভ এডিট সক্ষম করতে সেটিংসে নেভিগেট করুন।

    • উইন্ডোজ বা লিনাক্সে, ফাইল > সেটিংস > সম্পাদক > লাইভ সম্পাদনা এ নেভিগেট করুন।
    • macOS-এ, Android Studio > Settings > Editor > Live Edit -এ নেভিগেট করুন।
  2. সেটিংস থেকে লাইভ এডিট অপশন এবং আপনি যে মোডটি চালাতে চান তা নির্বাচন করুন।

    ম্যানুয়াল মোডে, আপনি যখনই Control+' ( macOS-এ Command+' ) চাপবেন তখনই আপনার কোড পরিবর্তনগুলি পুশ করা হবে। সেভ করার সময় ম্যানুয়াল মোডে, আপনি যখনই ম্যানুয়ালি সেভ করবেন তখনই আপনার কোড পরিবর্তনগুলি প্রয়োগ করা হবে, Control + S ( macOS-এ Command + S ) ব্যবহার করে। স্বয়ংক্রিয় মোডে, আপনার কোড পরিবর্তনগুলি আপনার ডিভাইস বা এমুলেটরে প্রয়োগ করা হবে যখন আপনি আপনার পরিবর্তনগুলি করবেন।

    অ্যান্ড্রয়েড স্টুডিও সেটিংসে লাইভ এডিট চেকবক্স UI
    চিত্র ৩. লাইভ এডিট সেটিংস।
  3. এডিটরে, MainActivity ফাইলটি খুলুন, যা আপনার অ্যাপের এন্ট্রি পয়েন্ট।

  4. রান ক্লিক করুনUI বোতাম আপনার অ্যাপ স্থাপন করতে।

  5. লাইভ এডিট চালু করার পর, রানিং ডিভাইস টুল উইন্ডোর উপরের ডানদিকে আপ-টু-ডেট সবুজ চেকমার্কটি প্রদর্শিত হবে:

    লাইভ এডিট সবুজ চেকমার্ক UI

পরিবর্তনগুলি করুন এবং পর্যালোচনা করুন

আপনি যখন এডিটরে সমর্থিত পরিবর্তনগুলি করেন, তখন ভার্চুয়াল বা ফিজিক্যাল টেস্ট ডিভাইসটি স্বয়ংক্রিয়ভাবে আপডেট হয়।

উদাহরণস্বরূপ, MainActivity তে বিদ্যমান Greeting পদ্ধতিটি নিম্নলিখিতভাবে সম্পাদনা করুন:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

চিত্র ৪-এ দেখানো হয়েছে, আপনার পরিবর্তনগুলি তাৎক্ষণিকভাবে পরীক্ষা ডিভাইসে প্রদর্শিত হবে।

ডিভাইসে অভিবাদন পদ্ধতিতে পরিবর্তন প্রয়োগ করা হয়েছে
চিত্র ৪. Greeting পদ্ধতিতে লাইভ এডিট পরিবর্তনগুলি প্রদর্শনকারী টেস্ট ডিভাইস।

লাইভ এডিট সমস্যা সমাধান করুন

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

লাইভ এডিট পুরনো আইকন
চিত্র ৫। লাইভ এডিট স্ট্যাটাস ইন্ডিকেটর।

লাইভ এডিট এর সীমাবদ্ধতা

বর্তমান সীমাবদ্ধতার একটি তালিকা নিচে দেওয়া হল।

  • [শুধুমাত্র Android Studio Giraffe এবং উচ্চতর সংস্করণের ক্ষেত্রে প্রযোজ্য] লাইভ এডিট-এর জন্য Compose Runtime 1.3.0 বা উচ্চতর সংস্করণ প্রয়োজন। যদি আপনার প্রকল্প Compose-এর নিম্নতর সংস্করণ ব্যবহার করে, তাহলে Live Edit অক্ষম করা হয়।

  • [শুধুমাত্র অ্যান্ড্রয়েড স্টুডিও জিরাফ এবং উচ্চতর সংস্করণের ক্ষেত্রে প্রযোজ্য] লাইভ এডিট-এর জন্য AGP 8.1.0-alpha05 বা উচ্চতর সংস্করণ প্রয়োজন। যদি আপনার প্রকল্প AGP-এর নিম্নতর সংস্করণ ব্যবহার করে, তাহলে লাইভ এডিট অক্ষম করা হয়।

  • লাইভ এডিট-এর জন্য একটি ফিজিক্যাল ডিভাইস বা এমুলেটর প্রয়োজন যা API লেভেল 30 বা তার বেশি চলমান।

  • লাইভ এডিট শুধুমাত্র একটি ফাংশন বডি সম্পাদনা সমর্থন করে, যার অর্থ হল আপনি ফাংশনের নাম বা স্বাক্ষর পরিবর্তন করতে পারবেন না, কোনও ফাংশন যোগ করতে বা অপসারণ করতে পারবেন না, অথবা নন-ফাংশন ক্ষেত্র পরিবর্তন করতে পারবেন না।

  • লাইভ এডিট প্রথমবার যখন আপনি কোনও ফাইলে কম্পোজ ফাংশন পরিবর্তন করেন তখন অ্যাপের অবস্থা রিসেট করে। এটি কেবল প্রথম কোড পরিবর্তনের পরেই ঘটে—আপনার দ্বারা সেই ফাইলে কম্পোজ ফাংশনে করা পরবর্তী কোড পরিবর্তনের মাধ্যমে অ্যাপের অবস্থা রিসেট হয় না।

  • লাইভ এডিট-পরিবর্তিত ক্লাসগুলির জন্য কিছু পারফরম্যান্স জরিমানা হতে পারে। আপনার অ্যাপটি চালান এবং যদি আপনি এর পারফরম্যান্স মূল্যায়ন করেন তবে একটি ক্লিন রিলিজ বিল্ড ব্যবহার করুন।

  • লাইভ এডিট ব্যবহার করে যেসব ক্লাস পরিবর্তন করেছেন, সেগুলোতে ডিবাগারটি কাজ করার জন্য আপনাকে অবশ্যই সম্পূর্ণ রান করতে হবে।

  • লাইভ এডিট ব্যবহার করে সম্পাদনা করার সময় চলমান অ্যাপটি ক্র্যাশ হতে পারে। যদি এটি ঘটে, তাহলে আপনি রান ব্যবহার করে অ্যাপটি পুনরায় স্থাপন করতে পারেন।UI বোতাম বোতাম।

  • লাইভ এডিট আপনার প্রোজেক্টের বিল্ড ফাইলে সংজ্ঞায়িত কোনও বাইটকোড ম্যানিপুলেশন সম্পাদন করে না—উদাহরণস্বরূপ, বাইটকোড ম্যানিপুলেশন যা প্রোজেক্ট তৈরি করার সময় বিল্ড মেনুতে থাকা বিকল্পগুলি ব্যবহার করে অথবা বিল্ড বা রান বোতামে ক্লিক করে প্রয়োগ করা হবে।

  • নন-কম্পোজেবল ফাংশনগুলি ডিভাইস বা এমুলেটরে লাইভ আপডেট করা হয় এবং একটি সম্পূর্ণ রিকম্পোজিশন ট্রিগার করা হয়। সম্পূর্ণ রিকম্পোজিশন আপডেট করা ফাংশনটি চালু নাও করতে পারে। নন-কম্পোজেবল ফাংশনগুলির জন্য, আপনাকে নতুন আপডেট করা ফাংশনগুলি ট্রিগার করতে হবে অথবা অ্যাপটি আবার চালাতে হবে।

  • অ্যাপ রিস্টার্ট করলে লাইভ এডিট আবার শুরু হয় না। আপনাকে আবার অ্যাপটি চালাতে হবে।

  • লাইভ এডিট শুধুমাত্র ডিবাগযোগ্য প্রক্রিয়া সমর্থন করে।

  • লাইভ এডিট এমন প্রকল্পগুলিকে সমর্থন করে না যেগুলি বিল্ড কনফিগারেশনে kotlinOptions এর অধীনে moduleName এর জন্য কাস্টম মান ব্যবহার করে।

  • মাল্টি-ডিপ্লয় ডিপ্লয়মেন্টের সাথে লাইভ এডিট কাজ করে না। এর মানে হল আপনি একটি ডিভাইসে এবং তারপর অন্য ডিভাইসে ডিপ্লয় করতে পারবেন না। লাইভ এডিট শুধুমাত্র অ্যাপটি যে ডিভাইসগুলিতে ডিপ্লয় করা হয়েছিল তার শেষ সেটগুলিতে সক্রিয়।

  • লাইভ এডিট মাল্টিডিভাইস ডিপ্লয়মেন্টের সাথে কাজ করে (টার্গেট ডিভাইস ড্রপডাউনে Select multiple devices এর মাধ্যমে তৈরি করা একাধিক ডিভাইসে ডিপ্লয়মেন্ট)। তবে, এটি আনুষ্ঠানিকভাবে সমর্থিত নয় এবং এতে সমস্যা থাকতে পারে। যদি আপনার কোনও সমস্যা হয়, তাহলে অনুগ্রহ করে রিপোর্ট করুন

  • পরিবর্তন প্রয়োগ করুন/কোড প্রয়োগ করুন পরিবর্তনগুলি লাইভ এডিট-এর সাথে সামঞ্জস্যপূর্ণ নয় এবং চলমান অ্যাপটি পুনরায় চালু করতে হবে।

  • লাইভ এডিট বর্তমানে অ্যান্ড্রয়েড অটোমোটিভ প্রকল্পগুলিকে সমর্থন করে না।

লাইভ এডিট সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

  • লাইভ এডিট-এর বর্তমান অবস্থা কী?

    লাইভ এডিট অ্যান্ড্রয়েড স্টুডিও জিরাফে পাওয়া যাচ্ছে। এটি চালু করতে, ফাইল > সেটিংস > এডিটর > লাইভ এডিট ( অ্যান্ড্রয়েড স্টুডিও > সেটিংস > এডিটর > ম্যাকওএস-এ লাইভ এডিট ) এ নেভিগেট করুন।

  • আমার কখন লাইভ এডিট ব্যবহার করা উচিত?

    UX উপাদানের আপডেটের (যেমন মডিফায়ার আপডেট এবং অ্যানিমেশন) সামগ্রিক অ্যাপ অভিজ্ঞতার উপর দ্রুত প্রভাব দেখতে চাইলে লাইভ এডিট ব্যবহার করুন।

  • কখন আমার লাইভ এডিট ব্যবহার করা এড়িয়ে চলা উচিত?

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

  • আমার কখন কম্পোজ প্রিভিউ ব্যবহার করা উচিত?

    পৃথক কম্পোজেবল তৈরি করার সময় কম্পোজ প্রিভিউ ব্যবহার করুন। প্রিভিউ কম্পোজ এলিমেন্টগুলিকে ভিজ্যুয়ালাইজ করে এবং কোড পরিবর্তনের প্রভাব প্রদর্শনের জন্য স্বয়ংক্রিয়ভাবে রিফ্রেশ করে। প্রিভিউ বিভিন্ন কনফিগারেশন এবং অবস্থায়, যেমন ডার্ক থিম, লোকেল এবং ফন্ট স্কেলের অধীনে UI এলিমেন্টগুলি দেখার সুবিধাও প্রদান করে।

কম্পোজের সাথে পুনরাবৃত্তিমূলক কোড ডেভেলপমেন্ট

কম্পোজ মাল্টিপ্ল্যাটফর্মের জন্য লাইভ এডিট এবং হট রিলোড হল এমন বৈশিষ্ট্য যা আপনার সময় বাঁচাতে পারে এবং কম্পোজের সাথে বিকাশের সাথে সাথে আপনার উৎপাদনশীলতা বৃদ্ধি করতে পারে। তবে, এগুলি বিভিন্ন ধরণের বিকাশের চাহিদা পূরণ করে:

  • লাইভ এডিট অ্যান্ড্রয়েড অ্যাপ্লিকেশনের জন্য জেটপ্যাক কম্পোজের মাধ্যমে পুনরাবৃত্তিমূলক ডেভেলপমেন্ট সমর্থন করে। এটি আপনাকে রিয়েল টাইমে এমুলেটর এবং ফিজিক্যাল ডিভাইসে কম্পোজেবল আপডেট করতে দেয়। এই কার্যকারিতাটি লেখা এবং আপনার অ্যাপ তৈরির মধ্যে প্রসঙ্গ পরিবর্তনকে কমিয়ে দেয়, যা আপনাকে কোনও বাধা ছাড়াই দীর্ঘ সময় ধরে কোড লেখার উপর মনোযোগ দিতে দেয়।

  • কম্পোজ হট রিলোড একই চাহিদা পূরণ করে, তবে কম্পোজ মাল্টিপ্ল্যাটফর্ম দিয়ে তৈরি ডেস্কটপ অ্যাপ্লিকেশনগুলিকে সমর্থন করে। এটি আপনাকে কম্পোজ মাল্টিপ্ল্যাটফর্ম অ্যাপ্লিকেশনে আপনার UI কোডে পরিবর্তন করতে এবং যখনই এটি পরিবর্তন করা হয় তখন বুদ্ধিমত্তার সাথে পুনরায় লোড করে রিয়েল টাইমে ফলাফল দেখতে সক্ষম করে।

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

যদি আপনি একটি অ্যান্ড্রয়েড অ্যাপ তৈরি করেন, তাহলে আপনার ডেভেলপমেন্ট প্রক্রিয়া দ্রুত করার জন্য লাইভ এডিট ব্যবহার করা উচিত। যদি আপনি কম্পোজ মাল্টিপ্ল্যাটফর্ম ব্যবহার করে একটি ডেস্কটপ অ্যাপ্লিকেশন তৈরি করেন, তাহলে আপনার কম্পোজ হট রিলোড ব্যবহার করা উচিত।

লিটারেলের লাইভ সম্পাদনা (অবঞ্চিত)

অ্যান্ড্রয়েড স্টুডিও প্রিভিউ, এমুলেটর এবং ফিজিক্যাল ডিভাইসের মধ্যে কম্পোজেবলে ব্যবহৃত কিছু ধ্রুবক লিটারেল রিয়েল টাইমে আপডেট করতে পারে। এখানে কিছু সমর্থিত প্রকার রয়েছে:

  • Int
  • String
  • Color
  • Dp
  • Boolean

ব্যবহারকারীর সোর্স কোডে লিটারেল পরিবর্তনের ভিডিও এবং প্রিভিউ গতিশীলভাবে আপডেট করা হচ্ছে

আপনি "Live Edit of literals UI" ইন্ডিকেটরের মাধ্যমে "literal decorations" সক্ষম করে সংকলন ধাপ ছাড়াই রিয়েল টাইম আপডেট ট্রিগার করে এমন ধ্রুবক লিটারাল দেখতে পারেন:

লিটারালের লাইভ সম্পাদনা সক্ষম করা

পরিবর্তনগুলি প্রয়োগ করুন

Apply Changes আপনাকে কোড এবং রিসোর্স আপডেট করতে দেয় আপনার অ্যাপটিকে কোনও এমুলেটর বা ফিজিক্যাল ডিভাইসে পুনরায় স্থাপন না করেই (কিছু সীমাবদ্ধতা সহ)।

যখনই আপনি কম্পোজেবল যোগ, পরিবর্তন বা মুছে ফেলবেন, তখন আপনি "অ্যাপ্লাই কোড চেঞ্জ" বোতামে ক্লিক করে আপনার অ্যাপটি পুনরায় স্থাপন না করেই আপডেট করতে পারবেন:

ব্যবহারকারী "পরিবর্তনগুলি প্রয়োগ করুন" বোতামে ক্লিক করছেন

{% অক্ষরে অক্ষরে %} {% এন্ডভারব্যাটিম %} {% অক্ষরে অক্ষরে %} {% এন্ডভারব্যাটিম %}