অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা | 2023.2.1 (ফেব্রুয়ারি 2024)

অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা-তে নিম্নলিখিত নতুন বৈশিষ্ট্যগুলি রয়েছে।

প্যাচ রিলিজ

নিচে অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা এবং অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৩-এর প্যাচ রিলিজগুলোর তালিকা দেওয়া হলো।

অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা | ২০২৩.২.১ প্যাচ ২ এবং এজিপি ৮.৩.২ (এপ্রিল ২০২৪)

এই ছোট আপডেটটিতে নিম্নলিখিত বাগগুলো সংশোধন করা হয়েছে।

অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা | ২০২৩.২.১ প্যাচ ১ এবং এজিপি ৮.৩.১ (মার্চ ২০২৪)

এই ছোট আপডেটটিতে নিম্নলিখিত বাগগুলো সংশোধন করা হয়েছে।

ইন্টেলিজ আইডিয়া ২০২৩.২ প্ল্যাটফর্ম আপডেট

অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা-তে ইন্টেলিজ আইডিয়া ২০২৩.২-এর আপডেটগুলো অন্তর্ভুক্ত করা হয়েছে, যা স্টুডিও আইডিই-এর অভিজ্ঞতাকে উন্নত করে। পরিবর্তনগুলো সম্পর্কে বিস্তারিত জানতে ইন্টেলিজ আইডিয়া ২০২৩.২ রিলিজ নোট দেখুন।

অ্যাপ কোয়ালিটি ইনসাইটস-এ ভার্সন কন্ট্রোল সিস্টেম ইন্টিগ্রেশন

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

আপনার ভার্সন কন্ট্রোল সিস্টেমকে App Quality Insights-এর সাথে ইন্টিগ্রেট করতে হলে, নিম্নলিখিত ন্যূনতম প্রয়োজনীয়তাগুলো পূরণ করতে হবে:

ডিবাগযোগ্য বিল্ড টাইপের জন্য ভার্সন কন্ট্রোল ইন্টিগ্রেশন ব্যবহার করতে, মডিউল-স্তরের বিল্ড ফাইলে vcsInfo ফ্ল্যাগটি সক্রিয় করুন। রিলিজ (নন-ডিবাগযোগ্য) বিল্ডের ক্ষেত্রে, ফ্ল্যাগটি ডিফল্টরূপে সক্রিয় থাকে।

কোটলিন

android {
  buildTypes {
    getByName("debug") {
      vcsInfo {
        include = true
      }
    }
  }
}

গ্রুভি

android {
  buildTypes {
    debug {
      vcsInfo {
        include true
      }
    }
  }
}

এখন, যখন আপনি আপনার অ্যাপ বিল্ড করে গুগল প্লে-তে প্রকাশ করেন, তখন ক্র্যাশ রিপোর্টে সেই ডেটা অন্তর্ভুক্ত থাকে যা IDE-কে স্ট্যাক ট্রেস থেকে আপনার অ্যাপের পূর্ববর্তী সংস্করণগুলির সাথে সংযোগ স্থাপন করতে সাহায্য করে।

অ্যাপ কোয়ালিটি ইনসাইটস-এ ক্র্যাশলিটিক্স ক্র্যাশের বিভিন্ন সংস্করণ দেখুন

কোনো ক্র্যাশের মূল কারণ বিশ্লেষণ করতে, আপনি এখন অ্যাপ কোয়ালিটি ইনসাইটস ব্যবহার করে ইস্যু ভ্যারিয়েন্ট অনুযায়ী ইভেন্টগুলো দেখতে পারেন। এই ভ্যারিয়েন্টগুলো হলো এমন ইভেন্টের গ্রুপ যাদের স্ট্যাক ট্রেস একই রকম। একটি ক্র্যাশ রিপোর্টের প্রতিটি ভ্যারিয়েন্টের ইভেন্টগুলো দেখতে, ড্রপডাউন থেকে একটি ভ্যারিয়েন্ট নির্বাচন করুন। সমস্ত ভ্যারিয়েন্টের তথ্য একত্রিত করতে, 'All' নির্বাচন করুন।

কম্পোজ UI চেক

ডেভেলপারদের Jetpack Compose-এ আরও অভিযোজনযোগ্য এবং অ্যাক্সেসযোগ্য UI তৈরি করতে সাহায্য করার জন্য, Android Studio Iguana Canary 5, Compose Preview-তে একটি নতুন UI চেক মোড চালু করেছে। এই ফিচারটি ভিউ-এর জন্য ভিজ্যুয়াল লিন্টিং এবং অ্যাক্সেসিবিলিটি চেক ইন্টিগ্রেশনের মতোই কাজ করে। আপনি যখন Compose UI চেক মোড সক্রিয় করেন, তখন Android Studio স্বয়ংক্রিয়ভাবে আপনার Compose UI অডিট করে এবং বিভিন্ন স্ক্রিন সাইজে অভিযোজনযোগ্য ও অ্যাক্সেসিবিলিটি সংক্রান্ত সমস্যা, যেমন বড় স্ক্রিনে টেক্সট প্রসারিত হয়ে যাওয়া বা রঙের কনট্রাস্ট কম থাকা, পরীক্ষা করে। এই মোডটি বিভিন্ন প্রিভিউ কনফিগারেশনে পাওয়া সমস্যাগুলো হাইলাইট করে এবং প্রবলেমস প্যানেলে সেগুলোর একটি তালিকা দেখায়।

UI চেক বাটনে ক্লিক করে আজই এই ফিচারটি ব্যবহার করে দেখুন। কম্পোজ প্রিভিউতে আপনার মতামত পাঠান:

চেকটি সক্রিয় করতে কম্পোজ UI চেক মোড বোতামটি ক্লিক করুন।

UI চেক মোডের জ্ঞাত সমস্যাসমূহ:

  • প্রবলেম প্যানেলে নির্বাচিত ইস্যুটি ফোকাস হারাতে পারে।
  • "সাপ্রেস রুল" কাজ করে না
প্রবলেমস প্যানেলে বিস্তারিত বিবরণসহ কম্পোজ UI চেক মোড সক্রিয় করা হয়েছে।

কম্পোজ প্রিভিউয়ের জন্য প্রগতিশীল রেন্ডারিং

Android Studio Iguana Canary 3 introduces Progressive Rendering in Compose Preview. As part of a continual effort to make previews more performant, now for any preview that is out of view, we purposely decrease their render quality to save memory used.

এই ফিচারটি একটি ফাইলে একই সাথে একাধিক প্রিভিউ পরিচালনা করার সক্ষমতা দিয়ে প্রিভিউ-এর ব্যবহারযোগ্যতা আরও উন্নত করার লক্ষ্যে তৈরি করা হয়েছে। আজই এটি ব্যবহার করে দেখুন এবং আপনার মতামত জানান

বেসলাইন প্রোফাইল মডিউল উইজার্ড

Android Studio Iguana থেকে শুরু করে, আপনি নতুন মডিউল উইজার্ডে ( File > New > New Module ) থাকা বেসলাইন প্রোফাইল জেনারেটর টেমপ্লেট ব্যবহার করে আপনার অ্যাপের জন্য বেসলাইন প্রোফাইল তৈরি করতে পারেন।

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

এই টেমপ্লেটটি একটি রান কনফিগারেশনও তৈরি করে, যা আপনাকে 'সিলেক্ট রান/ডিবাগ কনফিগারেশন' ড্রপ-ডাউন তালিকা থেকে এক ক্লিকে একটি বেসলাইন প্রোফাইল তৈরি করার সুযোগ দেয়।

Espresso Device API ব্যবহার করে কনফিগারেশন পরিবর্তনের বিরুদ্ধে পরীক্ষা করুন

ডিভাইসের সাধারণ কনফিগারেশন পরিবর্তন, যেমন ডিভাইস ঘোরানো এবং স্ক্রিন খোলার সময়, আপনার অ্যাপ পরীক্ষা করতে Espresso Device API ব্যবহার করুন। Espresso Device API আপনাকে একটি ভার্চুয়াল ডিভাইসে এই কনফিগারেশন পরিবর্তনগুলো সিমুলেট করতে দেয় এবং আপনার টেস্টগুলো সিনক্রোনাসভাবে সম্পাদন করে, ফলে একবারে কেবল একটি UI অ্যাকশন বা অ্যাসারশন ঘটে এবং আপনার পরীক্ষার ফলাফল আরও নির্ভরযোগ্য হয়। Espresso দিয়ে কীভাবে UI টেস্ট লিখতে হয় সে সম্পর্কে আরও জানুন।

এসপ্রেসো ডিভাইস এপিআই ব্যবহার করার জন্য আপনার নিম্নলিখিত জিনিসগুলির প্রয়োজন হবে:

  • অ্যান্ড্রয়েড স্টুডিও ইগুয়ানা বা উচ্চতর সংস্করণ
  • অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.৩ বা তার উচ্চতর সংস্করণ
  • অ্যান্ড্রয়েড এমুলেটর ৩৩.১.১০ বা উচ্চতর
  • অ্যান্ড্রয়েড ভার্চুয়াল ডিভাইস যা এপিআই লেভেল ২৪ বা তার উচ্চতর সংস্করণে চলে

এসপ্রেসো ডিভাইস এপিআই-এর জন্য আপনার প্রজেক্টটি সেট আপ করুন।

আপনার প্রজেক্টটি Espresso Device API সমর্থন করার জন্য সেট আপ করতে, নিম্নলিখিতগুলি করুন:

  1. টেস্ট ডিভাইসটিকে কমান্ড পাঠানোর অনুমতি দিতে, androidTest সোর্স সেটের ম্যানিফেস্ট ফাইলে INTERNET এবং ACCESS_NETWORK_STATE পারমিশনগুলো যোগ করুন:

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
  2. gradle.properties ফাইলে enableEmulatorControl পরীক্ষামূলক ফ্ল্যাগটি সক্রিয় করুন:

      android.experimental.androidTest.enableEmulatorControl=true
  3. মডিউল-স্তরের বিল্ড স্ক্রিপ্টে emulatorControl অপশনটি সক্রিয় করুন:

    কোটলিন

      testOptions {
        emulatorControl {
          enable = true
        }
      }

    গ্রুভি

      testOptions {
        emulatorControl {
          enable = true
        }
      }
  4. মডিউল-স্তরের বিল্ড স্ক্রিপ্টে, আপনার প্রজেক্টে Espresso Device লাইব্রেরিটি ইম্পোর্ট করুন:

    কোটলিন

      dependencies {
        androidTestImplementation("androidx.test.espresso:espresso-device:3.6.1")
      }

    গ্রুভি

      dependencies {
        androidTestImplementation 'androidx.test.espresso:espresso-device:3.6.1'
      }

সাধারণ কনফিগারেশন পরিবর্তনের বিরুদ্ধে পরীক্ষা করুন

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

স্ক্রিন ঘূর্ণনের বিরুদ্ধে পরীক্ষা

ডিভাইসের স্ক্রিন ঘুরলে আপনার অ্যাপের কী পরিবর্তন হয়, তা পরীক্ষা করার একটি উদাহরণ এখানে দেওয়া হলো:

  1. প্রথমে, একটি সামঞ্জস্যপূর্ণ প্রারম্ভিক অবস্থার জন্য ডিভাইসটিকে পোর্ট্রেট মোডে সেট করুন:

      import androidx.test.espresso.device.action.ScreenOrientation
      import androidx.test.espresso.device.rules.ScreenOrientationRule
      ...
      @get:Rule
      val screenOrientationRule: ScreenOrientationRule = ScreenOrientationRule(ScreenOrientation.PORTRAIT)
  2. এমন একটি টেস্ট তৈরি করুন যা টেস্ট চলাকালীন ডিভাইসটিকে ল্যান্ডস্কেপ ওরিয়েন্টেশনে সেট করে:

      @Test
      fun myRotationTest() {
        ...
        // Sets the device to landscape orientation during test execution.
        onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
        ...
      }
  3. স্ক্রিনটি ঘোরার পরে, পরীক্ষা করে দেখুন যে UI প্রত্যাশা অনুযায়ী নতুন লেআউটের সাথে খাপ খাইয়ে নিচ্ছে কিনা:

      @Test
      fun myRotationTest() {
        ...
        // Sets the device to landscape orientation during test execution.
        onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
        composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed()
        composeTestRule.onNodeWithTag("BottomBar").assertDoesNotExist()
      }

স্ক্রিন ভাঁজ খোলার বিরুদ্ধে পরীক্ষা

আপনার অ্যাপটি কোনো ফোল্ডেবল ডিভাইসে থাকলে এবং স্ক্রিনটি খুলে গেলে কী হয়, তা পরীক্ষা করার একটি উদাহরণ এখানে দেওয়া হলো:

  1. প্রথমে, onDevice().setClosedMode() কল করে ডিভাইসটি ভাঁজ করা অবস্থায় পরীক্ষা করুন। নিশ্চিত করুন যে আপনার অ্যাপের লেআউটটি স্ক্রিনের সীমিত প্রস্থের সাথে মানিয়ে নেয়:

      @Test
      fun myUnfoldedTest() {
        onDevice().setClosedMode()
        composeTestRule.onNodeWithTag("BottomBar").assetIsDisplayed()
        composeTestRule.onNodeWithTag("NavRail").assetDoesNotExist()
        ...
      }
  2. সম্পূর্ণরূপে খোলা অবস্থায় যেতে, onDevice().setFlatMode() কল করুন। অ্যাপের লেআউটটি প্রসারিত সাইজ ক্লাসের সাথে খাপ খাইয়ে নিচ্ছে কিনা তা পরীক্ষা করুন:

      @Test
      fun myUnfoldedTest() {
        onDevice().setClosedMode()
        ...
        onDevice().setFlatMode()
        composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed()
        composeTestRule.onNodeWithTag("BottomBar").assetDoesNotExist()
      }

আপনার পরীক্ষার জন্য কোন কোন ডিভাইস প্রয়োজন তা নির্দিষ্ট করুন।

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

For example, to specify that a test should only be run on devices that support unfolding to a flat configuration, add the following @RequiresDeviceMode code to your test:

@Test
@RequiresDeviceMode(mode = FLAT)
fun myUnfoldedTest() {
  ...
}