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

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

লাইভ এডিট

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

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

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

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

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

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

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

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

শুরু করতে, একটি খালি রচনা ক্রিয়াকলাপ তৈরি করতে এই পদক্ষেপগুলি অনুসরণ করুন, আপনার প্রকল্পের জন্য লাইভ সম্পাদনা সক্ষম করুন এবং লাইভ সম্পাদনার সাথে পরিবর্তন করুন৷

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

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

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

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

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

    Android স্টুডিওতে প্রবেশ করা ধাপ 4 থেকে প্রজেক্ট সেটিংসের উদাহরণ
    চিত্র 2. উদাহরণ প্রকল্প সেটিংস।
  5. শেষ ক্লিক করুন.

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

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

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

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

    অ্যান্ড্রয়েড স্টুডিও সেটিংসে লাইভ এডিট চেকবক্স UI
    চিত্র 3. লাইভ এডিট সেটিংস।
  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)
    )
}

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

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

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

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

লাইভ সম্পাদনা পুরানো আইকন
চিত্র 5. লাইভ এডিট স্থিতি সূচক।

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

নিম্নলিখিত বর্তমান সীমাবদ্ধতা একটি তালিকা.

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

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

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

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

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

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

  • আপনি লাইভ এডিট দিয়ে পরিবর্তিত ক্লাসে ডিবাগারের জন্য একটি সম্পূর্ণ রান সঞ্চালন করতে হবে।

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

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

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

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

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

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

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

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

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

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

Live Edit সম্পর্কিত প্রায়শ জিজ্ঞাস্য প্রশ্নাবলী

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

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

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

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

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

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

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

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

লিটারেলের লাইভ এডিট (অপ্রচলিত)

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

  • Int
  • String
  • Color
  • Dp
  • Boolean

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

আপনি আক্ষরিক UI নির্দেশকের লাইভ সম্পাদনার মাধ্যমে আক্ষরিক সজ্জা সক্ষম করে সংকলন পদক্ষেপ ছাড়াই রিয়েল টাইম আপডেটগুলিকে ট্রিগার করে এমন ধ্রুবক লিটারেলগুলি দেখতে পারেন:

লিটারালের লাইভ এডিটিং সক্ষম করা

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

পরিবর্তনগুলি প্রয়োগ করুন আপনাকে একটি এমুলেটর বা শারীরিক ডিভাইসে (কিছু সীমাবদ্ধতা সহ) আপনার অ্যাপ পুনরায় স্থাপন না করেই কোড এবং সংস্থানগুলি আপডেট করতে দেয়৷

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

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

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