রানটাইম রচনা করুন

কম্পোজের প্রোগ্রামিং মডেল এবং স্টেট ম্যানেজমেন্টের মৌলিক বিল্ডিং ব্লক এবং কম্পোজ কম্পাইলার প্লাগইনকে লক্ষ্য করার জন্য মূল রানটাইম।
সর্বশেষ আপডেট স্থিতিশীল রিলিজ প্রার্থী মুক্তি বিটা রিলিজ আলফা রিলিজ
আগস্ট 27, 2025 1.9.0 - - 1.10.0-আলফা02

গঠন

কম্পোজ হল androidx মধ্যে 7টি Maven Group Id-এর সংমিশ্রণ। প্রতিটি গোষ্ঠীতে কার্যকারিতার একটি লক্ষ্যযুক্ত উপসেট রয়েছে, প্রতিটির নিজস্ব রিলিজ নোটের সেট রয়েছে।

এই টেবিলটি রিলিজ নোটের প্রতিটি সেটের গ্রুপ এবং লিঙ্কগুলি ব্যাখ্যা করে।

গ্রুপ বর্ণনা
compose.animation ব্যবহারকারীর অভিজ্ঞতাকে সমৃদ্ধ করতে তাদের জেটপ্যাক রচনা অ্যাপ্লিকেশনগুলিতে অ্যানিমেশন তৈরি করুন।
compose.compiler @Composable ফাংশন ট্রান্সফর্ম করুন এবং একটি Kotlin কম্পাইলার প্লাগইন দিয়ে অপ্টিমাইজেশান সক্ষম করুন।
compose.foundation বিল্ডিং ব্লক ব্যবহার করার জন্য প্রস্তুত সহ জেটপ্যাক কম্পোজ অ্যাপ্লিকেশন লিখুন এবং আপনার নিজস্ব ডিজাইন সিস্টেম টুকরা তৈরি করতে ভিত্তি প্রসারিত করুন।
compose.material মেটেরিয়াল ডিজাইন কম্পোনেন্ট ব্যবহারের জন্য প্রস্তুত জেটপ্যাক কম্পোজ UI তৈরি করুন। এটি রচনার উচ্চ স্তরের এন্ট্রি পয়েন্ট, যা www.material.io-তে বর্ণিত উপাদানগুলির সাথে মেলে এমন উপাদানগুলি প্রদান করার জন্য ডিজাইন করা হয়েছে৷
compose.material3 মেটেরিয়াল ডিজাইন 3 উপাদান সহ জেটপ্যাক কম্পোজ UI তৈরি করুন, মেটেরিয়াল ডিজাইনের পরবর্তী বিবর্তন। মেটেরিয়াল 3-এ আপডেটেড থিমিং এবং উপাদান এবং মেটেরিয়াল ইউ ব্যক্তিগতকরণ বৈশিষ্ট্য রয়েছে যেমন ডায়নামিক কালার, এবং নতুন Android 12 ভিজ্যুয়াল স্টাইল এবং সিস্টেম UI এর সাথে সমন্বয় করার জন্য ডিজাইন করা হয়েছে।
compose.runtime কম্পোজের প্রোগ্রামিং মডেল এবং স্টেট ম্যানেজমেন্টের মৌলিক বিল্ডিং ব্লক এবং কম্পোজ কম্পাইলার প্লাগইনকে লক্ষ্য করার জন্য মূল রানটাইম।
compose.ui লেআউট, অঙ্কন এবং ইনপুট সহ ডিভাইসের সাথে ইন্টারঅ্যাক্ট করার জন্য কম্পোজ UI এর মৌলিক উপাদানগুলি প্রয়োজন।

নির্ভরতা ঘোষণা করা

রচনার উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।

আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:

Groovy

dependencies {
    implementation "androidx.compose.runtime:runtime:1.9.0"
    implementation "androidx.compose.runtime:runtime-livedata:1.9.0"
    implementation "androidx.compose.runtime:runtime-rxjava2:1.9.0"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.runtime:runtime:1.9.0")
    implementation("androidx.compose.runtime:runtime-livedata:1.9.0")
    implementation("androidx.compose.runtime:runtime-rxjava2:1.9.0")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যুক্ত করুন দেখুন।

প্রতিক্রিয়া

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

একটি নতুন সমস্যা তৈরি করুন

আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।

রানটাইম ট্রেসিং সংস্করণ 1.7

সংস্করণ 1.7.0-rc01

সেপ্টেম্বর 18, 2024

androidx.compose.runtime:runtime-tracing:1.7.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-rc01-এ এই কমিট রয়েছে।

রানটাইম ট্রেসিং সংস্করণ 1.0

সংস্করণ 1.0.0-beta01

নভেম্বর 29, 2023

androidx.compose.runtime:runtime-tracing:1.0.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-beta01-এ এই কমিট রয়েছে।

সংস্করণ 1.0.0-alpha05

15 নভেম্বর, 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha05 প্রকাশিত হয়েছে। 1.0.0-alpha05 সংস্করণে এই কমিট রয়েছে।

বাগ ফিক্স

  • সর্বনিম্ন সমর্থিত স্থিতিশীল সংস্করণগুলিতে পিন করা নির্ভরতা (যেমন কম্পোজ-রানটাইম এবং ট্রেসিং-পারফেটো) - একটি সমস্যা সমাধান করা যেখানে কম্পোজ-রানটাইম-ট্রেসিং অ্যাপে কম্পোজ-রানটাইমের একটি নতুন সংস্করণ আনবে।

সংস্করণ 1.0.0-alpha04

23 আগস্ট, 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha04 এই কমিট ধারণ করে।

নতুন বৈশিষ্ট্য

  • বেঞ্চমার্ক এবং ট্রেসিং পারফেটোর সর্বশেষ সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ, অ্যাপ স্টার্টআপে (কোল্ড স্টার্ট) যেমন অ্যান্ড্রয়েডএক্স বেঞ্চমার্ক এবং অ্যান্ড্রয়েড স্টুডিওতে (হেজহগ বিটা 2 থেকে শুরু) কম্পোজিশন ট্রেসিংয়ের জন্য সমর্থন সক্ষম করে৷

এপিআই পরিবর্তন

  • androidx.tracing.perfetto.Trace নাম পরিবর্তন করে androidx.tracing.perfetto.PerfettoSdkTrace করা হয়েছে। ( I44af8 )
  • android.os.Trace সাথে সামঞ্জস্যপূর্ণ ট্রেসিং পারফেটো SDK API তৈরি করা। ( I73ba0 , b/282199917 )
  • অ্যাপ স্টার্টআপে ট্রেসিংয়ের পূর্বশর্ত। ( Iad890 )
  • একত্রিত পরীক্ষামূলক এবং সর্বজনীন API ফাইল ( I0f2e1 , b/278769092 )

সংস্করণ 1.0.0-alpha02

ফেব্রুয়ারী 8, 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha02 এই কমিট ধারণ করে।

নতুন বৈশিষ্ট্য

  • কোন কার্যকরী পরিবর্তন নেই। ডাউনস্ট্রিম নির্ভরতায় একাধিক কর্মক্ষমতা অপ্টিমাইজেশন androidx.tracing:tracing-perfetto*

সংস্করণ 1.0.0-alpha01

7 সেপ্টেম্বর, 2022

androidx.compose.runtime:runtime-tracing:1.0.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha01-এ এই কমিট রয়েছে।

নতুন বৈশিষ্ট্য

  • androidx.compose.runtime:runtime-tracing একটি লাইব্রেরি যা - এটিকে সমর্থনকারী টুলিংয়ের উপস্থিতিতে (শীঘ্রই আসছে) - একটি রচনা অ্যাপে বর্ধিত ট্রেসিংয়ের অনুমতি দেয়৷ এই প্রাথমিক রিলিজ হল 1.0.0-alpha01।

সংস্করণ 1.10

সংস্করণ 1.10.0-alpha02

আগস্ট 27, 2025

androidx.compose.runtime:runtime-*:1.10.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.10.0-alpha02-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • @DoNotRetain যোগ করা হয়েছে, যেটি এমন ধরনের টীকা দিতে ব্যবহার করা যেতে পারে যা retain এপিআই-এর সাথে ব্যবহার করা উচিত নয়, সম্ভবত কারণ তারা রিসোর্স লিক করবে। ( IE5435 )
  • Kotlin 2.0 এর সাথে মুক্তিপ্রাপ্ত প্রকল্পগুলির জন্য KGP 2.0.0 বা নতুন ব্যবহার করা প্রয়োজন। ( আইডিবি৬বি৫ )

বাগ ফিক্স

  • যখন বিষয়বস্তু একটি রচনার রুট নোড পরিবর্তন করে তখন প্রয়োগকারীর ক্রিয়াকলাপগুলি সঠিকভাবে গণনা করার জন্য স্থির চলমান সামগ্রী। চলমান বিষয়বস্তুর জন্য পরিবর্তন গণনা করার সময় একটি up() কল মুলতুবি রাখা হতে পারে এবং প্রয়োগকারীর কাছে আনডিস্প্যাচ করা যেতে পারে যার ফলে পরবর্তী ব্যবহারের জন্য আবেদনকারীর অবস্থা ভুলভাবে অবস্থান করে। ( I7c583 ), ( I47b70 )
  • চেক CheckResult অপ্রচলিত হিসাবে চিহ্নিত করে কারণ এটি ব্যবহার করার জন্য নয়। ( I32934 )

সংস্করণ 1.10.0-alpha01

13 আগস্ট, 2025

androidx.compose.runtime:runtime-*:1.10.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.10.0-alpha01-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • রিটেন API প্রবর্তন করে। rememberSaveable এর মতো, রক্ষণাবেক্ষণ বজায় রাখতে পারে এবং মনে রাখা মানগুলি সংরক্ষণ করতে পারে যা রচনা শ্রেণিবিন্যাস ছেড়ে যায়। ধরে রাখা মানগুলি সিরিয়াল করা হয় না এবং সংরক্ষিত মানগুলির তুলনায় একটি ছোট জীবনকাল থাকে এবং একটি androidx ViewModel এর মতোই আচরণ করে৷ আরো বিস্তারিত জানার জন্য ডকুমেন্টেশন দেখুন. ( IA3105 , b/177562901 )
  • একটি awaitOrScheduleNextCompositionEnd() API যোগ করা হয়েছে, যেটি একটি কলব্যাক জারি করে যখন Recomposer বর্তমান ফ্রেম রচনা করা শেষ করে। Recomposer বর্তমানে একটি ফ্রেম রচনা না করলে, পরবর্তী ফ্রেমের রচনা শেষ না হওয়া পর্যন্ত এই API স্থগিত করে এবং একটি নতুন ফ্রেম রচনা করার সময়সূচী নির্ধারণ করে৷ ( Ib873c )
  • একটি নন-ইউনিট রিটার্নিং কম্পোজিশন স্থানীয় প্রদানকারী API যোগ করুন ( I22521 , b/271871288 )
  • একটি বৈশিষ্ট্য পতাকা যোগ করা হয়েছে, isMovableContentUsageTrackingEnabled , যা প্রাথমিকভাবে সামগ্রী তৈরি করার সময় কিছু ওভারহেড এড়াতে চলমান সামগ্রীর ব্যবহার ট্র্যাক করার অনুমতি দেয়। এই বৈশিষ্ট্য পতাকা বর্তমানে ডিফল্টরূপে নিষ্ক্রিয় করা হয়. ( IA713d )

বাগ ফিক্স

  • চলমান বিষয়বস্তুতে একটি ক্র্যাশ সংশোধন করে যখন এটি উপ-কম্পোজিশনের মধ্যে সরানো হয়। ( I3fa1e , b/436858107 )
  • একাধিক নেস্টেড সাবকম্পোজিশনের ভিতরে থাকাকালীন একটি সংমিশ্রণযোগ্য স্ট্যাকের ট্রেসের অংশ অনুপস্থিত সহ একটি বাগ সংশোধন করে৷ ( I98c6f )
  • ডিফল্ট minSdk কে API 21 থেকে API 23 এ সরানো হচ্ছে ( Ibdfca , b/380448311 , b/435705964 , b/435705223 )
  • যখন একাধিক থ্রেড থেকে একটি বিরতিযোগ্য রচনার অভ্যন্তরীণ অবস্থা আপডেট করা হচ্ছিল তখন একটি রেসের অবস্থা স্থির করা হয়েছে৷ ( I03895 )
  • প্রাথমিক রচনার আগে কম্পোজিশন রেজিস্ট্রেশন পর্যবেক্ষককে ডাকা হবে। ( I4adca , b/430600932 )
  • K1 এবং K2 উভয়ের জন্য AutoboxingStateValuePropertyDetector সামঞ্জস্যপূর্ণ করতে ছোটখাট বাগ সংশোধন করা হয়েছে। ( IE81c1 )

বাহ্যিক অবদান

  • রানটাইম-rxjava2 আর্টিফ্যাক্ট মাল্টিপ্ল্যাটফর্ম তৈরি করুন এবং একটি সমর্থিত লক্ষ্য হিসাবে JVM যোগ করুন। ( I5409e )
  • রানটাইম-rxjava3 আর্টিফ্যাক্ট মাল্টিপ্ল্যাটফর্ম তৈরি করুন এবং একটি সমর্থিত লক্ষ্য হিসাবে JVM যোগ করুন। ( I97e84 )

সংস্করণ 1.9

সংস্করণ 1.9.0

13 আগস্ট, 2025

androidx.compose.runtime:runtime-*:1.9.0 প্রকাশিত হয়েছে। সংস্করণ 1.9.0-এ এই কমিটগুলি রয়েছে।

1.8.0 থেকে গুরুত্বপূর্ণ পরিবর্তন

  • কম্পোজের সাথে পাঠানো লিন্ট চেকগুলির জন্য এখন ন্যূনতম 8.8.2 এর AGP সংস্করণ প্রয়োজন৷ আপনি যদি AGP আপগ্রেড করতে অক্ষম হন, তাহলে আপনি আপনার gradle.properties-এ android.experimental.lint.version=8.8.2 (বা একটি নতুন সংস্করণ) ব্যবহার করে Lint আপগ্রেড করতে পারেন। IDE-এর ভিতরে কম্পোজ লিন্ট চেক চালানোর জন্য, Android Studio Ladybug বা আরও নতুন প্রয়োজন।
  • একটি নতুন রানটাইম-টীকা লাইব্রেরি তৈরি করা হয়েছে৷ এটি রচনা রানটাইমের উপর নির্ভরতা ছাড়াই টীকা সংজ্ঞা ধারণ করে, তাই এটি নন-কম্পোজ মডিউল থেকে ব্যবহার করা যেতে পারে।
    • @Stable , @Immutable , এবং @StableMarker কে রানটাইম-টীকা-এ স্থানান্তরিত করা হয়েছে, অ-রচনা মডিউল টীকা করার অনুমতি দিতে
    • @FrequentlyChangingValue এবং @RememberInComposition রানটাইম-টীকা যোগ করা হয়েছে। @FrequentlyChangingValue ঘোষণাগুলিকে চিহ্নিত করে যা ঘন ঘন পুনর্গঠনের কারণ হতে পারে, এবং @RememberInComposition চিহ্নগুলি ঘোষণা করে যা রচনায় মনে রাখা উচিত। সংশ্লিষ্ট লিন্ট চেকগুলি ভুল ব্যবহারের জন্য সতর্ক করে।

সংস্করণ 1.9.0-rc01

30 জুলাই, 2025

androidx.compose.runtime:runtime-*:1.9.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.9.0-rc01-এ এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • প্রাথমিক রচনার আগে কম্পোজিশন রেজিস্ট্রেশন পর্যবেক্ষককে ডাকা হবে। ( I4adca , b/430600932 )

সংস্করণ 1.9.0-beta03

জুলাই 16, 2025

androidx.compose.runtime:runtime-*:1.9.0-beta03 প্রকাশিত হয়েছে। 1.9.0-beta03 সংস্করণে এই কমিটগুলি রয়েছে।

সংস্করণ 1.9.0-beta02

2 জুলাই, 2025

androidx.compose.runtime:runtime-*:1.9.0-beta02 প্রকাশিত হয়েছে। 1.9.0-beta02 সংস্করণে এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • রচনাগুলির মধ্যে স্লট সারণীতে মানের রেফারেন্স লাইফটাইম হ্রাস করা হয়েছে৷ এমন কিছু ক্ষেত্রে রয়েছে যেখানে একটি স্লট টেবিলের একটি রেফারেন্স প্রয়োজনের চেয়ে বেশি সময় ধরে একটি ফ্রেম স্থায়ী হতে পারে। ( I49e74 , b/418516940 )
  • হট রিলোড পদ্ধতির জন্য কোটলিন ম্যাঙ্গেল সরান। ( Ic56a3 , b/426871325 )

সংস্করণ 1.9.0-beta01

18 জুন, 2025

androidx.compose.runtime:runtime-*:1.9.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.9.0-beta01-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • কম্পোজ কম্পাইলার দ্বারা যোগ করা উৎস তথ্য পার্স করার জন্য একটি টুলিং API যোগ করা হয়েছে। ( Iceaf9 , b/408492167 )
  • SnapshotStateSet এখন অ্যান্ড্রয়েডে Parcelable প্রয়োগ করে, এটি এখন rememberSaveable { ... } । ( I755dd , b/378623803 )
  • SnapshotStateList এখন অ্যান্ড্রয়েডে Parcelable প্রয়োগ করে, এটি এখন rememberSaveable { ... } । ( Id18be , b/378623803 )
  • movableContentOf() এখন @RememberInComposition টীকা দিয়ে চিহ্নিত করা হয়েছে, যা লিন্টকে ভুল ব্যবহার ধরতে দেয় ( I2738d )
  • পুনর্গঠনের কারণগুলির আরও ব্যাপক পর্যবেক্ষণের জন্য পরীক্ষামূলক রচনা পর্যবেক্ষক API আপডেট করা হয়েছে ( I32b6a )
  • এই বৈশিষ্ট্যটির ভবিষ্যত বিকাশের জন্য অ্যাকাউন্টে পরীক্ষামূলক setDiagnosticStackTraceEnabled পরিবর্তন করুন। ( I11db3 )
  • currentCompositeKeyHash এখন অবহেলিত। পরিবর্তে currentCompositeKeyHashCode ব্যবহার করুন। রিপ্লেসমেন্ট এপিআই একই হ্যাশকে আরও বিট দিয়ে এনকোড করে, যা একই হ্যাশ কী থাকা থেকে কম্পোজিশন হায়ারার্কিতে দুটি এলোমেলোভাবে সম্পর্কহীন গ্রুপের সম্ভাবনা কমিয়ে দেয়। ( I4cb6a , b/177562901 )
  • Kotlin 2.0 এর সাথে রিলিজ করা প্রজেক্টের জন্য KGP 2.0.0 বা নতুন ব্যবহার করতে হবে ( Idb6b5 )
  • @Stable , @Immutable , এবং @StableMarker কে রানটাইম-টীকা (একটি সামঞ্জস্যপূর্ণ উপায়ে) সরানো হয়েছে। আপনি এখন রানটাইম-টীকাটির উপর নির্ভর করতে পারেন যদি আপনি লাইব্রেরি থেকে এই টীকাগুলি ব্যবহার করতে চান যা রচনার উপর নির্ভর করে না। ( I23a16 )
  • rememberSaveable ওভারলোডের নাম পরিবর্তন করা হয়েছে যা একটি KSerializer rememberSerializable জন্য গ্রহণ করে। এই পরিবর্তনটি kotlinx.serialization সাথে এর উদ্দেশ্যযুক্ত ব্যবহারকে স্পষ্ট করে। সাধারণ kotlinx.Serializable ক্লাসগুলিকে সরাসরি rememberSaveable এ সমর্থন করার জন্য একটি reified টাইপ প্যারামিটারের প্রয়োজন হবে, যা কম্পাইলের সময় সমস্ত কল সাইটকে রিফাইড টাইপ তথ্য প্রদানের প্রয়োজনের মাধ্যমে উৎসের সামঞ্জস্য ভঙ্গ করবে। ( Idb875 , I38627 , b/376028110 )

বাগ ফিক্স

  • যে রচনাগুলিকে বিরতিযোগ্য বিষয়বস্তুর সাথে সেট করা হয়েছিল যা বাতিল করা হয়েছে তা অবশ্যই নিষ্পত্তি করতে হবে। এটি এখন রচনা দ্বারা পরীক্ষা করা হয়েছে এবং এটি পুনরায় ব্যবহার করা হলে নিক্ষেপ করা হবে। ( I2daa5 , b/406792785 )
  • স্থির বিরতিযোগ্য কম্পোজিশনটি আর একটি বানোয়াট না পাঠাতে onForgotten পর্যবেক্ষকদের মনে রাখার জন্য যখন বিরতিযোগ্য রচনাটি নিষ্পত্তি করা হয়। RememberObservers একটি বাতিল বিরতিযোগ্য রচনায় পর্যবেক্ষকদের শুধুমাত্র একটি onAbandoned পাঠানো উচিত। ( I26f54 )
  • একটি চলমান বিষয়বস্তুর সমস্যা সমাধান করা হয়েছে যেখানে অস্থাবর বিষয়বস্তু প্রক্রিয়াকরণের দেরী পর্যায়ে পৌঁছানো অবৈধতাগুলি কম্পোজারে যোগ করা হয় কিন্তু এই অবৈধতাগুলি আপডেট করা হয় না যখন বিষয়বস্তু সরানো হয় যার ফলে বিষয়বস্তুটি ভুল জায়গায় পুনর্গঠিত হয়৷ ( Icd2fa , b/409439507 )
  • একটি সমস্যা সমাধান করা হয়েছে যখন চলমান বিষয়বস্তু এটি রচনা করার পরে কিন্তু এটি সরানোর আগে অবৈধ ছিল। ( I99eac , b/229001114 )
  • previous() ) কল করার পরে SnapshotStateList দ্বারা উত্পাদিত একটি তালিকা পুনরাবৃত্তিকারীর remove() ) কল করা তালিকা থেকে ভুল উপাদানটি সরিয়ে ফেলতে পারে এবং কলের একই ক্রমটির জন্য ArrayList যা করে তার সাথে মেলে না। ( I05ab7 , b/417493222 )
  • onForgotton এর প্রেরণের সাথে একটি অর্ডারিং সমস্যা সমাধান করা হয়েছে যা, উদাহরণস্বরূপ, নিষ্পত্তিযোগ্য প্রভাবগুলির onDispose ভুল ক্রমে কার্যকর করতে পারে। ( Ic1c91 , b/417450712 )
  • বিরামযোগ্য কম্পোজিশনে স্টেট হ্যান্ডলিং পুনঃব্যবহারের জন্য ফিক্স করুন ( Ife96e , b/404058957 )
  • কম্পোজিশন পজ করা এবং রিস্টার্ট করা হলে পুনঃব্যবহারের অবস্থা ঠিক করা হয়েছে কিন্তু কিছু পূর্বে পজ করা স্টেট পুনরায় কম্পোজ করা দরকার কারণ কম্পোজিশন পজ করার সময় এটি পড়ার কিছু অবস্থা পরিবর্তিত হয়েছে। ( I441d1 , b/416209738 )
  • বিরামযোগ্য কম্পোজিশন সমাপ্ত হয়েছে বি/404058957 ইস্যুটির জন্য ডিসপ্যাচ ফিক্স মনে রাখবেন আগের ফিক্সটি অসম্পূর্ণ ছিল। ( I1afd4 , b/404058957 )
  • OffsetApplier এখন সঠিকভাবে apply() ওভাররাইড করে যা বিরতিযোগ্য রচনার সাথে চালু করা হয়েছিল। এটি না থাকার কারণে ভার্চুয়াল নোড আপডেট করার সময় বিরতিযোগ্য কম্পোজিশন ব্যতিক্রম হতে পারে। ( Idbf31 , b/409291131 )
  • একটি অচলাবস্থা স্থির করা হয়েছে যা অণু ব্যবহারকারীদের প্রভাবিত করতে পারে যখন একটি ফ্রেম পাঠানোর সময় FrameClock.withFrameNanos এ একটি স্থগিত কল বাতিল করা হয়। ( I89cab , b/407027032 )
  • Recomposer চলমান বিষয়বস্তু সহ নিষ্ক্রিয় যেতে পারে ( Ie5416 , b/409267170 )
  • যে ক্রমে onReuse এবং onDeactivate বিরতিযোগ্য রচনার সময় উল্টে যেতে পারে। সেগুলি এখন onDeactivate / onReuse এর ক্রমানুসারে ঘটবে এমন নিশ্চয়তা রয়েছে। ( I996e4 , b/404058957 )
  • একই প্রযোজ্য ( I570b2 , b/404645679 , b/407931790 ) প্রেরন এড়ানোর জন্য বিরতিযোগ্য কম্পোজিশনে মনে রাখা পর্যবেক্ষকদের পাঠানো ঠিক করুন।
  • MainThread চেক অক্ষম করতে এবং থ্রেডিং সমস্যাগুলি সমাধান করতে কম্পোজ মাল্টিপ্ল্যাটফর্মে LifecycleRegistry অনিরাপদ মোডে স্যুইচ করেছে৷ বিস্তারিত জানার জন্য CMP-8227 দেখুন। ( Icee87 )

বাহ্যিক অবদান

  • অণু ব্যবহারকারীদের প্রভাবিত করে এমন একটি বাগ সংশোধন করা হয়েছে যেখানে RecompositionMode.Immediate ব্যবহার করে মিস করা পুনর্গঠন হতে পারে। ( I9f3a9 , b/419527812 )
  • প্রকাশ করা PausableComposition isApplied এবং isCancelled getters যা PausableComposition এর অবস্থা পরীক্ষা করার অনুমতি দেয়। ( I994aa )
  • FunctionKeyMeta টীকাটিতে AnnotationTarget.FUNCTION যোগ করা হয়েছে। ( I08021 )

সংস্করণ 1.9.0-alpha04

জুন 4, 2025

androidx.compose.runtime:runtime-*:1.9.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.9.0-alpha04-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • SnapshotStateSet এখন অ্যান্ড্রয়েডে পার্সেলেবল প্রয়োগ করে, এটি এখন rememberSaveable { ... } । ( I755dd , b/378623803 )
  • SnapshotStateList এখন অ্যান্ড্রয়েডে পার্সেলেবল প্রয়োগ করে, এটি এখন rememberSaveable { ... } । ( Id18be , b/378623803 )
  • movableContentOf() এখন @RememberInComposition টীকা দিয়ে চিহ্নিত করা হয়েছে, যা লিন্টকে ভুল ব্যবহার ধরতে দেয় ( I2738d )
  • পুনর্গঠনের কারণগুলির আরও ব্যাপক পর্যবেক্ষণের জন্য পরীক্ষামূলক রচনা পর্যবেক্ষক API আপডেট করা হয়েছে ( I32b6a )

বাগ ফিক্স

  • onForgotton এর প্রেরণের সাথে একটি অর্ডারিং সমস্যা সমাধান করা হয়েছে যা, উদাহরণস্বরূপ, নিষ্পত্তিযোগ্য প্রভাবগুলির onDispose ভুল ক্রমে কার্যকর করতে পারে। ( Ic1c91 , b/417450712 )
  • বিরামযোগ্য কম্পোজিশনে স্টেট হ্যান্ডলিং পুনঃব্যবহারের জন্য ফিক্স করুন ( Ife96e , b/404058957 )
  • K1 এবং K2 ( Ie4878 ) উভয়ের জন্য পরিবর্তনযোগ্য সংগ্রহ সনাক্তকরণকে সামঞ্জস্যপূর্ণ করতে ছোটখাট বাগ ফিক্স
  • K1 এবং K2 ( I9900d ) উভয়ের জন্য সামঞ্জস্যপূর্ণ ওভাররাইডেড সম্পত্তি অ্যাক্সেসরগুলিতে টীকা লুকআপ করার জন্য ছোটখাট বাগ ফিক্স

বাহ্যিক অবদান

  • অণু ব্যবহারকারীদের প্রভাবিত করে এমন একটি বাগ সংশোধন করা হয়েছে যেখানে RecompositionMode.Immediate ব্যবহার করে মিস করা পুনর্গঠন হতে পারে। ( I9f3a9 , b/419527812 )
  • প্রকাশ করা PausableComposition is Applied এবং isCancelled getters যা PausableComposition এর অবস্থা পরীক্ষা করার অনুমতি দেয়। ( I994aa )

সংস্করণ 1.9.0-alpha03

20 মে, 2025

androidx.compose.runtime:runtime-*:1.9.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.9.0-alpha03-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • এই বৈশিষ্ট্যটির ভবিষ্যত বিকাশের জন্য অ্যাকাউন্টে পরীক্ষামূলক setDiagnosticStackTraceEnabled পরিবর্তন করুন। ( I11db3 )

বাগ ফিক্স

  • কম্পোজিশন পজ করা এবং রিস্টার্ট করা হলে পুনঃব্যবহারের অবস্থা ঠিক করা হয়েছে কিন্তু কিছু পূর্বে পজ করা স্টেট পুনরায় কম্পোজ করা দরকার কারণ কম্পোজিশন পজ করার সময় এটি পড়ার কিছু অবস্থা পরিবর্তিত হয়েছে। ( I441d1 , b/416209738 )
  • বিরামযোগ্য কম্পোজিশন সমাপ্ত হয়েছে বি/404058957 ইস্যুটির জন্য ডিসপ্যাচ ফিক্স মনে রাখবেন আগের ফিক্সটি অসম্পূর্ণ ছিল। ( I1afd4 , b/404058957 )
  • SaveableStateHolder.SaveableStateProvider এখন কম্পোজিশনের মাধ্যমে এর বিষয়বস্তুতে একটি LocalSavedStateRegistryOwner প্রদান করে। ( IA2761 , b/413108878 )
  • androidx.compose.runtime.saveable এখন androidx.lifecycle.runtime.compose এর উপর নির্ভর করে। ( I53228 , b/413108878 )

সংস্করণ 1.9.0-alpha02

7 মে, 2025

androidx.compose.runtime:runtime-*:1.9.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.9.0-alpha02-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • একটি কাস্টম 'কী' সহ অবচয়িত rememberSaveable । এটি অবস্থানগত স্কোপিংকে বাইপাস করে, যা রাষ্ট্রীয় বাগ এবং অসামঞ্জস্যপূর্ণ আচরণের দিকে পরিচালিত করে (যেমন, অনিচ্ছাকৃত রাষ্ট্র ভাগ করা বা ক্ষতি, নেস্টেড LazyLayouts এ সমস্যা)। সামঞ্জস্যপূর্ণ, স্থানীয়ভাবে স্কোপযুক্ত অবস্থার জন্য অবস্থানগত স্কোপিং ব্যবহার করতে অনুগ্রহ করে 'কী' প্যারামিটার সরিয়ে দিন। আরো বিস্তারিত জানার জন্য সম্পূর্ণ কমিট বার্তা দেখুন. ( I5e6ff , b/357685851 )

বাগ ফিক্স

  • OffsetApplier এখন সঠিকভাবে apply() ওভাররাইড করে যা বিরতিযোগ্য রচনার সাথে চালু করা হয়েছিল। এটি না থাকার কারণে ভার্চুয়াল নোড আপডেট করার সময় বিরতিযোগ্য রচনা একটি ব্যতিক্রম নিক্ষেপ করতে পারে। ( Idbf31 , b/409291131 )
  • একটি অচলাবস্থা স্থির করা হয়েছে যা অণু ব্যবহারকারীদের প্রভাবিত করতে পারে যখন একটি ফ্রেম পাঠানোর সময় FrameClock.withFrameNanos এ একটি স্থগিত কল বাতিল করা হয়। ( I89cab , b/407027032 )
  • পুনর্গঠনকারী অস্থাবর বিষয়বস্তুর অবস্থার সাথে নিষ্ক্রিয় হয়ে যেতে পারে যা এখনও বাতিল করা বাকি রয়েছে৷ এটি সাধারণত ঘটবে না কারণ অস্থাবর বিষয়বস্তুর অবস্থা রিকমপোজারের প্রধান লুপে বাতিল করা হয়। যাইহোক, এটি বিরতিযোগ্য কম্পোজিশনে ঘটতে পারে যখন resume() ( Ie5416 , b/409267170 ) এর সময় চলমান বিষয়বস্তু বাতিল করা হয়
  • যে ক্রমে onReuse এবং onDeactivate বিরতিযোগ্য রচনার সময় উল্টে যেতে পারে। সেগুলি এখন onDeactivate/onReuse এর ক্রমানুসারে ঘটবে তা নিশ্চিত করা হয়েছে। ( I996e4 , b/404058957 )

সংস্করণ 1.9.0-alpha01

23 এপ্রিল, 2025

androidx.compose.runtime:runtime-*:1.9.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.9.0-alpha01-এ এই কমিট রয়েছে।

আচরণ পরিবর্তন

  • কম্পোজের সাথে পাঠানো লিন্ট চেকগুলির জন্য এখন ন্যূনতম 8.8.2 এর AGP সংস্করণ প্রয়োজন৷ আপনি যদি AGP আপগ্রেড করতে না পারেন, তাহলে আপনি আপনার gradle.propertiesandroid.experimental.lint.version=8.8.2 (বা একটি নতুন সংস্করণ) ব্যবহার করে লিন্টকে আপগ্রেড করতে পারেন। IDE-এর ভিতরে কম্পোজ লিন্ট চেক চালানোর জন্য, Android Studio Ladybug বা আরও নতুন প্রয়োজন।

এপিআই পরিবর্তন

  • currentCompositeKeyHash এখন অবহেলিত। পরিবর্তে currentCompositeKeyHashCode ব্যবহার করুন। রিপ্লেসমেন্ট এপিআই একই হ্যাশকে আরও বিট দিয়ে এনকোড করে, যা একই হ্যাশ কী থাকা থেকে কম্পোজিশন হায়ারার্কিতে দুটি এলোমেলোভাবে সম্পর্কহীন গ্রুপের সম্ভাবনা কমিয়ে দেয়। ( I4cb6a , b/177562901 )
  • Kotlin 2.0 এর সাথে রিলিজ করা প্রজেক্টের জন্য KGP 2.0.0 বা নতুন ব্যবহার করতে হবে ( Idb6b5 )
  • @Stable , @Immutable , এবং @StableMarker কে রানটাইম-টীকা (একটি সামঞ্জস্যপূর্ণ উপায়ে) সরানো হয়েছে। আপনি এখন রানটাইম-টীকাটির উপর নির্ভর করতে পারেন যদি আপনি লাইব্রেরি থেকে এই টীকাগুলি ব্যবহার করতে চান যা রচনার উপর নির্ভর করে না। ( I23a16 )
  • onCreating এবং onDisposing কে অপসারণ করা হয়েছে এবং onPreCreate এবং onPreDispose নামকরণ করা হয়েছে। এই পরিবর্তনটি পুনরায় নামকরণ সম্পূর্ণ করে। ( I97461 )
  • একটি কম্পোজিশন স্থানীয় প্রকাশ করুন যা কম্পোজে নোডের অবস্থানের উপর ভিত্তি করে একটি কম্পোজ স্ট্যাক ট্রেস সংযুক্ত করতে দেয়। ( Ie0bda , b/354163858 )
  • কম্পোজিশনে সংরক্ষিত উৎস তথ্যের উপর ভিত্তি করে ডায়গনিস্টিক কম্পোজ স্ট্যাক ট্রেস প্রবর্তন করুন। ( I3db9f , b/354163858 )
  • runWithMeasurementDisabled এর পক্ষে runWithTimingDisabled বর্জন করুন, যা আচরণকে আরও স্পষ্টভাবে বর্ণনা করে - সমস্ত মেট্রিক বিরাম দেওয়া হয়েছে। অতিরিক্তভাবে, MicrobenchmarkScope সুপারক্লাসটি প্রকাশ করুন যেহেতু অ্যাক্সেস ওপেন করার জন্য runWithMeasurementDisabled ফাংশনটি পুনরায় ঘোষণা করা সম্ভব নয়, যেহেতু এটি ইনলাইন। ( I9e23b , b/389149423 , b/149979716 )
  • @FrequentlyChangingValue যোগ করে: একটি টীকা যা ফাংশন এবং সম্পত্তি প্রাপ্তদের চিহ্নিত করতে পারে, নির্দেশ করতে যে তাদের সরাসরি রচনার ভিতরে বলা উচিত নয়, কারণ এটি ঘন ঘন পুনর্গঠনের কারণ হতে পারে। উদাহরণস্বরূপ, স্ক্রোল অবস্থানের মান এবং অ্যানিমেটিং মান চিহ্নিত করতে। সতর্কতা একটি সংশ্লিষ্ট লিন্ট চেক দ্বারা প্রদান করা হয়. ( I83630 , b/234042500 )
  • @RememberInComposition যোগ করে: একটি টীকা যা কনস্ট্রাক্টর, ফাংশন এবং প্রপার্টি গেটারদের চিহ্নিত করতে পারে, যাতে বোঝানো যায় যে তাদের মনে না রেখে সরাসরি কম্পোজিশনের ভিতরে ডাকা যাবে না। একটি সংশ্লিষ্ট লিন্ট চেক দ্বারা ত্রুটিগুলি উত্থাপিত হবে। এই টীকাটি এমন ঘোষণাগুলিকে চিহ্নিত করতে ব্যবহার করা যেতে পারে যা রাষ্ট্রীয়/পরিবর্তনযোগ্য বস্তুগুলিকে ফেরত দেয়, যে বস্তুগুলির পরিচয় কম্পোজিশন জুড়ে বজায় রাখার জন্য গুরুত্বপূর্ণ, বা বস্তুগুলি যেগুলিকে তাত্ক্ষণিক করা ব্যয়বহুল এবং কম্পোজিশন জুড়ে ক্যাশে করা উচিত৷ ( IE7db0 )
  • একটি নতুন rememberSaveable ওভারলোড যোগ করা হয়েছে যা KotlinX সিরিয়ালাইজেশন ব্যবহার করে টাইপ-সেফ স্টেট পারসিস্টেন্সের জন্য KSerializer সমর্থন করে। বিদ্যমান Saver -ভিত্তিক API সমর্থিত থাকে। ( Iea4ab , b/376028110 )

বাগ ফিক্স

  • একই প্রযোজ্য ( I570b2 , b/404645679 , b/407931790 ) প্রেরন এড়ানোর জন্য বিরতিযোগ্য কম্পোজিশনে মনে রাখা পর্যবেক্ষকদের পাঠানো ঠিক করুন।
  • এপিআই নির্দেশিকা মেলানোর জন্য onPreCreate এবং onDisposing onPreDispose SnapshotObserver পদ্ধতির নাম পরিবর্তন করা হয়েছে। পূর্ববর্তী পদ্ধতিগুলিকে অবমূল্যায়ন করা হয়েছে এবং নতুন পদ্ধতিগুলি পুরানোগুলিকে কল করার জন্য ডিফল্ট করা হয়েছে তাই এই ইন্টারফেসের বিদ্যমান বাস্তবায়নগুলি পদ্ধতিগুলি সরানো না হওয়া পর্যন্ত কাজ করতে থাকবে৷ এই পদ্ধতিগুলি 1.9.0 আলফাতে একটি ফলো-আপ CL-তে সরানো হবে যা শীঘ্রই এটি অনুসরণ করবে৷ এগুলি 1.8 স্থিতিশীল হওয়ার আগে 1.8 বিটা থেকে সরানো হবে। ( I6d753 )
  • একটি সমস্যা সমাধান করা হয়েছে যেখানে মনে রাখা মানগুলি ভুলভাবে ভুলে যেতে পারে এবং একটি অস্থাবর গোষ্ঠীর পরে উপস্থিত হওয়া একটি এলিডেড গ্রুপ পুনর্গঠন করার সময় পুনরায় গণনা করা যেতে পারে ( I62cab , b/383769314 )
  • LaunchedEffect এ কম্পোজ স্ট্যাক ট্রেসের জন্য সমর্থন যোগ করা হয়েছে এবং CoroutineScope ( I705c0 , b/354163858 ) rememberCoroutineScope
  • কম্পোজ লিন্ট চেকগুলির জন্য এখন কমান্ড লাইন থেকে ন্যূনতম 8.8.2 এর AGP সংস্করণ এবং IDE সমর্থনের জন্য কমপক্ষে Android Studio Ladybug প্রয়োজন৷ আপনি যদি AGP-এর পুরানো সংস্করণ ব্যবহার করেন, তাহলে আপনি AGP-কে প্রভাবিত না করে, Lint সংস্করণ আপগ্রেড করতে gradle.properties-এ android.experimental.lint.version=8.8.2 সেট করতে পারেন। ( I6f2a8 )

বাহ্যিক অবদান

  • FunctionKeyMeta টীকাটিতে AnnotationTarget.FUNCTION যোগ করা হয়েছে। ( I08021 )

সংস্করণ 1.8

সংস্করণ 1.8.3

18 জুন, 2025

androidx.compose.runtime:runtime-*:1.8.3 প্রকাশিত হয়েছে। সংস্করণ 1.8.3-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.8.2

20 মে, 2025

androidx.compose.runtime:runtime-*:1.8.2 প্রকাশিত হয়েছে। সংস্করণ 1.8.2-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.8.1

7 মে, 2025

androidx.compose.runtime:runtime-*:1.8.1 প্রকাশিত হয়েছে। সংস্করণ 1.8.1-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.8.0

23 এপ্রিল, 2025

androidx.compose.runtime:runtime-*:1.8.0 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-এ এই কমিট রয়েছে।

সংস্করণ 1.8.0-rc03

9 এপ্রিল, 2025

androidx.compose.runtime:runtime-*:1.8.0-rc03 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-rc03-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.8.0-rc02

26 মার্চ, 2025

androidx.compose.runtime:runtime-*:1.8.0-rc02 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-rc02-এ এই কমিট রয়েছে।

সংস্করণ 1.8.0-rc01

12 মার্চ, 2025

androidx.compose.runtime:runtime-*:1.8.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-rc01-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • এপিআই নির্দেশিকা মেলানোর জন্য onPreCreate এবং onDisposing onPreDispose SnapshotObserver পদ্ধতির নাম পরিবর্তন করা হয়েছে। পূর্ববর্তী পদ্ধতিগুলিকে অবমূল্যায়ন করা হয়েছে এবং নতুন পদ্ধতিগুলি পুরানোগুলিকে কল করার জন্য ডিফল্ট করা হয়েছে তাই এই ইন্টারফেসের বিদ্যমান বাস্তবায়নগুলি পদ্ধতিগুলি সরানো না হওয়া পর্যন্ত কাজ করতে থাকবে৷ এই পদ্ধতিগুলি 1.9.0 আলফাতে একটি ফলো-আপ CL-তে সরানো হবে যা শীঘ্রই এটি অনুসরণ করবে৷ এগুলি 1.8 স্থিতিশীল হওয়ার আগে 1.8 বিটা থেকে সরানো হবে। ( I6d753 )

সংস্করণ 1.8.0-beta03

ফেব্রুয়ারী 26, 2025

androidx.compose.runtime:runtime-*:1.8.0-beta03 প্রকাশিত হয়েছে। 1.8.0-beta03 সংস্করণে এই কমিটগুলি রয়েছে।

সংস্করণ 1.8.0-beta02

12 ফেব্রুয়ারি, 2025

androidx.compose.runtime:runtime-*:1.8.0-beta02 প্রকাশিত হয়েছে। 1.8.0-beta02 সংস্করণে এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • বিরতিযোগ্য রচনায় ধরা ব্যতিক্রম পুনরায় থ্রো করুন।( 384486d )

সংস্করণ 1.8.0-beta01

জানুয়ারী 29, 2025

androidx.compose.runtime:runtime-*:1.8.0-beta01 প্রকাশিত হয়েছে। 1.8.0-beta01 সংস্করণে এই কমিটগুলি রয়েছে।

এপিআই পরিবর্তন

  • একটি সমস্যা সমাধান করে যেখানে কম্পোজিশনের সময় একটি থ্রোয়েবল উত্থাপন করা হয় যা ব্যতিক্রম থেকে প্রসারিত হয় না একটি 'মুলতুবি কম্পোজিশন প্রয়োগ করা হয়নি' ত্রুটি হতে পারে। ( I356be , b/382094412 )

সংস্করণ 1.8.0-alpha08

15 জানুয়ারী, 2025

androidx.compose.runtime:runtime-*:1.8.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-alpha08-এ এই কমিট রয়েছে।

সংস্করণ 1.8.0-alpha07

11 ডিসেম্বর, 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-alpha07-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • যোগ করা টুলিং এপিআই যা লেআউট ইন্সপেক্টরকে প্যারেন্ট কম্পোজিশনের সাথে সাবকম্পোজিশনের সাথে সম্পর্কযুক্ত করতে সাহায্য করে যেখানে কম্পোজিশনগুলিকে একত্রিত করতে একটি নোড ব্যবহার করা হয় না। ( I4ce3d )
  • পাবলিকের পরিবর্তে অভ্যন্তরীণ SnapshotId জন্য পাটিগণিত এবং বিশেষ ধ্রুবক তৈরি করা হয়েছে। যথাক্রমে toInt() বা toLong() ব্যবহার করে একটি Int বা Long এ রূপান্তর করে, প্রয়োজনে SnasphotId এ পাটিগণিত করা যেতে পারে। ( IC3a57 )

বাহ্যিক অবদান

  • movableContentOf প্যারামিটারের জন্য স্টোরেজ অপ্টিমাইজ করুন। ( ed87177 )

সংস্করণ 1.8.0-alpha06

13 নভেম্বর, 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-alpha06-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • PausableComposition API-তে পরিবর্তন 1.8.0-আলফা (1.8.0-আলফা02 থেকে) এর পূর্ববর্তী রিলিজের ক্ষেত্রে এই ব্রেকিং পরিবর্তনগুলি কিন্তু, যেহেতু এগুলি 1.8.0-এ নতুন API, তাই APIগুলি এখনও আলফা-তে রয়েছে বলে পিছনের সামঞ্জস্য বজায় রাখা হয় না। ( I39819 )
  • একটি Recomposer ( Iaeb7e ) এর মধ্যে নতুন রচনার সৃষ্টি পর্যবেক্ষণ করতে টুলিং API যোগ করে
  • snapshotId যোগ করা হয়েছে, Long টাইপের, Snapshot এবং অবচয়িত id । একটি স্ন্যাপশটের আইডি একটি Int থেকে একটি Long এ পরিবর্তিত হয়েছে যাতে স্ন্যাপশট আইডি খুব বেশি ফ্রেম রেট এবং দীর্ঘ চলমান অ্যানিমেশন সহ সিস্টেমে উপচে পড়া এড়াতে পারে। যে প্ল্যাটফর্মে নেটিভ Long টাইপ নেই সেই প্ল্যাটফর্মে এই টাইপটিকে Int , বা অন্য টাইপ হতে দেওয়ার জন্য টাইপটিকে প্রত্যাশা/বাস্তব করা হয়েছিল৷ যে প্ল্যাটফর্মগুলিতে নেটিভ Long নেই, যেমন জাভাস্ক্রিপ্ট, তাদের উচ্চ ফ্রেম রেট (1000 FPS-এর বেশি) এড়ানো উচিত যা প্রতি 24 দিনে আনুমানিক Int এর জন্য ওভারফ্লো হতে পারে৷ ( I38ac3 , b/374821679 )

বাগ ফিক্স

  • একটি একক provides জন্য স্থির providesDefault । ( aosp/3318540 b/374263387 )
  • ChangeList অপ্টিমাইজ করুন। ( 3318538 )

সংস্করণ 1.8.0-alpha05

অক্টোবর 30, 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-alpha05-এ এই কমিট রয়েছে।

বাগ ফিক্স

  • SnapshotIdSetInt.MAX_VALUE যোগ করে স্ট্যাক ওভারফ্লো ঠিক করুন। ( b/370536104 , Ic4179f6 )
  • রানটাইম মাইক্রো-অপ্টিমাইজেশন ( I50c60 )
  • R8 কে ডিবাগিং রানটাইম চেক কলগুলি সরাতে অনুমতি দিন ( I8c44 )
  • পুনরাবৃত্তিমূলক ( I5817f ) এর পরিবর্তে compoundKeyOf পুনরাবৃত্তিমূলক করুন

বাহ্যিক অবদান

  • সংগ্রহের তালিকার সাথে স্ট্যাকগুলি প্রয়োগ করুন ( I7d47c )

সংস্করণ 1.8.0-alpha04

অক্টোবর 16, 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-alpha04-এ এই কমিট রয়েছে।

কর্মক্ষমতা উন্নতি

  • কনস্ট্রাক্টরে স্টেট রেকর্ডের জন্য স্ন্যাপশট আইডি প্রদান করুন ( 85c00f )
  • রিফ্যাক্টর SnapshotState*** ক্লাস যাচাইকরণ ত্রুটিগুলি এড়াতে ( 6ee4a6 )
  • থ্রো ইনলাইনিং প্রতিরোধ করতে R8 নিয়মগুলি ঠিক করুন ( 5beb92 )
  • মাইক্রো-অপ্টিমাইজ অপারেশন ( d73c5c )
  • JVM ( 2b043f ) এ SynchronizedObject বরাদ্দ অপ্টিমাইজ করুন

সংস্করণ 1.8.0-alpha03

2 অক্টোবর, 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-alpha03-এ এই কমিট রয়েছে।

কর্মক্ষমতা উন্নতি

  • rememberCoroutineScope জন্য অলসভাবে শিশু প্রসঙ্গ তৈরি করুনCoroutineScope ( f61464 )
    • কম্পোজিশনের পরে ঘটে যাওয়া ইভেন্টগুলির প্রতিক্রিয়া হিসাবে কোরোটিন চালু করতে সাধারণত rememberCoroutineScope ব্যবহার করা হয়। কিছু পরিস্থিতিতে এই ঘটনাগুলি কখনই ঘটতে পারে না, যার ফলে কোনও সুবিধা ছাড়াই চাকরি তৈরি এবং বাতিলের অতিরিক্ত খরচ হয়।
    • স্কোপটিকে rememberCoroutineScope করে ফেরত দিন coroutineContext

সংস্করণ 1.8.0-alpha02

সেপ্টেম্বর 18, 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-alpha02-এ এই কমিট রয়েছে।

নতুন বৈশিষ্ট্য

  • PausableComposition যোগ করা হয়েছে যা একটি সাবকম্পোজিশন তৈরি করতে দেয় যা কম্পোজিশনের সময় পজ করা যায় এবং কম্পোজিশনে অ্যাসিঙ্ক্রোনাসভাবে প্রয়োগ করা যায়। বিরাম দেওয়ার জন্য কম্পাইলার সমর্থন প্রয়োজন যা বর্তমানে বিকাশে রয়েছে। ( I3394b )

সংস্করণ 1.8.0-alpha01

4 সেপ্টেম্বর, 2024

androidx.compose.runtime:runtime-*:1.8.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.8.0-alpha01-এ এই কমিট রয়েছে।

সংস্করণ 1.7

সংস্করণ 1.7.8

12 ফেব্রুয়ারি, 2025

androidx.compose.runtime:runtime-*:1.7.8 প্রকাশিত হয়েছে। সংস্করণ 1.7.8-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.7.7

জানুয়ারী 29, 2025

androidx.compose.runtime:runtime-*:1.7.7 প্রকাশিত হয়েছে। 1.7.6 থেকে কোন পরিবর্তন নেই।

androidx.compose.runtime:runtime-*:1.7.6 প্রকাশিত হয়েছে। সংস্করণ 1.7.6-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.7.5

অক্টোবর 30, 2024

androidx.compose.runtime:runtime-*:1.7.5 প্রকাশিত হয়েছে। সংস্করণ 1.7.5-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.7.4

অক্টোবর 16, 2024

androidx.compose.runtime:runtime-*:1.7.4 প্রকাশিত হয়েছে। সংস্করণ 1.7.4-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.7.3

2 অক্টোবর, 2024

androidx.compose.runtime:runtime-*:1.7.3 প্রকাশিত হয়েছে। সংস্করণ 1.7.3-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.7.2

সেপ্টেম্বর 18, 2024

androidx.compose.runtime:runtime-*:1.7.2 প্রকাশিত হয়েছে। সংস্করণ 1.7.2-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.7.1

10 সেপ্টেম্বর, 2024

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

সংস্করণ 1.7.0

4 সেপ্টেম্বর, 2024

androidx.compose.runtime:runtime-*:1.7.0 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-এ এই কমিটগুলি রয়েছে।

1.6.0 থেকে গুরুত্বপূর্ণ পরিবর্তন

  • একটি কম্পোজিশন লোকাল প্রদান করার ক্ষমতা যোগ করা হয়েছে যা হয় ডিফল্টরূপে, compositionLocalWithComputedDefault() ব্যবহার করে অথবা provides পরিবর্তে providesComputed ব্যবহার করে মান গণনা করার জন্য ব্যবহার করার জন্য একটি ল্যাম্বডা সরবরাহ করে গণনা করা হয়।
  • একটি কম্পোজিশন লোকালের মান প্রাপ্ত করা যেতে পারে কম্পোজিশনের currentValue প্রোপার্টি ব্যবহার করে ল্যাম্বডা কম্পিউটিংয়ের মধ্যে থেকে অ্যাক্সেসযোগ্য। এটি current পরিবর্তে ব্যবহৃত হয় যা শুধুমাত্র @Composable ফাংশনে অ্যাক্সেসযোগ্য। ( Iadbc0 )
  • নতুন তৈরি স্টেট অবজেক্টগুলি তাদের প্রাথমিক অবস্থা সহ গ্লোবাল স্ন্যাপশট সহ অন্যান্য স্ন্যাপশট থেকে অবিলম্বে অ্যাক্সেসযোগ্য। বস্তুটি যে স্ন্যাপশটে তৈরি করা হয়েছিল তা প্রয়োগ না করা পর্যন্ত পরবর্তী কোনো পরিবর্তন দৃশ্যমান হয় না।
  • mutableStateOf() এর প্রারম্ভিক অবস্থা, সেইসাথে তাদের আদিম সংস্করণগুলি হল mutableStateOf() -এ প্যারামিটার হিসাবে পাস করা মান। mutableStateListOf() এবং mutableStateMapOf() এর প্রাথমিক অবস্থা খালি।
  • Snapshot.isInSnapshot এবং Snapshot.PreexistingSnapshotId যোগ করা হয়েছে যা একটি রাষ্ট্রীয় বস্তুকে তৈরি করার পর বিশ্বব্যাপী স্ন্যাপশট থেকে অবিলম্বে অ্যাক্সেসযোগ্য হতে সমর্থন করতে সক্ষম করতে ব্যবহৃত হয়।
  • কাস্টম স্টেট অবজেক্টগুলি অন্তর্নির্মিত স্ন্যাপশট অবজেক্টগুলিতে করা পরিবর্তনগুলির প্যাটার্ন অনুসরণ করে অবিলম্বে অ্যাক্সেসযোগ্য হওয়া সমর্থন করতে পারে। ( I84a17 )
  • লাইব্রেরি রচনার জন্য nonSkippingGroupOptimization সক্ষম করুন৷ এটি androidx-এ সমস্ত অ-পুনঃসূচনাযোগ্য কম্পোজেবল ফাংশনের জন্য জেনারেট করা কোডকে আরও দক্ষ করে তোলে। ভবিষ্যতে আমরা ডিফল্টরূপে এটি সক্ষম করার পরিকল্পনা করছি৷ আমি ( acbc08 )
  • একই ফ্রেমে সাবকম্পোজিশনে কম্পোজেবল ল্যাম্বডাসকে অবৈধ করুন। ( 98301c )
  • onForgotten মতো একই ক্রমে onRelease কলব্যাকে কল করুন। ( 2cd790 )
  • শক্তিশালী স্কিপিং মোড সক্ষম করুন ( ed1766 )
  • currentCompoundHashKey আরও ক্ষেত্রে অনন্য করুন ( d4a872 )

সংস্করণ 1.7.0-rc01

21 আগস্ট, 2024

androidx.compose.runtime:runtime-*:1.7.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-rc01-এ এই কমিট রয়েছে।

সংস্করণ 1.7.0-beta07

7 আগস্ট, 2024

androidx.compose.runtime:runtime-*:1.7.0-beta07 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-beta07-এ এই কমিট রয়েছে।

সংস্করণ 1.7.0-beta06

জুলাই 24, 2024

androidx.compose.runtime:runtime-*:1.7.0-beta06 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-beta06-এ এই কমিট রয়েছে।

সংস্করণ 1.7.0-beta05

10 জুলাই, 2024

androidx.compose.runtime:runtime-*:1.7.0-beta05 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-beta05-এ এই কমিট রয়েছে।

সংস্করণ 1.7.0-beta04

জুন 26, 2024

androidx.compose.runtime:runtime-*:1.7.0-beta04 প্রকাশিত হয়েছে। 1.7.0-beta04 সংস্করণে এই কমিটগুলি রয়েছে।

সংস্করণ 1.7.0-beta03

জুন 12, 2024

androidx.compose.runtime:runtime-*:1.7.0-beta03 প্রকাশিত হয়েছে। 1.7.0-beta03 সংস্করণে এই কমিটগুলি রয়েছে।

সংস্করণ 1.7.0-beta02

29 মে, 2024

androidx.compose.runtime:runtime-*:1.7.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-beta02-এ এই কমিট রয়েছে।

সংস্করণ 1.7.0-beta01

14 মে, 2024

androidx.compose.runtime:runtime-*:1.7.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-beta01-এ এই কমিট রয়েছে।

সংস্করণ 1.7.0-alpha08

1 মে, 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-alpha08-এ এই কমিট রয়েছে।

সংস্করণ 1.7.0-alpha07

এপ্রিল 17, 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-alpha07-এ এই কমিট রয়েছে।

নতুন বৈশিষ্ট্য

  • একটি কম্পোজিশন লোকাল প্রদান করার ক্ষমতা যোগ করা হয়েছে যা হয় ডিফল্টরূপে, compositionLocalWithComputedDefault() ব্যবহার করে অথবা provides পরিবর্তে providesComputed ব্যবহার করে মান গণনা করার জন্য ব্যবহার করার জন্য একটি ল্যাম্বডা সরবরাহ করে গণনা করা হয়।
  • একটি কম্পোজিশন লোকালের মান প্রাপ্ত করা যেতে পারে কম্পোজিশনের currentValue প্রোপার্টি ব্যবহার করে ল্যাম্বডা কম্পিউটিংয়ের মধ্যে থেকে অ্যাক্সেসযোগ্য। এটি current পরিবর্তে ব্যবহৃত হয় যা শুধুমাত্র @Composable ফাংশনে অ্যাক্সেসযোগ্য। ( Iadbc0 )

এপিআই পরিবর্তন

  • নতুন তৈরি স্টেট অবজেক্টগুলি তাদের প্রাথমিক অবস্থা সহ গ্লোবাল স্ন্যাপশট সহ অন্যান্য স্ন্যাপশট থেকে অবিলম্বে অ্যাক্সেসযোগ্য। বস্তুটি যে স্ন্যাপশটে তৈরি করা হয়েছিল তা প্রয়োগ না করা পর্যন্ত পরবর্তী কোনো পরিবর্তন দৃশ্যমান হয় না।
  • mutableStateOf() এর প্রারম্ভিক অবস্থা, সেইসাথে তাদের আদিম সংস্করণগুলি হল mutableStateOf() -এ প্যারামিটার হিসাবে পাস করা মান। mutableStateListOf() এবং mutableStateMapOf() এর প্রাথমিক অবস্থা খালি।
  • Snapshot.isInSnapshot এবং Snapshot.PreexistingSnapshotId যোগ করা হয়েছে যা একটি রাষ্ট্রীয় বস্তুকে তৈরি করার পর বিশ্বব্যাপী স্ন্যাপশট থেকে অবিলম্বে অ্যাক্সেসযোগ্য হতে সমর্থন করতে সক্ষম করতে ব্যবহৃত হয়।
  • কাস্টম স্টেট অবজেক্টগুলি অন্তর্নির্মিত স্ন্যাপশট অবজেক্টগুলিতে করা পরিবর্তনগুলির প্যাটার্ন অনুসরণ করে অবিলম্বে অ্যাক্সেসযোগ্য হওয়া সমর্থন করতে পারে। ( I84a17 )

বাগ ফিক্স

  • নেস্টেড স্ন্যাপশটে readObserver এর স্থির মার্জ। এটি একটি snapshotFlow ভিতরে ব্যবহার করার সময় নেস্টেড প্রাপ্ত রাজ্যগুলিকে অকার্যকর করে দেয়। ( আইডিএফ১৩৮ )

সংস্করণ 1.7.0-alpha06

3 এপ্রিল, 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-alpha06-এ এই কমিট রয়েছে।

বাগ ফিক্স

  • ফিক্স প্রদান একক মান হ্যান্ডলিং প্রদান providesDefault ( 538f45 )
  • ফ্রেম ঘড়ি ( 07e5c6 ) অ্যাক্সেস করার জন্য রিকম্পোজারে একটি অচলাবস্থা এড়িয়ে চলুন

সংস্করণ 1.7.0-alpha05

20 মার্চ, 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-alpha05-এ এই কমিট রয়েছে।

বাগ ফিক্স

  • নিষ্ক্রিয় কম্পোজিশনে দেরী পরিবর্তনগুলি পরিষ্কার করুন ( 5950bc )

সংস্করণ 1.7.0-alpha04

6 মার্চ, 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-alpha04-এ এই কমিট রয়েছে।

কর্মক্ষমতা উন্নতি

  • প্রাপ্ত রাষ্ট্র মূল্যায়ন প্রতি একবার Snapshot.current কল করুন ( ee7daf )
  • কম্পোজিশনের প্রতি পর্যবেক্ষণে একবার currentRecord পড়ুন ( b882b2 )
  • snapshotFlow ( 231e56 ) এ দুর্ঘটনাজনিত পুনরাবৃত্তিকারী বরাদ্দ সরান
  • লাইব্রেরি রচনার জন্য nonSkippingGroupOptimization সক্ষম করুন৷ এটি androidx-এ সমস্ত অ-পুনঃসূচনাযোগ্য কম্পোজেবল ফাংশনের জন্য জেনারেট করা কোডকে আরও দক্ষ করে তোলে। ভবিষ্যতে আমরা ডিফল্টরূপে এটি সক্ষম করার পরিকল্পনা করছি৷ আমি ( acbc08 )

সংস্করণ 1.7.0-alpha03

ফেব্রুয়ারি 21, 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-alpha03 এই কমিট ধারণ করে।

এপিআই পরিবর্তন

  • পরিবর্তন সনাক্তকরণ উন্নত করতে একটি প্রতিস্থাপন গোষ্ঠীর পরিচয় দিন ( 0941b5 )

কর্মক্ষমতা উন্নতি

  • পরিবর্তন সনাক্ত করার সময় মেমরি বরাদ্দ উন্নত করুন ( 53e7fd )
  • কম্পোজারে একটি মেমরি লিক ঠিক করুন ( 0e097d )
  • পুনরায় কম্পোজ করার সময় বাতিলকরণ পাস করতে ScopeMap ব্যবহার করুন ( e19a7e )
  • শুধুমাত্র প্রাপ্ত রাজ্যগুলি রাখতে অবৈধ মানচিত্র অপ্টিমাইজ করুন ( f11c44 )
  • ScatterSet ( db572e ) দিয়ে IdentityArraySet ব্যবহার প্রতিস্থাপন করুন
  • ScopeMap অপটিমাইজ removeScope ( bb0530 )

সংস্করণ 1.7.0-alpha02

7 ফেব্রুয়ারি, 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-alpha02 এই কমিট ধারণ করে।

বাগ ফিক্স

  • একই ফ্রেমে সাবকম্পোজিশনে কম্পোজেবল ল্যাম্বডাসকে অবৈধ করুন। ( 98301c )
  • onForgotten মতো একই ক্রমে onRelease কলব্যাকে কল করুন। ( 2cd790 )
  • পরিবর্তিত অবস্থাগুলি ফিল্টার করুন যেগুলি snapshotFlow পরিলক্ষিত হয় না। ( 796b80 )

কর্মক্ষমতা উন্নতি

  • স্ন্যাপশট পর্যবেক্ষক পরিবর্তন করুন যখন এটি ইতিমধ্যে স্বচ্ছ হয়। ( f60f30 )
  • SnapshotIdSet.lowest() অপ্টিমাইজ করুন। ( 7ae149 )
  • SnapshotIdSet এ একটি বরাদ্দ-মুক্ত fold() ব্যবহার করুন। ( 532b7d )
  • পুনরাবৃত্তিকারী বরাদ্দ সরান ( 83f96b )

সংস্করণ 1.7.0-alpha01

24 জানুয়ারী, 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.7.0-alpha01 এই কমিট ধারণ করে।

কর্মক্ষমতা অপ্টিমাইজেশান

  • একটি চাইল্ড গ্রুপ যোগ করার পরে স্লট তৈরি করার ক্ষমতা যোগ করুন ( b5960c )
  • স্ন্যাপশট স্টেটগুলির রেকর্ডিং পরিবর্তনগুলি অপ্টিমাইজ করুন ( 28c3fe )
  • শক্তিশালী স্কিপিং মোড সক্ষম করুন ( ed1766 )

বাগ ফিক্স

  • ইন্টারে ডিফল্ট প্যারামিটার মেটা জন্য অ্যাকাউন্ট মনে রাখবেন ( 096665 )
  • আরও ক্ষেত্রে currentCompoundHashKey অনন্য করুন ( D4A872 )
  • ইনলাইন ফাংশন কল ( 2a90fc ) প্রস্থান করার সময় গোষ্ঠীগুলি উপলব্ধি করুন

সংস্করণ 1.6

সংস্করণ 1.6.8

জুন 12, 2024

androidx.compose.runtime:runtime-*:1.6.8 প্রকাশিত হয়েছে। সংস্করণ 1.6.8-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.6.7

1 মে, 2024

androidx.compose.runtime:runtime-*:1.6.7 প্রকাশিত হয়েছে। সংস্করণ 1.6.7-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.6.6

এপ্রিল 17, 2024

androidx.compose.runtime:runtime-*:1.6.6 প্রকাশিত হয়েছে। শেষ প্রকাশের পর থেকে কোনও পরিবর্তন নেই।

সংস্করণ 1.6.5

3 এপ্রিল, 2024

androidx.compose.runtime:runtime-*:1.6.5 প্রকাশিত হয়েছে। সংস্করণ 1.6.5 এ এই কমিটস রয়েছে।

সংস্করণ 1.6.4

20 মার্চ, 2024

androidx.compose.runtime:runtime-*:1.6.4 প্রকাশিত হয়েছে। সংস্করণ 1.6.4 এ এই কমিটস রয়েছে।

সংস্করণ 1.6.3

6 মার্চ, 2024

androidx.compose.runtime:runtime-*:1.6.3 প্রকাশিত হয়েছে। সংস্করণ 1.6.3-এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.6.2

ফেব্রুয়ারি 21, 2024

androidx.compose.runtime:runtime-*:1.6.2 প্রকাশিত হয়েছে। সংস্করণ 1.6.2 এ এই কমিটস রয়েছে।

সংস্করণ 1.6.1

7 ফেব্রুয়ারি, 2024

androidx.compose.runtime:runtime-*:1.6.1 প্রকাশিত হয়েছে। সংস্করণ 1.6.1-এ এই কমিট রয়েছে।

বাগ ফিক্স

  • onForgotten হিসাবে একই ক্রমে onRelease কলব্যাককে কল করুন। ( 2 সিডি 790 )
  • ফিল্টার পরিবর্তিত রাষ্ট্রগুলি যা snapshotFlow পরিলক্ষিত হয় না। ( 796B80 )

সংস্করণ 1.6.0

24 জানুয়ারী, 2024

androidx.compose.runtime:runtime-*:1.6.0 প্রকাশিত হয়েছে। সংস্করণ 1.6.0 এ এই কমিটস রয়েছে।

1.5.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন

নতুন বৈশিষ্ট্য

  • পুনঃনির্মাণ লুপের সময় গ্রাস করা ব্যতিক্রমগুলি পুনরায় নিক্ষেপ করুন ( 4 ডিএফএফ 9 এ )

কর্মক্ষমতা অপ্টিমাইজেশান

  • স্ন্যাপশট রাজ্যের রেকর্ডিং পরিবর্তনগুলি অনুকূলিত করুন ( 28C3FE )
  • rememberSaveable ( F01D79 ) অপ্টিমাইজ করুন
  • পরিবর্তনগুলি রেকর্ড না হওয়া পর্যন্ত পুনরায় পাঠানো রাজ্যগুলি পুনরায় পাঠ করা ( F38099 )
  • স্থানীয় মানগুলি সরবরাহের উন্নতি করুন ( A337EA )

বাগ ফিক্স

  • স্লট টেবিল মেমরি ফাঁস ঠিক করুন ( 73fcfe )
  • অপসারণ করা হবে এমন সাবকোমপজিশনগুলির পুনরুদ্ধার এড়িয়ে যান। ( আইইইবি 99 , বি/254645321 )
  • যখন এটি স্মরণে গণনায় সংরক্ষণ করা হয় কেবল তখনই RememberObserver লাইফসাইকেলগুলি ট্রিগার করে। ( F6B4DC )
  • ল্যাম্বডাসে ইনলাইন করতে $dirty ক্যাপচার সীমাবদ্ধ করুন। ( ACFCA0 )
  • চলনযোগ্য সামগ্রীটি কখনও কখনও ভুল রচনা স্থানীয়দের গ্রহণ করে। ( 035CD6 )

সংস্করণ 1.6.0-আরসি 01

জানুয়ারী 10, 2024

androidx.compose.runtime:runtime-*:1.6.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.6.0-RC01 এর মধ্যে এই কমিট রয়েছে।

সংস্করণ 1.6.0-BETA03

13 ডিসেম্বর, 2023

androidx.compose.runtime:runtime-*:1.6.0-beta03 প্রকাশিত হয়েছে। 1.6.0-beta03 সংস্করণে এই কমিট রয়েছে।

সংস্করণ 1.6.0-beta02

নভেম্বর 29, 2023

androidx.compose.runtime:runtime-*:1.6.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 1.6.0-BETA02 এর মধ্যে এই কমিট রয়েছে।

সংস্করণ 1.6.0-BETA01

15 নভেম্বর, 2023

androidx.compose.runtime:runtime-*:1.6.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.6.0-BETA01 এর মধ্যে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • টীকাগুলিতে নির্দিষ্ট স্থায়িত্বের মানগুলি প্রচার করুন। (274A4C)

বাগ ফিক্স

  • প্রসঙ্গে রচনা স্থানীয় স্কোপ স্টেটের জন্য রেফারেন্সিয়াল নীতি ব্যবহার করুন। (83361 সি)
  • ল্যাম্বডাসে ইনলাইন করতে $ নোংরা ক্যাপচার সীমাবদ্ধ করুন। (ACFCA0)
  • চলনযোগ্য সামগ্রীটি কখনও কখনও ভুল রচনা স্থানীয়দের গ্রহণ করে। (035CD6)
  • RecomposeScopeImpl এ দ্রুত অ-বরাদ্দ হ্যাশম্যাপগুলি ব্যবহার করুন। (d79494)
  • DerivedState ObjectIntMap ব্যবহার করুন। (21862e)
  • DerivedState আইএনটি SnapshotThreadLocal জন্য IntRef ব্যবহার করুন। (04 ইএফ 4)

সংস্করণ 1.6.0-alpha08

18 অক্টোবর, 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.6.0-alpha08 এই কমিট ধারণ করে।

বাগ ফিক্স

  • যখন এটি স্মরণে গণনায় সংরক্ষণ করা হয় কেবল তখনই RememberObserver লাইফসাইকেলগুলি ট্রিগার করে। ( F6B4DC )
  • অবৈধকরণ তালিকা বাছাইয়ে বরাদ্দ উন্নত করুন। ( 954D63 )
  • SnapshotStateObserver নতুন অ-বরাদ্দের মানচিত্র ব্যবহার করুন। ( 4303ce )
  • রচনাটি নিষ্ক্রিয় করা হলে অবৈধতাগুলি পরিষ্কার করুন। ( E001BE )

সংস্করণ 1.6.0-Alpha07

4 অক্টোবর, 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha07 প্রকাশিত হয়েছে। 1.6.0-alpha07 সংস্করণে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • SnapshotStateList এখন তালিকা সহায়কগুলির সরাসরি সূচক সংস্করণ ব্যবহার করতে সক্ষম করার জন্য RandomAccess হিসাবে চিহ্নিত করা হয়েছে। ( আই 5210 সি , বি/219554654 )

সংস্করণ 1.6.0-Alpha06

20 সেপ্টেম্বর, 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.6.0-alpha06 এই কমিট ধারণ করে।

সংস্করণ 1.6.0-alpha05

6 সেপ্টেম্বর, 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.6.0-ALPHA05 এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.6.0-Alpha04

23 আগস্ট, 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha04 প্রকাশিত হয়েছে। 1.6.0-alpha04 সংস্করণে এই কমিট রয়েছে।

নতুন বৈশিষ্ট্য

  • পুনঃনির্মাণ লুপের সময় গ্রাস করা ব্যতিক্রমগুলি পুনরায় নিক্ষেপ করুন ( 4 ডিএফএফ 9 এ )

এপিআই পরিবর্তন

  • ReusableComposition নিষ্ক্রিয় করার জন্য একটি পদ্ধতি যুক্ত করা হয়েছে, পর্যবেক্ষণগুলি সরিয়ে নোডগুলি রাখার জন্য। নিষ্ক্রিয় রচনাটি setContent কল করে আবার সক্রিয় করা যেতে পারে। ( আইবি 7 এফ 31 )
  • লাইফসাইকেল পরিচালনা এবং সাবকোপজিশনগুলির পুনরায় ব্যবহারের জন্য ReusableComposition ইন্টারফেস যুক্ত করুন। ( I812d1 , b/252846775 )

সংস্করণ 1.6.0-alpha03

9 আগস্ট, 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.6.0-ALPHA03 এ এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • নতুন CompositionLocalProvider অপ্টিমাইজেশন ( 3118E88 ) ঠিক করুন
  • কীভাবে অস্থাবর সামগ্রী নোডগুলি বিচ্ছিন্ন করা হয় তা সংশোধন করুন। ( 5E3D59B )

সংস্করণ 1.6.0-Alpha02

জুলাই 26, 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.6.0-alpha02 এই কমিট ধারণ করে।

নতুন বৈশিষ্ট্য এবং কর্মক্ষমতা বর্ধন

  • rememberSaveable ( F01D79 ) অপ্টিমাইজ করুন
  • পরিবর্তনগুলি রেকর্ড না হওয়া পর্যন্ত পুনরায় পাঠানো রাজ্যগুলি পুনরায় পাঠ করা ( F38099 )
  • স্থানীয় মানগুলি সরবরাহের উন্নতি করুন ( A337EA )
  • SideEffect একটি গোষ্ঠী তৈরি এড়াতে @ExplicitGroupsComposable কমপোজেবল হিসাবে চিহ্নিত করা হয়েছে। ( I74815 )
  • পুনঃব্যবহারে ( 782071 ) রচনা স্থানীয় মানচিত্রের তুলনা করা এড়িয়ে চলুন

এপিআই পরিবর্তন

  • CompositionLocalProviders জন্য একটি বিশেষ কেস ওভারলোড যুক্ত করা হয়েছে যা ওভারহেড এড়ায় একাধিক মান সরবরাহ করতে ব্যবহৃত হত তবে একক মান সরবরাহ করার সময় ওভারহেড হয়। ( I6d640 , খ/288169379 )

বাগ ফিক্স

  • স্লট টেবিল মেমরি ফাঁস ঠিক করুন ( 73fcfe )
  • stateSaver নাল ( 90748 সি ) ফিরে এলে আমরা কীভাবে rememberSaveable করি তা ঠিক করি তা ঠিক করুন

সংস্করণ 1.6.0-Alpha01

জুন 21, 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.6.0-ALPHA01 এর মধ্যে এই কমিটগুলি রয়েছে।

বাগ ফিক্স

  • অপসারণ করা হবে এমন সাবকোমপজিশনগুলির পুনরুদ্ধার এড়িয়ে যান। ( আইইইবি 99 , বি/254645321 )
  • স্ন্যাপশট প্রয়োগ করার সময় বরাদ্দ হ্রাস। ( I65c09 )
  • যদি DerivedState readableHash না করা হয় ( 68C565 )

সংস্করণ 1.5

সংস্করণ 1.5.4

18 অক্টোবর, 2023

androidx.compose.runtime:runtime-*:1.5.4 প্রকাশিত হয়েছে। সংস্করণ 1.5.4 এ এই কমিটস রয়েছে।

সংস্করণ 1.5.3

4 অক্টোবর, 2023

androidx.compose.runtime:runtime-*:1.5.3 প্রকাশিত হয়েছে। সংস্করণ 1.5.3 এ এই কমিটস রয়েছে।

সংস্করণ 1.5.2

27 সেপ্টেম্বর, 2023

androidx.compose.runtime:runtime-*:1.5.2 প্রকাশিত হয়েছে। সংস্করণ 1.5.2 এ এই কমিটস রয়েছে।

সংস্করণ 1.5.1

6 সেপ্টেম্বর, 2023

androidx.compose.runtime:runtime-*:1.5.1 প্রকাশিত হয়েছে। সংস্করণ 1.5.1 এই কমিট ধারণ করে.

সংস্করণ 1.5.0

9 আগস্ট, 2023

androidx.compose.runtime:runtime-*:1.5.0 প্রকাশিত হয়েছে। সংস্করণ 1.5.0 এ এই কমিটস রয়েছে।

এপিআই পরিবর্তন

  • পুনরুদ্ধার, রঙ অ্যানিমেশন এবং AndroidComposeView বরাদ্দ সরানো হয়েছে। ( আইবি 2 বিএফএ )
  • রাজ্যগুলি তৈরি করে এমন ফাংশনগুলি চিহ্নিত করতে একটি @StateFactoryMarker টীকা যুক্ত করা হয়েছে এবং অবশ্যই একটি remember কলটিতে আবৃত করতে হবে। ( I64550 )
  • রাষ্ট্র এবং MutableState আদিম সংস্করণগুলি যুক্ত করুন ( এফবি 3 ডি 89 )
  • Snapshot.isApplyObserverNotificationPending যুক্ত করা হয়েছে.আইসাপ্লাইওবসারভারনোটিফিকেশনপেন্ডিং ( আই 672 এ 5 )
  • State এপিআইয়ের আদিম সংস্করণগুলি যুক্ত করা হয়েছে, অটোবক্সিংয়ের জন্য জরিমানা ছাড়াই আইএনটি, দীর্ঘ, ভাসমান এবং ডাবল মানগুলি State বস্তুগুলিতে ট্র্যাক করার অনুমতি দেয়। এগুলি ব্যবহার করার জন্য নতুন কারখানার পদ্ধতিগুলি mutableIntState(Int) , mutableFloatStateOf(Float) ইত্যাদি ব্যবহার করুন। ( I48e43 )

বাগ ফিক্স

  • অপসারণ করা হবে এমন সাবকোমপজিশনগুলির পুনরুদ্ধার এড়িয়ে যান। ( আইইইবি 99 , বি/254645321 )
  • ComposerImpl ( 0206F7 ) এ স্ন্যাপশট রেফারেন্স ধরে রাখবেন না
  • দু'বার রচনা প্রয়োগ করবেন না ( F5791 বি )
  • অ-পরিচালিত উত্পন্ন রাষ্ট্রীয় মানগুলির জন্য অবৈধতা নিশ্চিত করুন ( এএ 2 এ 92 )
  • রচনা নিষ্পত্তি করার সময় onEndChanges কল করুন। ( 62 সিসি 8 সি )
  • চলমান সামগ্রীকে একটি উপ-সংমিশ্রণে ( 4BEB41 ) ঠিক করুন
  • সম্ভাব্য অচলাবস্থাগুলি ঠিক করুন ( C1A425 এবং 8EDCE0 )
  • অ্যান্ড্রয়েড উইন্ডোটির জন্য তৈরি হওয়া রিকম্পোজারটি এখন কেবলমাত্র একটি on_stop বিজ্ঞপ্তি গ্রহণ করার সময় সমস্ত রচনার পরিবর্তে কেবল কল withFrameNanos ব্লক করবে। এর অর্থ স্টপড অ্যাক্টিভাইটগুলির সাথে সম্পর্কিত উইন্ডোজগুলি ডেটা পরিবর্তনের জন্য পুনরায় সংযুক্ত করতে থাকবে তবে অ্যানিমেশনগুলি, বা withFrameNanos অন্য কোনও কলার ব্লক করবে। ( ID9E7F , খ/240975572 )
  • প্রভাবগুলি নিষ্পত্তি করার আগে LayoutNode জন্য নিষ্ক্রিয় কলব্যাকগুলি কার্যকর করুন 3784073
  • পুনঃসূচনা ল্যাম্বডাস EA81DF9 এর জন্য পরিবর্তিত পতাকাগুলি ঠিক করুন
  • নোড 73FD4D8 এর সাথে কমপোজেবলের জন্য লাইভ সম্পাদনা রিগ্রেশন ঠিক করুন
  • On_stop এ 276F1 রচনাটির পরিবর্তে ফ্রেম ক্লক সম্প্রচারগুলি বিরতি দেওয়া উচিত
  • অপরিবর্তিত উত্পন্ন রাজ্যের জন্য 84D9B1C এর জন্য SnapshotStateObserver স্কোপগুলি অবৈধ করুন
  • রচনাগুলি নিষ্পত্তি করার সময় সম্ভাব্য ডেড-লকটি ঠিক করুন 28761fc
  • চলমান সামগ্রীকে একটি সাব-সংমিশ্রণে 92D4156 এ ঠিক করুন
  • পুনঃসূচনা ল্যাম্বডাস ( 8A03E9 ) এর জন্য পরিবর্তিত পতাকাগুলি ঠিক করুন
  • প্রভাবগুলি নিষ্পত্তি করার আগে LayoutNode জন্য নিষ্ক্রিয় কলব্যাকগুলি কার্যকর করুন ( 8B0FA4 )
  • নোড গ্রুপগুলি শেষ করার সময় endToMarker() ঠিক করুন। ( D71D980 )
  • নিষ্ক্রিয়করণ ( A0B518B ) চেক করার জন্য বর্তমান SlotWriter গ্রুপ ব্যবহার করুন
  • SlotTable.moveSlotGapTo()fill করুন এবং এটিকে বন্ধ করতে সরান ( 81F9935 )
  • অস্থাবর সামগ্রী চলমান থাকাকালীন অনুপস্থিতি অবৈধকরণগুলি ঠিক করুন ( 1D7C024 )
  • সরানো চলমান সামগ্রীর জন্য তাত্ক্ষণিক অবৈধকরণগুলি ঠিক করুন ( 8676618 )

কর্মক্ষমতা উন্নতি

  • যদি স্ন্যাপশটটি সংশোধন না করা হয় তবে DerivedState readableHash গণনা করা এড়িয়ে চলুন। ( 307102 )
  • হ্রাস বরাদ্দ ( i65C09 , D7EA77 , 727974 , এবং 445808 )
  • কমপোজ CoroutineScopes ( A55362 এবং BD382F ) এর দ্রুত বাতিলকরণ
  • অ্যাক্সেসযোগ্য রাষ্ট্রীয় রেকর্ডগুলির সাথে রাষ্ট্রীয় অবজেক্টগুলির ওভাররাইট রেকর্ডস ( C986960 )
  • গ্রুপগুলি উপলব্ধি করার সময় সঠিক সুযোগের সুরকার ব্যবহার করুন ( 9A5E5B6 )
  • স্ন্যাপশট অবৈধকরণ ( 7F60CCA ) সঞ্চয় করতে IdentityArraySet ব্যবহার করুন
  • স্ন্যাপশট পর্যবেক্ষণের জন্য বরাদ্দ হ্রাস করুন ( 5bc535f )

সংস্করণ 1.5.0-আরসি 01

জুলাই 26, 2023

androidx.compose.runtime:runtime-*:1.5.0-rc01 প্রকাশিত হয়েছে। 1.5.0-rc01 সংস্করণে এই কমিট রয়েছে।

বাগ ফিক্স

  • পরিবর্তনগুলি রেকর্ড না হওয়া পর্যন্ত পুনরায় পাঠানো রাজ্যগুলি পুনরায় পাঠ করা ( F38099 )

  • mutableStateOf() কলগুলিকে আদিমদের জন্য তাদের সংশ্লিষ্ট বিশেষ ধরনের কলগুলি স্থানান্তরের সুপারিশ করার জন্য একটি ঐচ্ছিক পরিদর্শন উপলব্ধ। এর লিন্ট আইডি হ'ল AutoboxingStateCreation । পূর্বে, এই পরিদর্শনটি সমস্ত প্রকল্পের জন্য ডিফল্টরূপে সক্রিয় ছিল। warning "AutoboxingStateCreation" স্টুডিওর এডিটর এবং আপনার প্রোজেক্টের লিন্ট আউটপুটগুলিতে এই সতর্কতাটি দেখতে, আপনার মডিউলের build.gradle বা build.gradle.kts কনফিগারেশনের মধ্যে দেখানো ( I34f7e ):

        android {
            lint {
                warning "AutoboxingStateCreation"
            }
            ...
        }
    

সংস্করণ 1.5.0-beta03

জুন 28, 2023

androidx.compose.runtime:runtime-*:1.5.0-beta03 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-beta03 এই কমিট ধারণ করে।

বাগ ফিক্স

  • অপসারণ করা হবে এমন সাবকোমপজিশনগুলির পুনরুদ্ধার এড়িয়ে যান। ( আইইইবি 99 , বি/254645321 )

সংস্করণ 1.5.0-BETA02

7 জুন, 2023

androidx.compose.runtime:runtime-*:1.5.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-beta02 এই কমিট ধারণ করে।

কর্মক্ষমতা উন্নতি

  • যদি স্ন্যাপশটটি সংশোধন না করা হয় তবে DerivedState readableHash গণনা করা এড়িয়ে চলুন। ( 307102 )

সংস্করণ 1.5.0-BETA01

24 মে, 2023

androidx.compose.runtime:runtime-*:1.5.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-beta01-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • পুনরুদ্ধার, রঙ অ্যানিমেশন এবং AndroidComposeView ( আইবি 2 বিএফএ ) এ বরাদ্দ সরানো হয়েছে
  • রাজ্যগুলি তৈরি করে এমন ফাংশনগুলি চিহ্নিত করতে একটি @StateFactoryMarker টীকা যুক্ত করা হয়েছে এবং অবশ্যই একটি remember কলটিতে আবৃত করতে হবে। ( I64550 )
  • রাষ্ট্র এবং MutableState আদিম সংস্করণগুলি যুক্ত করুন ( এফবি 3 ডি 89 )
  • Snapshot.isApplyObserverNotificationPending যুক্ত করা হয়েছে.আইসাপ্লাইওবসারভারনোটিফিকেশনপেন্ডিং ( আই 672 এ 5 )

বাগ ফিক্স

  • হ্রাস বরাদ্দ ( i65C09 , D7EA77 , 727974 , এবং 445808 )
  • ComposerImpl ( 0206F7 ) এ স্ন্যাপশট রেফারেন্স ধরে রাখবেন না
  • কমপোজ CoroutineScopes ( A55362 এবং BD382F ) এর দ্রুত বাতিলকরণ
  • দু'বার রচনা প্রয়োগ করবেন না ( F5791 বি )
  • অ-পরিচালিত উত্পন্ন রাষ্ট্রীয় মানগুলির জন্য অবৈধতা নিশ্চিত করুন ( এএ 2 এ 92 )
  • রচনা নিষ্পত্তি করার সময় onEndChanges কল করুন। ( 62 সিসি 8 সি )
  • চলমান সামগ্রীকে একটি উপ-সংমিশ্রণে ( 4BEB41 ) ঠিক করুন
  • সম্ভাব্য অচলাবস্থা ঠিক করুন ( C1A425
  • অন_স্টপটি রচনাটির পরিবর্তে ফ্রেম ক্লক সম্প্রচারগুলি বিরতি দেওয়া উচিত ( F4A2D1 )
  • পুনঃসূচনা ল্যাম্বডাস ( 8A03E9 ) এর জন্য পরিবর্তিত পতাকাগুলি ঠিক করুন
  • প্রভাবগুলি নিষ্পত্তি করার আগে LayoutNode জন্য নিষ্ক্রিয় কলব্যাকগুলি কার্যকর করুন ( 8B0FA4 )

বাহ্যিক অবদান

  • Snapshot.isApplyObserverNotificationPending যুক্ত করা হয়েছে.আইসাপ্লাইওবসারভারনোটিফিকেশনপেন্ডিং ( আই 672 এ 5 )

সংস্করণ 1.5.0-আলফা 04

10 মে, 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-ALPHA04 এর মধ্যে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • State এপিআইয়ের আদিম সংস্করণগুলি যুক্ত করা হয়েছে, অটোবক্সিংয়ের জন্য জরিমানা ছাড়াই আইএনটি, দীর্ঘ, ভাসমান এবং ডাবল মানগুলি State বস্তুগুলিতে ট্র্যাক করার অনুমতি দেয়। এগুলি ব্যবহার করার জন্য নতুন কারখানার পদ্ধতিগুলি mutableIntState(Int) , mutableFloatStateOf(Float) ইত্যাদি ব্যবহার করুন। ( I48e43 )

বাগ ফিক্স

  • রচনা নিষ্পত্তি করার সময় onEndChanges কল করুন। Composition.dispose চলাকালীন ফোকাস নোডগুলি সরানো হয়েছে D ডিপোজ ফোকাস পুনরায় সেট করতে onEndChanges সাবস্ক্রাইব করছে (( 03D4A47 )

  • অ-পরিচালিত উত্পন্ন রাষ্ট্রীয় মানগুলির জন্য অবৈধতা নিশ্চিত করুন। প্রতিটি উত্পন্ন রাষ্ট্র SnapshotStateObserver তার নির্ভরতার একটি তালিকার সাথে সম্পর্কিত, যখনই নির্ভরতা পরিবর্তিত হয় তখন উত্পন্ন রাষ্ট্রের সাথে সম্পর্কিত স্কোপগুলি অকার্যকর করতে ব্যবহৃত হয়। নির্ভরতা পরিবর্তনটি স্ন্যাপশট অ্যাডভান্সে নিবন্ধিত হয়, যা উত্পন্ন রাষ্ট্রের পড়ার পরে ঘটতে পারে ( Snapshot.notifyObjectsInitialized() ) এর কলের কারণে)।

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

    এই পরিবর্তনটি পুনর্নির্মাণগুলি রাষ্ট্রের পঠন এবং নির্ভরতা ক্লিনআপ থেকে প্রাপ্ত, এটি নিশ্চিত করে যে অবৈধতা সর্বদা বৈধ অবস্থায় ঘটে। ( C472BE6 )

সংস্করণ 1.5.0-আলফা 03

এপ্রিল 19, 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-alpha03 এই কমিট ধারণ করে।

এপিআই পরিবর্তন

  • অ্যান্ড্রয়েড উইন্ডোটির জন্য তৈরি হওয়া রিকম্পোজারটি এখন কেবলমাত্র একটি on_stop বিজ্ঞপ্তি গ্রহণ করার সময় সমস্ত রচনার পরিবর্তে কেবল কল withFrameNanos ব্লক করবে। এর অর্থ স্টপড অ্যাক্টিভাইটগুলির সাথে সম্পর্কিত উইন্ডোজগুলি ডেটা পরিবর্তনের জন্য পুনরায় সংযুক্ত করতে থাকবে তবে অ্যানিমেশনগুলি, বা withFrameNanos অন্য কোনও কলার ব্লক করবে। ( ID9E7F , খ/240975572 )

বাগ ফিক্স

  • স্ন্যাপশট তালিকায় সম্ভাব্য অচলাবস্থা ঠিক করুন এবং মানচিত্র 5C1A425
  • প্রভাবগুলি নিষ্পত্তি করার আগে LayoutNode জন্য নিষ্ক্রিয় কলব্যাকগুলি কার্যকর করুন 3784073
  • পুনঃসূচনা ল্যাম্বডাস EA81DF9 এর জন্য পরিবর্তিত পতাকাগুলি ঠিক করুন
  • নোড 73FD4D8 এর সাথে কমপোজেবলের জন্য লাইভ সম্পাদনা রিগ্রেশন ঠিক করুন
  • On_stop এ 276F1 রচনাটির পরিবর্তে ফ্রেম ক্লক সম্প্রচারগুলি বিরতি দেওয়া উচিত
  • অপরিবর্তিত উত্পন্ন রাজ্যের জন্য 84D9B1C এর জন্য SnapshotStateObserver স্কোপগুলি অবৈধ করুন
  • রচনাগুলি নিষ্পত্তি করার সময় সম্ভাব্য ডেড-লকটি ঠিক করুন 28761fc
  • চলমান সামগ্রীকে একটি সাব-সংমিশ্রণে 92D4156 এ ঠিক করুন

সংস্করণ 1.5.0-আলফা 02

5 এপ্রিল, 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-alpha02 এই কমিট ধারণ করে।

নতুন বৈশিষ্ট্য

  • কোটলিনের getValue অপারেটর এখন কমপোজেবল হতে পারে ( F174F6E )

বাগ ফিক্স, পারফরম্যান্স উন্নতি

  • অ্যাক্সেসযোগ্য রাষ্ট্রীয় রেকর্ডগুলির সাথে রাষ্ট্রীয় অবজেক্টগুলির ওভাররাইট রেকর্ডস ( C986960 )
  • গ্রুপগুলি উপলব্ধি করার সময় সঠিক সুযোগের সুরকার ব্যবহার করুন ( 9A5E5B6 )
  • নোড গ্রুপগুলি শেষ করার সময় endToMarker() ঠিক করুন। ( D71D980 )
  • নিষ্ক্রিয়করণ ( A0B518B ) চেক করার জন্য বর্তমান SlotWriter গ্রুপ ব্যবহার করুন
  • স্ন্যাপশট অবৈধকরণ ( 7F60CCA ) সঞ্চয় করতে IdentityArraySet ব্যবহার করুন
  • SlotTable.moveSlotGapTo()fill করুন এবং এটিকে বন্ধ করতে সরান ( 81F9935 )
  • অস্থাবর সামগ্রী চলমান থাকাকালীন অনুপস্থিতি অবৈধকরণগুলি ঠিক করুন ( 1D7C024 )
  • সরানো চলমান সামগ্রীর জন্য তাত্ক্ষণিক অবৈধকরণগুলি ঠিক করুন ( 8676618 )
  • স্ন্যাপশট পর্যবেক্ষণের জন্য বরাদ্দ হ্রাস করুন ( 5bc535f )

সংস্করণ 1.5.0-আলফা 01

22 মার্চ, 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.5.0-alpha01 এই কমিট ধারণ করে।

নতুন বৈশিষ্ট্য

  • Modifier.Node#coroutineScope যুক্ত করে Modifier.Nodes করুটাইনগুলি চালু করার অনুমতি দেয় ( i76ef9 )
  • CompositionLocalConsumerModifierNode ইন্টারফেসটি প্রয়োগ করে Modifier.Nodes CompositionLocals পড়ার অনুমতি দিন। ( আইবি 44 ডিএফ )

সংস্করণ 1.4

সংস্করণ 1.4.3

3 মে, 2023

androidx.compose.runtime:runtime-*:1.4.3 কোনও পরিবর্তন ছাড়াই প্রকাশিত হয়।

সংস্করণ 1.4.2

এপ্রিল 19, 2023

androidx.compose.runtime:runtime-*:1.4.2 প্রকাশিত হয়েছে। সংস্করণ 1.4.2 এই কমিট ধারণ করে.

বাগ ফিক্স

  • স্ন্যাপশট তালিকায় সম্ভাব্য অচলাবস্থা ঠিক করুন এবং মানচিত্র 2EB6570

  • একটি SnapshotStateList বা SnapshotStateMap সামগ্রী যুক্ত করা যদি রাষ্ট্রীয় রেকর্ডে সরাসরি লেখার সাথে পরিবর্তনটি একযোগে থাকে তবে একটি অচলাবস্থার মুখোমুখি হতে পারে। এটি 93FCAE828B দ্বারা প্রবর্তিত পরিবর্তনের সাথে উল্লেখযোগ্যভাবে আরও বেশি সম্ভাবনা তৈরি করা হয়েছিল যা অব্যবহৃত রেকর্ড প্রকাশের জন্য সরাসরি লেখার ব্যবহার করে।

  • লকগুলি এখন অর্ডার করা হয়েছে যে কোনও মানচিত্র বা তালিকার লক অনুষ্ঠিত হলে একটি স্ন্যাপশট লক কখনই নেওয়ার চেষ্টা করা হয় না।

সংস্করণ 1.4.1

5 এপ্রিল, 2023

androidx.compose.runtime:runtime-*:1.4.1 প্রকাশিত হয়েছে। সংস্করণ 1.4.1 এ এই কমিটস রয়েছে।

বাগ ফিক্স

  • নোড গ্রুপগুলি শেষ করার সময় endToMarker() ঠিক করুন। D71D980

সংস্করণ 1.4.0

22 মার্চ, 2023

androidx.compose.runtime:runtime-*:1.4.0 প্রকাশিত হয়েছে। সংস্করণ 1.4.0 এই কমিট ধারণ করে.

1.3.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন

  • প্রথম রচনা 3680e25 এর জন্য LiveData থেকে প্রাথমিক মানটি ব্যবহার করুন
  • কমপোজ নোডগুলির লাইফসাইকেল পর্যবেক্ষণ করতে ComposeNodeLifecycleCallback যুক্ত করুন। 8B6A258
  • ComposableMethod 7B6C7ADparameterTypes সম্পত্তি যুক্ত করুন

বাগ ফিক্স এবং পারফরম্যান্স উন্নতি

  • SnapshotStateObserver 29F4A3E এ উভয় স্কোপ সূচক সাফ করুন
  • আনক্কিপেবল ল্যাম্বডাস 7D06752 এর দেহে প্রয়োজনীয় গোষ্ঠীগুলি যুক্ত করুন
  • স্ন্যাপশট রাজ্যের 93fcae8 এর মেমরি রেফারেন্স বৈশিষ্ট্যগুলি উন্নত করুন
  • কম্পোজিশন স্থানীয় লুকআপস 0875717 এ বক্সিং সরান
  • অ-পুনরায় ব্যবহারযোগ্য নোড গ্রুপগুলির জন্য সঠিক কী ব্যবহার করুন 6388D8D
  • পুনরাবৃত্ত এবং সমবর্তী থেকে SnapshotStateObserver রক্ষা করুন 98 সিবি 6 বিএ প্রযোজ্য
  • একটি চেক-ইনডেক্স-বাউন্ডস IdentityArraySet চেক যুক্ত করেছে "জিইটি" পদ্ধতি 35A77D3
  • ViewTreeLifecycleOwner এক্সটেনশনগুলি 21C2122 ব্যবহার করতে কমপোজ মডিউল আপডেট করুন
  • Recomposer সমাপ্তি ফ্রেমের পরে বিজ্ঞপ্তি প্রয়োগ করুন। 98F2641
  • Recomposer 8f8656f বাতিল করার সময় সীমানা ক্র্যাশের বাইরে সূচকটি ঠিক করুন
  • সংশ্লেষের পিতামাতার সরবরাহকারীরা 9526FCC পরিবর্তিত হলে সর্বদা পুনরায় বাধ্যতামূলকভাবে বাধ্য করুন
  • বাতিল করা কাজের জন্য recomposer সহনশীলতা A55F7ed
  • বিপুল সংখ্যক সুরকার 9B7ED67 এর জন্য হ্যান্ডলিং অবৈধতা উন্নত করুন
  • অ-স্থানীয় রিটার্ন বি 6 এফ 590 সি এর জন্য উত্পন্ন ক্লোজিং গ্রুপগুলি ঠিক করুন

সংস্করণ 1.4.0-rc01

8 মার্চ, 2023

androidx.compose.runtime:runtime-*:1.4.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-rc01-এ এই কমিট রয়েছে।

বাগ ফিক্স

সংস্করণ 1.4.0-BETA02

22 ফেব্রুয়ারি, 2023

androidx.compose.runtime:runtime:1.4.0-beta02 এবং androidx.compose.runtime:runtime-saveable:1.4.0-beta02 প্রকাশিত হয়েছে। 1.4.0-beta02 সংস্করণে এই কমিট রয়েছে।

সংস্করণ 1.4.0-beta01

ফেব্রুয়ারী 8, 2023

androidx.compose.runtime:runtime-*:1.4.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-beta01-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • ComposeNodeLifecycleCallback যুক্ত করা হয়েছিল যা কমপোজ নোডগুলির লাইফসাইকেল ( i3731 বি ) পর্যবেক্ষণ করতে দেয়
  • সুরকারকে @TestOnly যুক্ত করা হয়েছে Composer.disableSourceInformation() ( I896c8 )

বাগ ফিক্স

  • রচনা স্থানীয় লুকআপগুলিতে বক্সিং সরান ( 62F66A )
  • স্ন্যাপশট স্টেটের মেমরি রেফারেন্স বৈশিষ্ট্যগুলি উন্নত করুন ( ডিএফবি 451 )

সংস্করণ 1.4.0-আলফা 05

25 জানুয়ারী, 2023

androidx.compose.runtime:runtime:1.4.0-alpha05 এবং androidx.compose.runtime:runtime-saveable:1.4.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-alpha05 এই কমিট ধারণ করে।

এপিআই পরিবর্তন

  • ইনলাইন/অপ্রচলিত-লুকানো ফাংশনগুলির আরও প্রকার/ বাতিলযোগ্যতা ( I24f91 )

সংস্করণ 1.4.0-আলফা 04

11 জানুয়ারী, 2023

androidx.compose.runtime:runtime-*:1.4.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-ALPHA04 এ এই কমিটগুলি রয়েছে।

এপিআই পরিবর্তন

  • TestMonotonicFrameClock এখন সঠিক পরীক্ষামূলক টীকা ব্যবহার করে। ( I95c9e )

বাগ ফিক্স

  • SnapshotStateObserver পুনরাবৃত্তি এবং সমবর্তী প্রয়োগ থেকে রক্ষা করুন ( D902FB )

সংস্করণ 1.4.0-আলফা 03

ডিসেম্বর 7, 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha03 প্রকাশিত হয়েছে। 1.4.0-alpha03 সংস্করণে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • java.lang.reflect.Method#getParameterTypes() ( IAB0C3 ComposableMethod

বাগ ফিক্স

  • স্ন্যাপশট প্রয়োগের বিজ্ঞপ্তিগুলি এখন পরিবর্তনগুলি প্রয়োগের Recomposer পরে প্রেরণ করা হয়। ( আইএডি 6 সি 0 , বি/222093277 )

সংস্করণ 1.4.0-alpha02

9 নভেম্বর, 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.4.0-ALPHA02 এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.4.0-আলফা 01

24 অক্টোবর, 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha01 প্রকাশিত হয়েছে। 1.4.0-alpha01 সংস্করণে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • SnapshotStateList এবং SnapshotStateMap এখন শ্রদ্ধার সাথে toList() এবং toMap() এর সুস্পষ্ট বাস্তবায়ন রয়েছে। এই পদ্ধতিগুলি তাদের সামগ্রী সংরক্ষণের জন্য ব্যবহৃত অভ্যন্তরীণ অপরিবর্তনীয় ডেটা ফেরত দেওয়ার সাথে সাথে একটি অনুলিপি ছাড়াই তাদের বর্তমান সামগ্রীটি ফেরত দেয়। এই মানটি ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, ডেটা অনুলিপি না করে snapshotFlow ব্যবহার করে মানগুলির প্রবাহ উত্পাদন করতে। ( আইসিএ 2 বিডি )

সংস্করণ 1.3

সংস্করণ 1.3.3

11 জানুয়ারী, 2023

androidx.compose.runtime:runtime-*:1.3.3 প্রকাশিত হয়েছে। সংস্করণ 1.3.3 এ এই কমিটস রয়েছে।

  • 1.3.2 থেকে কোনও পরিবর্তন নেই

সংস্করণ 1.3.2

ডিসেম্বর 7, 2022

androidx.compose.runtime:runtime-*:1.3.2 প্রকাশিত হয়েছে। সংস্করণ 1.3.2 এ এই কমিটস রয়েছে।

বাগ ফিক্স

  • অ্যান্ড্রয়েডএক্স.কম.পোস.ইউআই সমর্থন করার জন্য আপডেট হয়েছে 1.3.2

সংস্করণ 1.3.1

9 নভেম্বর, 2022

androidx.compose.runtime:runtime-*:1.3.1 প্রকাশিত হয়েছে। সংস্করণ 1.3.1 এ এই কমিটস রয়েছে।

সংস্করণ 1.3.0

24 অক্টোবর, 2022

androidx.compose.runtime:runtime-*:1.3.0 প্রকাশিত হয়েছে। সংস্করণ 1.3.0 এ এই কমিটস রয়েছে।

1.2.0 থেকে গুরুত্বপূর্ণ পরিবর্তন

ব্যতিক্রম হ্যান্ডলিং / লাইভ সম্পাদনা সমর্থন

রচনা ট্রেসিং

কমপোজেবল রিফ্লেকশন এপিআই

রানটাইম ফিক্স

স্ন্যাপশট সিস্টেম

সংস্করণ 1.3.0-আরসি 01

5 অক্টোবর, 2022

androidx.compose.runtime:runtime-*:1.3.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-rc01-এ এই কমিট রয়েছে।

বাগ ফিক্স

  • স্লট টেবিল থেকে আসছে ফিক্সড ArrayIndexOutOfBoundsException ( বি/249076084 )

সংস্করণ 1.3.0-BETA03

21 সেপ্টেম্বর, 2022

androidx.compose.runtime:runtime-*:1.3.0-beta03 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-BETA03 এ এই কমিটগুলি রয়েছে।

আচরণ ব্রেকিং পরিবর্তন

  • remember এবং rememberCoroutineScope জন্য প্যারামিটারটি যেখানে crossinline হিসাবে পরিবর্তিত হয়েছিল। এটি প্রাথমিক রিটার্নের পরিবর্তে প্রাথমিক রিটার্নের জন্য একটি ত্রুটির প্রতিবেদন করবে যা পরবর্তী অভ্যন্তরীণ ত্রুটিটি রিপোর্ট করা হবে।
  • এই পরিবর্তনটি সম্ভাব্যভাবে নতুন সংকলক ত্রুটিগুলি এই ফাংশনগুলিতে পাস করা ল্যাম্বডাস থেকে অপসারণের প্রয়োজন হিসাবে রিপোর্ট করতে পারে। ( আইবিএ 62 )

সংস্করণ 1.3.0-beta02

7 সেপ্টেম্বর, 2022

androidx.compose.runtime:runtime-*:1.3.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-beta02-এ এই কমিট রয়েছে।

বাগ ফিক্স

  • আপডেট এপিআই ( i64ca0 )

সংস্করণ 1.3.0-BETA01

24 আগস্ট, 2022

androidx.compose.runtime:runtime-*:1.3.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-beta01-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • এই এপিআই ব্যবহার করে বিকাশকারী সরঞ্জামগুলি তার পরিচয় ব্যবহার করে দ্রুত একটি উপ-গোষ্ঠীটি দ্রুত খুঁজে পাওয়ার জন্য CompositionData মঞ্জুরি দেওয়ার জন্য একটি find পদ্ধতি যুক্ত করা হয়েছিল। ( I5794f )

সংস্করণ 1.3.0-alpha03

আগস্ট 10, 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha03 এই কমিট ধারণ করে।

সংস্করণ 1.3.0-alpha02

জুলাই 27, 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha02 এই কমিট ধারণ করে।

এপিআই পরিবর্তন

  • পিছনের সামঞ্জস্যের জন্য পুনরায় যুক্ত হওয়া ComposerKt.traceEventStart(Int, String) ( i6e6de )

সংস্করণ 1.3.0-আলফা 01

জুন 29, 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha01-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • রানটাইমে ইউটিলিটি কার্যকারিতা সরানো ( i4f729 )

সংস্করণ 1.2

সংস্করণ 1.2.1

আগস্ট 10, 2022

androidx.compose.runtime:runtime-*:1.2.1 প্রকাশিত হয়েছে। সংস্করণ 1.2.1 এই কমিট ধারণ করে.

বাগ ফিক্স

  • স্থির মেমরি ফাঁস: স্বচ্ছ স্ন্যাপশট বি/239603305 থেকে তৈরি নেস্টেড স্ন্যাপশটগুলি নিষ্পত্তি করুন

সংস্করণ 1.2.0

জুলাই 27, 2022

androidx.compose.runtime:runtime-*:1.2.0 প্রকাশিত হয়েছে। সংস্করণ 1.2.0 এই কমিট ধারণ করে.

1.1.0 থেকে গুরুত্বপূর্ণ পরিবর্তন

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

  • যদি কোনও movableContentOf ল্যাম্বডাকে একই রচনাটিতে একাধিকবার বলা হয়, প্রতিটি কলের জন্য নতুন রাষ্ট্র এবং নোড তৈরি করা হয় এবং কলগুলি যেমন রচনাটি ছেড়ে দেয় এবং নতুন কলগুলি প্রবেশ করে, রাজ্যটি প্রথম ছেড়ে দেওয়া কলগুলি থেকে তাদের কল করা ক্রমের প্রবেশ করানো কলগুলিতে সরানো হয়। নতুন কল দ্বারা দাবি করা সমস্ত রাষ্ট্র স্থায়ীভাবে সরানো হয়েছে।

  • এটি এবং আরও কয়েকটি নতুন বৈশিষ্ট্য ছাড়াও, রানটাইম এবং স্ন্যাপশট স্টেট সিস্টেমকে স্থিতিশীল করতে অনেক সময় ব্যয় করা হয়েছিল। বিভিন্ন মেমরি ফাঁস সরানো হয়েছিল এবং কোড পাথগুলি অনুকূলিত করা হয়েছিল।

  • পরিবর্তনের সংক্ষিপ্ত তালিকা নীচে পাওয়া যাবে:

1.2 এ নতুন বৈশিষ্ট্য

1.2 এ পারফরম্যান্স

1.2 এ বাগ ফিক্স

সংস্করণ 1.2.0-আরসি 03

জুন 29, 2022

androidx.compose.runtime:runtime-*:1.2.0-rc03 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-rc03 এই কমিট ধারণ করে।

বাগ ফিক্স

  • উত্পন্ন রাষ্ট্রীয় পর্যবেক্ষণগুলি পূর্বে নিঃশর্ত সুযোগ এবং সংমিশ্রণ থেকে নিঃশর্তভাবে অপসারণ করা হয়েছিল, যা অন্যান্য স্কোপগুলি ভেঙে দিয়েছে যা এখনও উদ্ভূত রাষ্ট্র পর্যবেক্ষণ করতে পারে। এই পরিবর্তনটি কেবলমাত্র উত্পন্ন রাষ্ট্রীয় দৃষ্টান্তগুলি সরিয়ে দেয় যদি এটি অন্য স্কোপগুলি দ্বারা আর পর্যবেক্ষণ না করা হয়। ( খ/236618362 )

সংস্করণ 1.2.0-আরসি 02

22 জুন, 2022

androidx.compose.runtime:runtime-*:1.2.0-rc02 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-আরসি 02 এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.2.0-rc01

15 জুন, 2022

androidx.compose.runtime:runtime-*:1.2.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-rc01-এ এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • কম্পোজ লাইব্রেরির ইন্টারফেসগুলি এখন jdk8 ডিফল্ট ইন্টারফেস পদ্ধতি ব্যবহার করে তৈরি করা হয়েছে ( I5bcf1 )

সংস্করণ 1.2.0-beta03

জুন 1, 2022

androidx.compose.runtime:runtime-*:1.2.0-beta03 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-BETA03 এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.2.0-BETA02

18 মে, 2022

androidx.compose.runtime:runtime-*:1.2.0-beta02 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-BETA02 এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.2.0-BETA01

11 মে, 2022

androidx.compose.runtime:runtime-*:1.2.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-BETA01 এর মধ্যে এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • এটি 1.2 এর প্রথম বিটা রিলিজ!

এপিআই পরিবর্তন

  • পরীক্ষামূলক Snapshot.unsafeEnter/unsafeLeave যুক্ত করা হয়েছে u
  • যুক্ত পরীক্ষামূলক Snapshot.asContextElement() এপিআই ( আইএফএফ 072 )
  • @ComposableTarget টীকা এবং টীকাগুলি @ComposableTargetMarker দ্বারা চিহ্নিত টীকাগুলি এখন @file উপসর্গ ব্যবহার করে ফাইল স্কোপে ব্যবহার করা যেতে পারে। ফাইল স্কোপে একটি লক্ষ্য টীকা ব্যবহার করে সংকলকটি ফাইলের সমস্ত কমপোজেবল ফাংশনগুলি ধরে নিতে পারে যা সম্পর্কিত অ্যাপলিয়ারকে লক্ষ্য করার উদ্দেশ্যে। উদাহরণস্বরূপ, @file:UiComposable ঘোষণা করে যে সমস্ত @Composable ফাংশনগুলি রচনা ইউআই অ্যাপলিয়ারকে লক্ষ্য করে। এমন একটি ফাংশন যা অন্য অ্যাপ্লিকেশনটিকে টার্গেট করতে হবে তা অবশ্যই কাঙ্ক্ষিত অ্যাপলারের জন্য লক্ষ্য চিহ্নিতকারী টীকা সরবরাহ করতে হবে। ( I40804 )

সংস্করণ 1.2.0-alpha08

20 এপ্রিল, 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA08 এ এই কমিটগুলি রয়েছে।

এপিআই পরিবর্তন

  • CompositionTracer ইন্টারফেসে TracingInProgress যুক্ত করা হয়েছে। ( আইসি 6 এফ 12 )
  • সুরকারকে recomposeScopeIdentity যুক্ত করুন ( i0c873 )
  • সীমাবদ্ধ ট্রেসিং এপিআই (সুরকার.সেটট্রেসার) OptIn(InternalComposeTracingApi) । ( I9187f )
  • যুক্ত হওয়া ResuableContentHost যা পুনরায় ব্যবহারযোগ্য সামগ্রীর জন্য তৈরি রাজ্যের আজীবন আরও ভাল নিয়ন্ত্রণের অনুমতি দেয়। উদাহরণস্বরূপ, যদি কোনও উপ-সংমিশ্রণটি অস্থায়ীভাবে ব্যবহার না করা হয় তবে সামগ্রীটি নিষ্ক্রিয় করা যেতে পারে যার ফলে রচনাতে সমস্ত স্মরণ করা রাষ্ট্রকে ভুলে যাওয়া ট্রিগার করা যায়, উদাহরণস্বরূপ, সমস্ত নিষ্পত্তিযোগ্য প্রভাব। ( আই 2 সি 0 এফ 2 , বি/220322704 )

সংস্করণ 1.2.0-alpha07

6 এপ্রিল, 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha07 এই কমিট ধারণ করে।

এপিআই পরিবর্তন

  • নতুন ফাংশন Snapshot.withoutReadObservation { ... } এটি ব্যবহারকারীদের এই ব্লকের সময় পড়া রাষ্ট্রীয় মানগুলির পরিবর্তনের সাবস্ক্রাইব না করে পাস করা ল্যাম্বডা চালানোর অনুমতি দেয়। আপনি যখন স্ন্যাপশট ভিত্তিক থ্রেড সেফ রাইটিং/রিডগুলি থেকে উপকৃত হতে চান তখন আপনি ব্যবহারের ক্ষেত্রে এটি দরকারী বলে মনে করতে পারেন, তবে অপ্রয়োজনীয় পুনরুদ্ধার বা স্মরণ না করে মানটি পড়তে সক্ষম হতে চান। ( I9f365 , খ/214054486 )

সংস্করণ 1.2.0-alpha06

23 মার্চ, 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA06 এর মধ্যে এই কমিট রয়েছে।

সংস্করণ 1.2.0-alpha05

মার্চ 9, 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA05 এর মধ্যে এই কমিট রয়েছে।

বাহ্যিক অবদান

  • কোটলিনেক্স করুটাইনস 1.6.0 ( আই 3366 ডি ) ব্যবহার করতে আপডেট হয়েছে

সংস্করণ 1.2.0-alpha04

23 ফেব্রুয়ারি, 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA04 এর মধ্যে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • ComposableTarget , ComposableTargetMarker এবং ComposableOpenTarget যোগ করা হয়েছে যা কম্পাইল টাইম রিপোর্টিংয়ের অনুমতি দেয় যখন একটি কম্পোজেবল ফাংশনকে টার্গেটিং বলা হয় একটি অ্যাপ্লায়ারের ব্যবহার করার জন্য ডিজাইন করা হয়নি।

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

    কাস্টম অ্যাপলারের জন্য কমপোজেবল ফাংশনগুলি যা ComposeNode বা ReusableComposeNode কল করে ফাংশন এবং কোনও কমপোজেবল ল্যাম্বডা প্যারামিটার প্রকারের জন্য একটি CompoableTarget টীকা যুক্ত করতে হবে। যাইহোক, ComposableTargetMarker দিয়ে টীকাযুক্ত একটি টীকা তৈরি করার পরামর্শ দেওয়া হয় এবং তারপরে চিহ্নিত টীকাটি সরাসরি ComposableTarget এর পরিবর্তে ব্যবহার করা হয়। ComposableTargetMarker দিয়ে চিহ্নিত একটি কম্পোজযোগ্য টীকা একটি ComposbleTarget এর সমতুল্য যার অ্যাট্রিবিউট ক্লাসের সম্পূর্ণ যোগ্য নাম প্রয়োগকারী প্যারামিটার হিসেবে। ComposableTargetMarker ব্যবহারের উদাহরণের জন্য anroidx.compose.ui.UiComposable দেখুন। ( I38f11 )

সংস্করণ 1.2.0-Alpha03

ফেব্রুয়ারী 9, 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha03 এই কমিট ধারণ করে।

এপিআই পরিবর্তন

  • যোগ করা movableContentOf যা একটি কমপোজেবল ল্যাম্বডাকে একটি ল্যাম্বডায় রূপান্তর করে যা এটিকে রাষ্ট্রকে সরিয়ে দেয় এবং সংশ্লিষ্ট নোডগুলিকে যে কোনও নতুন স্থানে বলা হয়। যখন পূর্ববর্তী কলটি রচনাটি ছেড়ে যায় তখন রাষ্ট্রটি অস্থায়ীভাবে সংরক্ষণ করা হয় এবং যদি ল্যাম্বডায় একটি নতুন কল রচনাটিতে প্রবেশ করে তবে রাজ্য এবং সম্পর্কিত নোডগুলি নতুন কলটির স্থানে স্থানান্তরিত হয়। যদি কোনও নতুন কল যুক্ত না করা হয় তবে রাজ্য স্থায়ীভাবে সরানো হয় এবং মনে রাখবেন পর্যবেক্ষকদের অবহিত করা হয়েছে।

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

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

    রিলিজ বিল্ড থেকে এই কলগুলি এবং সম্পর্কিত উত্সের তথ্যগুলি অপসারণ করতে, নিম্নলিখিত প্রোগুয়ার্ড বিধি যুক্ত করুন:

      -assumenosideeffects public class androidx.compose.runtime.ComposerKt {
          boolean isTraceInProgress();
          void traceEventStart(int,java.lang.String);
          void traceEventEnd();
      }
    
  • InternalComposeScope যুক্ত করুন যা সরঞ্জামগুলি পুনরুদ্ধারগুলির সময় একটি কমপোজেবল সনাক্ত করার ক্ষমতা দেয়। ( I07a3f )

সংস্করণ 1.2.0-alpha02

জানুয়ারী 26, 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha02 এই কমিট ধারণ করে।

সংস্করণ 1.2.0-alpha01

জানুয়ারী 12, 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-ALPHA01 এর মধ্যে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • লেআউট ইন্সপেক্টরটিতে আক্রমণকারী আইডি তৈরির জন্য CompositionData identity ক্ষেত্র যুক্ত করা হয়েছে। ( আইসি 116 ই )

নির্ভরতা আপডেট

  • এখন কোটলিন 1.6.10 এর উপর নির্ভর করে।

সংস্করণ 1.1

সংস্করণ 1.1.1

23 ফেব্রুয়ারি, 2022

androidx.compose.runtime:runtime-*:1.1.1 প্রকাশিত হয়েছে। সংস্করণ 1.1.1 এই কমিট ধারণ করে.

বাগ ফিক্স

  • androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList NullPointerException
  • অ্যান্ড্রয়েডে ক্লিপবোর্ড থেকে পড়ার সময় ক্লিপবোর্ড সামগ্রীর কারণে সৃষ্ট ক্র্যাশের সমাধান করুন। ( I06020 , b/197769306 )
  • LazyVerticalGrid স্থির আরটিএল ( এওএসপি/1931080 , বি/207510535 )

সংস্করণ 1.1.0

ফেব্রুয়ারী 9, 2022

androidx.compose.runtime:runtime-*:1.1.0 প্রকাশিত হয়েছে। সংস্করণ 1.1.0 এ এই কমিটস রয়েছে।

1.0.0 সাল থেকে গুরুত্বপূর্ণ পরিবর্তন

  • অ্যান্ড্রয়েড 12 ওভারক্রোল প্রভাবের জন্য স্থিতিশীল সমর্থন
  • টার্গেট সাইজিং স্পর্শ করার উন্নতি
  • দ্রষ্টব্য যে, রচনা 1.0 এর ক্ষেত্রে, উপাদান উপাদানগুলি স্পর্শ লক্ষ্য আকারের জন্য উপাদান অ্যাক্সেসিবিলিটি নির্দেশিকাগুলি পূরণ করতে তাদের লেআউট স্থান প্রসারিত করবে৷ উদাহরণস্বরূপ, বোতামের টাচ লক্ষ্যটি ন্যূনতম আকারে 48x48dp এ প্রসারিত হবে, এমনকি যদি আপনি বোতামটির আকারটি আরও ছোট করতে সেট করেন। এটি কম্পোজ ম্যাটেরিয়ালকে ম্যাটেরিয়াল ডিজাইন কম্পোনেন্টের একই আচরণের সাথে সারিবদ্ধ করে, যদি আপনি ভিউ এবং কম্পোজ মিশ্রিত করেন তাহলে সামঞ্জস্যপূর্ণ আচরণ প্রদান করে। এই পরিবর্তনটি নিশ্চিত করে যে আপনি যখন রচনা উপাদান উপাদান ব্যবহার করে আপনার UI তৈরি করবেন, তখন স্পর্শ লক্ষ্য অ্যাক্সেসযোগ্যতার জন্য ন্যূনতম প্রয়োজনীয়তা পূরণ করা হবে।
  • নেভিগেশন রেলের জন্য স্থিতিশীল সমর্থন
  • পূর্ববর্তী পরীক্ষামূলক API-কে স্থিতিশীল করার জন্য স্নাতক করে
  • কোটলিনের নতুন সংস্করণের জন্য সমর্থন

সংস্করণ 1.1.0-আরসি 03

জানুয়ারী 26, 2022

androidx.compose.runtime:runtime-*:1.1.0-rc03 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-rc03 এই কমিট ধারণ করে।

বাগ ফিক্স

  • কম্পোজ ম্যাটেরিয়াল 1.1.0-rc03 সমর্থন করার জন্য আপডেট করা হয়েছে

সংস্করণ 1.1.0-rc01

15 ডিসেম্বর, 2021

androidx.compose.runtime:runtime-*:1.1.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-আরসি 01 এ এই কমিটগুলি রয়েছে।

সংস্করণ 1.1.0-beta04

ডিসেম্বর 1, 2021

androidx.compose.runtime:runtime-*:1.1.0-beta04 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-BETA04 এর মধ্যে এই কমিট রয়েছে।

নতুন বৈশিষ্ট্য

  • কোটলিনের সাথে সামঞ্জস্যপূর্ণ হতে আপডেট হয়েছে 1.6.0

সংস্করণ 1.1.0-beta03

17 নভেম্বর, 2021

androidx.compose.runtime:runtime-*:1.1.0-beta03 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-beta03-এ এই কমিট রয়েছে।

সংস্করণ 1.1.0-BETA02

নভেম্বর 3, 2021

androidx.compose.runtime:runtime-*:1.1.0-beta02 প্রকাশিত হয়েছে। 1.1.0-beta02 সংস্করণে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • স্ন্যাপশট কোডটি একাধিক ফাইলে বিভক্ত ছিল, তবে সমস্ত এখনও একই জেভিএম ক্লাসে বাস করে। ( আইসি 6 সি 98 )

সংস্করণ 1.1.0-beta01

27 অক্টোবর, 2021

androidx.compose.runtime:runtime-*:1.1.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-BETA01 এর মধ্যে এই কমিট রয়েছে।

সংস্করণ 1.1.0-Alpha06

13 অক্টোবর, 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-ALPHA06 এর মধ্যে এই কমিট রয়েছে।

এপিআই পরিবর্তন

  • সুরকার পদ্ধতিগুলি থেকে InternalCompilerApi সরানো হয়েছে যা ক্রস-মডিউল ( আই 1 এএ 0 বি ) বলা প্রয়োজন
  • Recomposer.state অবমূল্যায়ন করা হয়েছে এবং Recomposer.currentState দ্বারা প্রতিস্থাপন করা হয়েছে এর ধরণটি একটি রাষ্ট্রীয় প্রবাহে পরিবর্তন করতে ( আইসি 2 এবি 3 , বি/197773820 )

সংস্করণ 1.1.0-Alpha05

29 সেপ্টেম্বর, 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-ALPHA05 এর মধ্যে এই কমিট রয়েছে।

সংস্করণ 1.1.0-alpha04

15 সেপ্টেম্বর, 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-ALPHA04 এর মধ্যে এই কমিট রয়েছে।

সংস্করণ 1.1.0-alpha03

1 সেপ্টেম্বর, 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-ALPHA03 এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • কমপোজ সংকলক এখন কমপোজ রানটাইম (1.0) এর পুরানো সংস্করণগুলিকে সমর্থন করে। Prior to this change, the Compose Compiler was only compatible with the Compose Runtime of the same version or later. After this change, the Compose Compiler is compatible with an older version of the Compose Runtime (1.0). ( aosp/1796968 )
  • Kotlin 1.5.30 এর উপর নির্ভর করতে কম্পোজ 1.1.0-alpha03 আপডেট করা হয়েছে। ( I74545 )

সংস্করণ 1.1.0-alpha02

18 আগস্ট, 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha02 is released. সংস্করণ 1.1.0-alpha02 এই কমিট ধারণ করে।

Version 1.1.0-alpha01

4 আগস্ট, 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha01 is released. Version 1.1.0-alpha01 contains these commits.

সংস্করণ 1.0

সংস্করণ 1.0.5

November 3, 2021

androidx.compose.runtime:runtime-*:1.0.5 is released. Version 1.0.5 contains these commits.

বাগ ফিক্স

  • Fixed a crash tracking derivedStateOf instances. ( aosp/1792247 )

সংস্করণ 1.0.4

13 অক্টোবর, 2021

androidx.compose.runtime:runtime-*:1.0.4 is released. সংস্করণ 1.0.4 এই কমিট ধারণ করে.

নির্ভরতা আপডেট

  • Kotlin 1.5.31 এর উপর নির্ভর করার জন্য আপডেট করা হয়েছে

Version 1.0.3

29 সেপ্টেম্বর, 2021

androidx.compose.runtime:runtime-*:1.0.3 is released. সংস্করণ 1.0.3 এই কমিট ধারণ করে.

নির্ভরতা আপডেট

  • Updated to depend on Kotlin 1.5.30

সংস্করণ 1.0.2

1 সেপ্টেম্বর, 2021

androidx.compose.runtime:runtime-*:1.0.2 is released. সংস্করণ 1.0.2 এই কমিট ধারণ করে.

Updated to support the Compose 1.0.2 release. কম্পোজ 1.0.2 এখনও Kotlin 1.5.21 এর সাথে সামঞ্জস্যপূর্ণ।

সংস্করণ 1.0.1

4 আগস্ট, 2021

androidx.compose.runtime:runtime-*:1.0.1 is released. সংস্করণ 1.0.1 এই কমিট ধারণ করে.

নির্ভরতা আপডেট

  • Kotlin 1.5.21 এর উপর নির্ভর করার জন্য আপডেট করা হয়েছে।

সংস্করণ 1.0.0

28 জুলাই, 2021

androidx.compose.runtime:runtime-*:1.0.0 is released. Version 1.0.0 contains these commits.

1.0.0 এর প্রধান বৈশিষ্ট্য

এটি রচনার প্রথম স্থিতিশীল প্রকাশ। Please see the official Compose Release blog for more details!

পরিচিত সমস্যা

  • If you are using Android Studio Bumblebee Canary 4 or AGP 7.1.0-alpha04 / 7.1.0-alpha05 , you may hit the following crash:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    ঠিক করতে, আপনার build.gradle ফাইলে সাময়িকভাবে আপনার minSdkVersion 24+ এ বাড়িয়ে দিন। অ্যান্ড্রয়েড স্টুডিও বাম্বলবি এবং এজিপি 7.1 এর পরবর্তী সংস্করণে এই সমস্যাটি ঠিক করা হবে। ( b/194289155 )

Version 1.0.0-rc02

14 জুলাই, 2021

androidx.compose.runtime:runtime-*:1.0.0-rc02 is released. Version 1.0.0-rc02 contains these commits.

  • Fixed race conditions in SnapshotStateObserver causing spurratic NullPointerExceptions. ( aosp/1763445 , aosp/1758105 , b/192677711 )
  • Fixed issues with runtime snapshots causing java.lang.IllegalStateException: Reading a state that was created after the snapshot was taken or in a snapshot that has not yet been applied crashes. ( b/193006595 , b/192570897 )

সংস্করণ 1.0.0-rc01

জুলাই 1, 2021

androidx.compose.runtime:runtime-*:1.0.0-rc01 is released. সংস্করণ 1.0.0-rc01 এই কমিট ধারণ করে।

Version 1.0.0-beta09

16 জুন, 2021

androidx.compose.runtime:runtime-*:1.0.0-beta09 is released. সংস্করণ 1.0.0-beta09-এ এই কমিট রয়েছে।

Added Profile Rules

This release adds profile rules to the following compose modules ( I14ed6 ):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-লেআউট
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

প্রোফাইল নিয়ম কি?

  • Profile rules for a library are specified in a text file baseline-prof.txt located in the src/main or equivalent directory. ফাইলটি প্রতি লাইনে একটি নিয়ম নির্দিষ্ট করে, যেখানে এই ক্ষেত্রে একটি নিয়ম হল লাইব্রেরির মেথড বা ক্লাসের সাথে মেলানোর জন্য একটি প্যাটার্ন। এই নিয়মগুলির জন্য সিনট্যাক্স হল মানব-পঠনযোগ্য ART প্রোফাইল বিন্যাসের একটি সুপারসেট যা adb shell profman --dump-classes-and-methods ... ব্যবহার করার সময় ব্যবহৃত হয়। এই নিয়মগুলি পদ্ধতি বা ক্লাসকে লক্ষ্য করার জন্য দুটি ফর্মের একটি গ্রহণ করে।

  • A method rule will have the following pattern:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • এবং একটি শ্রেণীর নিয়মে নিম্নলিখিত প্যাটার্ন থাকবে:

    <CLASS_DESCRIPTOR>
    
  • এই পদ্ধতিটিকে "হট", "স্টার্টআপ" বা "পোস্ট স্টার্টআপ" হিসাবে পতাকাঙ্কিত করা উচিত কিনা তা নির্দেশ করতে এখানে <FLAGS> হল এক বা একাধিক অক্ষর H , S , এবং P

  • <CLASS_DESCRIPTOR> হল সেই ক্লাসের বর্ণনাকারী যেটা লক্ষ্য করা পদ্ধতির অন্তর্গত। For example, the class androidx.compose.runtime.SlotTable would have a descriptor of Landroidx/compose/runtime/SlotTable; .

  • The <METHOD_SIGNATURE> is the signature of the method, and includes the name, parameter types, and return types of the method. For example, the method fun isPlaced(): Boolean on LayoutNode has the signature isPlaced()Z .

  • এই প্যাটার্নগুলিতে ওয়াইল্ডকার্ড ( ** , * , এবং ? ) থাকতে পারে যাতে একটি একক নিয়ম একাধিক পদ্ধতি বা শ্রেণীকে অন্তর্ভুক্ত করে।

নিয়ম কি করে?

  • A method that has the flag H indicates that this method is a "hot" method, and should be compiled ahead of time.

  • A method that has the flag S indicates that it is a method which is called at startup, and should be compiled ahead of time to avoid the cost of compilation and interpreting the method at startup time.

  • A method that has the flag P indicates that it is a method which is called after startup.

  • এই ফাইলে উপস্থিত একটি ক্লাস নির্দেশ করে যে এটি স্টার্টআপের সময় ব্যবহার করা হয় এবং ক্লাস লোড করার খরচ এড়াতে হিপে আগে থেকে বরাদ্দ করা উচিত।

এটা কিভাবে কাজ করে?

  • Libraries can define these rules which will be packaged in AAR artifacts. যখন একটি অ্যাপ তৈরি করা হয় যাতে এই আর্টিফ্যাক্টগুলি অন্তর্ভুক্ত থাকে, তখন এই নিয়মগুলিকে একত্রিত করা হয় এবং মার্জ করা নিয়মগুলি অ্যাপের জন্য নির্দিষ্ট একটি কমপ্যাক্ট বাইনারি এআরটি প্রোফাইল তৈরি করতে ব্যবহৃত হয়। ART can then leverage this profile when the app is installed on devices in order to ahead-of-time compile a specific subset of the application to improve the performance of the application, especially the first run. Note that this will have no effect on debuggable applications.

সংস্করণ 1.0.0-beta08

June 2, 2021

androidx.compose.runtime:runtime-*:1.0.0-beta08 is released. Version 1.0.0-beta08 contains these commits.

API Changes

  • State<T> is now State<out T> ( I69049 )
  • ControlledComposition API change to enable recomposing changes in a recompose single pass. ( Iaafd1 , b/184173932 )

Version 1.0.0-beta07

18 মে, 2021

androidx.compose.runtime:runtime-*:1.0.0-beta07 is released. সংস্করণ 1.0.0-beta07-এ এই কমিট রয়েছে।

API Changes

  • Added new compose compiler APIs that allow the source information generated by the compiler to be removed during source minification. ( IA34e6 )
  • Introduces ReusableContent which will attempt to reuse the nodes in its content instead of replacing them when the key is changed. When the key is changed the previous values in the slot table for the content is ignored except for the nodes that were generated and the values used to update the nodes.

    Introduces ReusableComposeNode that will reuse the node emitted instead of replacing it as is done for ComposeNode . ( I1dd86 )

  • @ComposeCompilerApi no longer @RequiresOptIn ( Iab690 )

বাগ ফিক্স

  • LazyColumn/Row will now keep up to 2 previously visible items active (not disposed) even when they are scrolled out already. This allows the component to reuse the active subcompositions when we will need to compose a new item which improves the scrolling performance. ( IE5555 )

Version 1.0.0-beta06

5 মে, 2021

androidx.compose.runtime:runtime-*:1.0.0-beta06 is released. সংস্করণ 1.0.0-beta06-এ এই কমিট রয়েছে।

API Changes

  • @ComposeCompilerApi no longer @RequiresOptIn ( Iab690 )

Version 1.0.0-beta05

21 এপ্রিল, 2021

androidx.compose.runtime:runtime-*:1.0.0-beta05 is released. Version 1.0.0-beta05 contains these commits.

API Changes

  • Removed @InternalComposeApi for recording snapshot reads and writes ( Id134d )

বাগ ফিক্স

  • ui-test-manifest এবং ui-tooling-data থেকে AndroidManifest ফাইলগুলি এখন Android 12 ( I6f9de , b/184718994 ) এর সাথে সামঞ্জস্যপূর্ণ

Version 1.0.0-beta04

7 এপ্রিল, 2021

androidx.compose.runtime:runtime-*:1.0.0-beta04 is released. Version 1.0.0-beta04 contains these commits.

বাগ ফিক্স

  • Prior to this change, local composable functions were skippable based on their parameters. After this change, no local composable functions will skip. এই পরিবর্তনটি করা হয়েছে কারণ স্থানীয় ফাংশনগুলির জন্য অভিভাবকের কাছ থেকে প্যারামিটারগুলি ক্যাপচার করা সাধারণ এবং প্রত্যাশিত এবং সেগুলি এড়িয়ে যাওয়া বাগগুলির একটি সাধারণ উত্স৷

    To summarize, consider the example:

    @Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) {
      @Composable fun ShowCount() { Text("Count: $count") }
      ShowCount()
      Button(onClick={ onCountChange(count + 1) }) {
        Text("Increment")
      }
    }
    

    Prior to this change, the ShowCount composable function would always skip, even after the count parameter was updated. এখন আর সেই অবস্থা নেই। ( I5648a )

  • Fixed the issue when rememberSaveable() was restoring the old value when used with input params ( I1b110 , b/182403380 )

Version 1.0.0-beta03

24 মার্চ, 2021

androidx.compose.runtime:runtime-*:1.0.0-beta03 is released. সংস্করণ 1.0.0-beta03 এই কমিট ধারণ করে।

API Changes

  • DefaultMonotonicFrameClock বাতিল করা হয়েছে। Calling withFrameNanos or Recomposer.runRecomposeAndApplyChanges with no MonotonicFrameClock will now throw IllegalStateException . ( I4eb0d )

Version 1.0.0-beta02

10 মার্চ, 2021

androidx.compose.runtime:runtime-*:1.0.0-beta02 is released. সংস্করণ 1.0.0-beta02-এ এই কমিট রয়েছে।

বাগ ফিক্স

  • Enforce restrictions on public usage of experimental APIs ( I6aa29 , b/174531520 )
  • Fix for broken rememberSaveable { mutableStateOf(0) } when used inside a destination of navigation-compose. ( I1312b , b/180042685 , b/180701630 )

Version 1.0.0-beta01

24 ফেব্রুয়ারি, 2021

androidx.compose.runtime:runtime-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

এটি কম্পোজ 1.0.0 বিটা-এর প্রথম প্রকাশ।

API Changes

  • Add Recomposer.runRecomposeConcurrentlyAndApplyChanges experimental API for recomposing invalidated compositions off the main frame loop. ( I342d0 )
  • Any composables marked with @ReadOnlyComposable are now compile-time validated to ensure that they only make calls to other @ReadOnlyComposables ( I58961 )
  • compositionLocalOf এবং staticCompositionLocalOf জন্য defaultFactory এখন ঐচ্ছিক পরিবর্তে প্রয়োজন।

    এই পরিবর্তনগুলি অ-নূলযোগ্য প্রকারের জন্য সম্ভাব্য টাইপ ত্রুটি সরিয়ে দেয় যেখানে কোনও ডিফল্ট কারখানা সরবরাহ করা হয়নি। পূর্বে এটি একটি অ-নূলযোগ্য টাইপের জন্য একটি নাল রেফারেন্স প্রদান করবে।

    For nullable types consider supplying { null } as the default factory.

    We do not recommend using locals with non-nullable types unless a sensible default can be provided. যদি কোন সংবেদনশীল ডিফল্ট বিদ্যমান না থাকে, defaultFactory ল্যাম্বডা একটি ব্যতিক্রম নিক্ষেপ করা উচিত। যাইহোক, একটি ব্যতিক্রম নিক্ষেপ করার মানে হল যে স্থানীয় ভোক্তাদের এটি প্রদানের উপর একটি অন্তর্নিহিত নির্ভরতা থাকবে যা টাইপ সিস্টেম দ্বারা প্রয়োগ করা হয় না। ( Ifbd2a )

  • Deprecated symbols were removed from the compose runtime ( I3252c )

  • অপ্রচলিত emptyContent() সরানো হয়েছে। পরিবর্তে {} ব্যবহার করুন। ( Idb33f , b/179432510 )

  • Providers has been renamed to CompositionLocalProvider

    • কম্পোজিশন কনস্ট্রাক্টর আর একটি কী প্যারামিটার গ্রহণ করে না, এবং অবচয় করা হয়েছে।
    • currentCompositeKeyHash has been turned into a composable top level property instead of a composable top level function.
    • CompositionData এবং CompositionGroup কে androidx.compose.runtime.tooling নামস্থানে সরানো হয়েছে
    • ComposableLambda একটি কংক্রিট ক্লাসের পরিবর্তে একটি ইন্টারফেস তৈরি করা হয়েছে, এবং আর টাইপ প্যারামিটার নেই।
    • ComposableLambdaN একটি কংক্রিট ক্লাসের পরিবর্তে একটি ইন্টারফেস তৈরি করা হয়েছে, এবং আর টাইপ প্যারামিটার নেই।
    • The snapshotFlow function has been moved to the androidx.compose.runtime namespace
    • the merge method of SnapshotMutationPolicy is no longer experimental
    • @TestOnly শীর্ষ স্তরের clearRoots ফাংশন সরানো হয়েছে। It is no longer necessary.
    • keySourceInfoOf এবং resetSourceInfo ফাংশন মুছে ফেলা হয়েছে। They are no longer necessary.
    • Composer.collectKeySourceInformation has been removed. It is no longer necessary.
    • isJoinedKey, joinedKeyLeft, and joinedKeyRight methods have been removed. They are no longer necessary.
    • Various top level APIs have been moved and reorganized into different files. কোটলিনের ফাইল ক্লাসের শব্দার্থবিদ্যার কারণে, এটি বাইনারি সামঞ্জস্যতা ভেঙে দেবে কিন্তু উত্স সামঞ্জস্য নয়, তাই বেশিরভাগ ব্যবহারকারীর জন্য সমস্যা হওয়া উচিত নয়।
    • ( I99b7d , b/177245490 )
  • SnapshotStateObserver is not Experimental anymore ( Id2e6a )

  • কিছু পূর্বে অবহেলিত API মুছে ফেলা হয়েছে ( Ice5da , b/178633932 )

  • Made the following Material API changes:

    • Added contentPadding parameter to Top/BottomAppBar to allow customizing the default padding.
    • Reordered parameters in BackdropScaffold to follow API guidelines for required parameters being before optional parameters.
    • Moved icon parameter in BottomNavigationItem to be after selected and onClick .
    • Renamed alwaysShowLabels parameter in BottomNavigationItem to alwaysShowLabel .
    • Renamed bodyContent parameters in a few components to just content .
    • Reordered parameters in ButtonDefaults.buttonColors() . Please note that because the type of the parameters have not changed, this will not cause an error in your code - please ensure you are either using named parameters or update the ordering manually, otherwise your code will not work the same as previously.
    • Added secondaryVariant parameter to darkColors() . This color is typically the same as secondary in dark theme, but adding for consistency and further customization.
    • Removed ElevationDefaults and animateElevation() from the public API surface since they were not commonly used / useful.
    • Renamed onValueChangeEnd in Slider to onValueChangeFinished and made it nullable.
    • Renamed text parameter in Snackbar to content for consistency.
    • Added contentPadding parameter to DropdownMenuItem to allow customizing the default padding and made content be an extension on RowScope .
    • Renamed ModalDrawerLayout to ModalDrawer .
    • Renamed BottomDrawerLayout to BottomDrawer .
    • ( I1cc66 )

Version 1.0.0-alpha12

ফেব্রুয়ারী 10, 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits.

API Changes

  • Support for ViewGroups was removed from UiApplier. The Deprecated emitView composables were removed. ( Ifb214 )
  • CompositionReference renamed to CompositionContext ( I53fcb )
  • ComponentActivity.setContent has moved to androidx.activity.compose.setContent in the androidx.activity:activity-compose module. ( Icf416 )
  • Snapshot API was updated to be more consistent with API guideline as well as hiding internal implementation classes from the public API. ( Id9e32 )
  • পরিবেষ্টনের সাথে মেলানোর জন্য পরিবেষ্টনের নাম পরিবর্তন করা হয়েছে -> কম্পোজিশন স্থানীয় পুনঃনাম। অ্যাম্বিয়েন্টের নাম ছিল অ্যাম্বিয়েন্টফু, এখন কম্পোজিশনলোকালের নাম লোকালফু। ( I2d55d )
  • Renamed Ambient to CompositionLocal, and ambientOf / staticAmbientOf to compositionLocalOf / staticCompositionLocalOf respectively. This change helps to make the purpose of CompositionLocal more clear: a mechanism for providing / retrieving values local to a composition. CompositionLocal instances should be prefixed with Local , such as val LocalFoo = compositionLocalOf { Foo() }. ( Ia55b6 )
  • takeMutableSnapshot and takeSnapshot have moved to be companion methods of Snapshot. ( I91f19 )
  • @ComposableContract has been deprecated in favor of three more specific annotations.

    @ComposableContract(restartable = false) হয়ে গেছে @NonRestartableComposable @ComposableContract(readonly = true) হয়ে গেছে @ReadOnlyComposable @ComposableContract(preventCapture = true) হয়ে গেছে @DisallowComposableCalls @ComposableContract(tracked = true) সরানো হয়েছে। ( I60a9d )

  • emptyContent() এবং (@Composable () -> Unit.orEmpty() ইউটিলিটিগুলিকে অবমূল্যায়ন করা হয়েছে কারণ তাদের আর কোন ইতিবাচক কর্মক্ষমতা প্রভাব বা মান নেই ( I0484d )

  • snapshotFlow and withMutableSnapshot are no longer experimental ( I6a45f )

  • Recomposers can now be closed. কম্পোজিশন চাইল্ড কোরোটিন সম্পূর্ণ না হওয়া পর্যন্ত ক্লোজড রিকম্পোজাররা পুনর্গঠন চালিয়ে যাবে। Recomposer.shutDown বন্ধের সাথে বিপরীতে বাতিল করার জন্য নাম পরিবর্তন করা হয়েছে। ( Ib6d76 )

  • compose:runtime-dispatch আর্টিফ্যাক্ট এখন অবহেলিত। MonotonicFrameClock এখন compose:runtime এ পাওয়া যাবে এবং AndroidUiDispatcher compose:ui এ পাওয়া যাবে। ( Ib5c36 )

  • কম্পোজ কম্পাইলার প্লাগইন টার্গেট এপিআই একটি কংক্রিট ক্লাসের পরিবর্তে একটি ইন্টারফেস ব্যবহার করার জন্য রিফ্যাক্টর করা হয়েছে। ইন্টারফেসটি আর টাইপ প্যারামিটার ব্যবহার করে না।

    This is an internal change that should not effect source code compatibility but is a binary breaking change. ( I3b922 , b/169406779 )

  • SnapshotMutableState was introduced ( Icfd03 )

  • DisposableEffectDisposable was renamed to DisposaleEffectResult ( Ica7c6 )

  • Removed Recomposer.current(). [বিমূর্ত] কম্পোজভিউ এখন ডিফল্ট অলসভাবে তৈরি করা, উইন্ডোর জন্য ViewTreeLifecycleOwner দ্বারা চালিত উইন্ডো-স্কোপড রিকম্পোজার। Recomposition and withFrameNanos-based animation ticks are paused while the host Lifecycle is stopped. ( I38e11 )

  • Recomposer.runningRecomposers now offers a global StateFlow of read-only RecomposerInfo for observing ongoing composition state in the process. Prefer this API to Recomposer.current(), which is now deprecated. ( if8ebe )

  • DisposableEffectDisposable was renamed to DisposaleEffectResult ( I3ea68 )

সংস্করণ 1.0.0-alpha11

28 জানুয়ারী, 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha11 is released. সংস্করণ 1.0.0-alpha11-এ এই কমিট রয়েছে।

API Changes

  • onCommit, onDispose, এবং onActive-কে SideEffect এবং DisposableEffect APIs ( If760e ) এর পক্ষে বর্জন করা হয়েছে
  • The emit() API and all overloads have been deprecated and renamed to ComposeNode. The APIs are identical, just a different name in order to follow the naming conventions of Compose ( I4137b )
  • invalidate এবং compositionReference() এখন যথাক্রমে currentRecomposeScope এবং memoryCompositionReference-এর পক্ষে অবচয়। ( I583a8 )
  • RememberObserver replaces CompositionLifecycleObserver and CompositionLifecycleObserver is now deprecated.

    RememberObserver is a replacement for CompositionLifecycleObserver with modified semantics and renamed methods. নতুন এপিআই-তে পরিবর্তন করা বস্তুর জন্য যান্ত্রিকভাবে করা যেতে পারে যেগুলি শুধুমাত্র একবার মনে রাখা হয়, যা প্রস্তাবিত অনুশীলন। যাইহোক, যদি একটি রেফারেন্স একটি রচনায় একাধিকবার মনে রাখা হয় তবে প্রতিটি রেফারেন্সের জন্য onRemembered বলা হয় যেখানে onEnter শুধুমাত্র একবার বলা হয়। onEnter was called multiple time if the object was used in subcompositions, such as WithConstraints and Scaffold making the single onEnter call guarantee unreliable and it was removed for RememberObserver .

    RememberObserver adds onAbandoned which is called if the RememberObserver instance is returned from the callback passed to remember but was not remembered in the composition state and, therefore, will never have onRemembered called. এটি ঘটতে পারে যদি একটি ব্যতিক্রম সম্পূর্ণ হওয়ার আগে কম্পোজিশন বন্ধ করে দেয় বা কম্পোজিশন বাতিল করা হয় কারণ স্টেট এখন আর বর্তমান নয় বা অন্যথায় আর প্রয়োজন নেই। উপরোক্ত একক রেফারেন্স সুপারিশ অনুসরণ করে RememberObserver এর উদাহরণ যদি onForgotten এবং onAbandoned উভয়ই একটি বাহ্যিক সংস্থান ট্র্যাক করে থাকে তাহলে নির্দেশ করে যে সংস্থানটির আর প্রয়োজন নেই। যদি অবজেক্টটি ট্র্যাক করার কাজ শুরু করে বা onRemembered এ সংস্থান বরাদ্দ করা হয়, তাহলে onAbandoned উপেক্ষা করা যেতে পারে কারণ onRemembered বলা হলে এটি কল করা হবে না। ( I02c36 )

  • Do not mark collectAsState() functions as inline ( Ia73e4 )

বাগ ফিক্স

  • WithConstraints was reworked as BoxWithConstraints and moved to foundation.layout. ( I9420b , b/173387208 )
  • Leverage TestCoroutineDispatcher in testing ( I532b6 )

সংস্করণ 1.0.0-আলফা10

13 জানুয়ারী, 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha10 is released. সংস্করণ 1.0.0-alpha10 এই কমিট ধারণ করে।

Breaking Change

  • Restructuring of the internal compiler API allows batching changes to the nodes generated as a result of composition into the "apply changes" phase of composition, after all @Composable functions have completed.

    This is a behavioral breaking change that might affect application code as nodes are no longer available from internal and experimental APIs until after changes have been applied. This can usually be worked around by surrounding code with such dependencies in a SideEffect composable to defer execution of the code until after the nodes have been created and initialized. ( I018da )

API Changes

  • Added a way to track if the recomposer has applied changes. ( I1b3e2 )
  • Expand [Abstract]ComposeView APIs to allow recycling Compose-based views, disposing their composition to recreate again later. Add APIs for installing and discovering window-scoped Recomposers and CompositionReferences for creating child compositions.

    Add ViewCompositionStrategy for configuring the composition disposal strategy of [Abstract]ComposeViews; default behavior is dispose on window detach. ( I860ab )

বাগ ফিক্স

  • Recomposer now exposes a Flow of its current state, allowing monitoring its activity and the activity of associated effects. ( Ifb2b9 )
  • নেটিভ কী ইভেন্ট এখন keyEvent.nativeKeyEvent ( I87c57 , b/173086397 ) এর মাধ্যমে অ্যাক্সেস করা যেতে পারে

Version 1.0.0-alpha09

16 ডিসেম্বর, 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits.

API Changes

  • পাবলিক API থেকে SlotTable, SlotReader এবং SlotWriter সরানো হয়েছে। এগুলিকে পূর্বে InternalComposeAPI হিসাবে চিহ্নিত করা হয়েছিল। এখন তারা রচনা মডিউল অভ্যন্তরীণ.

    কম্পোজিশনের তথ্য বের করার জন্য ব্যবহার করার জন্য UI-tooling API-এর প্রতিস্থাপন হিসেবে CompositionData এবং CompositionGroup যোগ করা হয়েছে। এগুলি সর্বজনীন কিন্তু ui-tooling API-এর বাইরে ব্যবহারের উদ্দেশ্যে নয় কারণ তারা ui-tooling API ব্যাখ্যা করে ( I31a9c ) কাঁচা তথ্য প্রদান করে

  • The Applier class is no longer considered an ( Id85b0 )

  • Applier ইন্টারফেস টপ-ডাউনের পরিবর্তে বিল্ডিং ট্রিকে বটম-আপ সহজ করতে পরিবর্তিত হয়েছে।

    insert() পদ্ধতির নাম পরিবর্তন করে insertTopDown() করা হয়েছে।

    A new method, insertBottomUp() , was added.

    একটি প্রয়োগকারী হয় গাছের মধ্যে নোড সন্নিবেশ করান যা এটি insertTopDown() বা insertBottomUp() ব্যবহার করে সম্পাদনা করছে তার উপর নির্ভর করে কোনটি ভাল কাজ করে।

    Some trees, such as LayoutNode and View , are much more efficient to build bottom-up than top-down. এই পরিবর্তনের আগে, বটম-আপ বাস্তবায়নের জন্য সন্নিবেশের একটি স্ট্যাক প্রয়োজন ছিল যা কর্মক্ষমতার জন্য বটম-আপ নির্মাণের প্রয়োজন এমন প্রতিটি প্রয়োগকারীতে অনুলিপি করা প্রয়োজন। With this change an Applier overrides insertBottomUp() to build a tree bottom-up and insertTopDown() to build the tree top-down. ( Icbdc2 )

  • Compose supports property getters that can make composable invocations. Support for this is not going away, but the syntax for declaring a property getter as being @Composable is changing.

    The now-deprecated syntax for doing this was by annotating the property itself:

        @Composable val someProperty: Int get() = ...
    

    The now-correct syntax for doing this is by annotating the getter of the property:

       val someProperty: Int @Composable get() = ...
    

    Both syntaxes will work for some time, but the former deprecated syntax will eventually become a compile error. ( Id9197 )

বাগ ফিক্স

  • AndroidOwner তৈরি অভ্যন্তরীণ ( Ibcad0 , b/170296980 )
  • subcomposeInto(LayoutNode) was made internal ( Id724a )

সংস্করণ 1.0.0-alpha08

2 ডিসেম্বর, 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits.

API Changes

  • Added lint check for composable lambda parameter naming and position, to check for consistency with Compose guidelines. Also migrated some APIs using children as the name for their trailing lambda to content , according to the lint check and guidance. ( Iec48e )
  • Recomposer no longer accepts an EmbeddingContext; required scheduling dependencies are obtained from the effectCoroutineContext. FrameManager is deprecated; platform integrations should initialize their own global snapshot handling. ( I02369 )
  • RestorableStateHolder.withRestorableState function was renamed to RestorableStateProvider ( I66640 )

বাগ ফিক্স

  • Ambient সাথে তাদের প্রত্যয় হিসাবে নাম দেওয়া অ্যাম্বিয়েন্টগুলিকে অবমূল্যায়িত করা হয়েছে এবং অন্যান্য অ্যাম্বিয়েন্ট এবং রচনা API নির্দেশিকা অনুসরণ করে অ্যাম্বিয়েন্টের সাথে প্রিফিক্স করা নতুন বৈশিষ্ট্যগুলির সাথে প্রতিস্থাপিত হয়েছে৷ ( I33440 )
  • Remove old ui-test module and its stubs ( I3a7cb )

সংস্করণ 1.0.0-alpha07

11 নভেম্বর, 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha07 is released. সংস্করণ 1.0.0-alpha07 এই কমিট ধারণ করে।

নতুন বৈশিষ্ট্য

API Changes

  • The @UnionType annotation has been deprecated ( I57cde )
  • provideDefault was added as an alternative to provide for providing ambients, and it can be used to specify ambient values that will only be set when there is no ambient value already provided. ( Id6635 , b/171024925 )
  • LaunchedTask was renamed to LaunchedEffect for consistency with the SideEffect and DisposableEffect APIs. LaunchedEffect with no subject params is not permitted in order to encourage best practices. ( Ifd3d4 )
  • Applier now has onBeginChanges/onEndChanges callbacks that are invoked when a Composer begins/is finished applying changes to the tree. These may be used for batching resource management if needed. ( Icf476 )
  • Recomposer now requires a CoroutineContext at construction ( Ic4610 )
  • Changes to the internal SlotTable implementation which should not affect the public API. ( If9828 )
  • Deprecated rxjava2 adapters which does not take the initial value were removed ( Idb72f )

বাগ ফিক্স

  • foundation.Text অবচয় করা হয়েছে এবং material.Text দিয়ে প্রতিস্থাপিত হয়েছে। একটি মৌলিক, অবিকৃত পাঠ্য API এর জন্য যা একটি থিম থেকে মান গ্রহণ করে না, দেখুন androidx.compose.foundation.BasicText। ( If64cb )
  • BaseTextField অবমুক্ত করা হয়েছে। Use BasicTextField instead. ( I896eb )
  • বেশ কিছু লেআউট সম্পর্কিত চিহ্ন androidx.compose.ui থেকে androidx.compose.layout.ui এ সরানো হয়েছে। ( I0fa98 , b/170475424 )

External Contribution

  • Added runtime-rxjava3 module for compose. Similar to runtime-rxjava2 ( I02cbf )

সংস্করণ 1.0.0-alpha06

October 28, 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha06 is released. সংস্করণ 1.0.0-alpha06 এই কমিট ধারণ করে।

API Changes

  • Recomposer is now a CompositionReference and a valid composition parent. Explicit Recomposer is now required in fewer places. ( I4036f )
  • Added DisposableEffect counterpart API to SideEffect, filling the role of onCommit-with-params but with a required onDispose.
    • Added rememberUpdatedState API to publish data from recomposition to ongoing or long-lived processes such as DisposableEffects or LaunchedTasks.
    • ( Id50b9 )
  • MutableVector now implements RandomAccess ( I85d73 , b/170461551 )
  • Added SideEffect composable for applying side effects of composition to objects managed by the composition. SideEffect is intended to replace the onCommit composable. ( Ia77c2 )
  • New experimental api RestorableStateHolder. It allows to save the state defined with [savedInstanceState] and [rememberSavedInstanceState] for the subtree before disposing it to make it possible to compose it back next time with the restored state. ( I66884 , b/166586419 )

বাগ ফিক্স

  • Enable transitions in ComposeTestRule; ComposeTestRule থেকে ব্লিঙ্কিং কার্সার সক্রিয় করতে অপশন অপসারণ করুন। ( if0de3 )

সংস্করণ 1.0.0-alpha05

অক্টোবর 14, 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits.

API Changes

  • Experimental Modifier.pointerInput suspending input modifier ( Ia77d2 )
  • The scrolling performance of LazyColumn/Row is improved by doing less work in subcomposition on every scroll. The new hasInvalidations() method was added for Composition class. hasPendingChanges() method from Recomposer was renamed to hasInvalidations() ( Ib2f32 , b/168293643 , b/167972292 , b/165028371 )
  • Add produceState API for launching coroutines from composition that update a single State<T> value over time ( Id4a57 )
  • launchInComposition renamed to LaunchedTask to match Compose API guidelines ( I99a8e )
  • The order of place() calls in custom Layouts now defines the drawing order for the children ( Ibc9f6 )

সংস্করণ 1.0.0-alpha04

অক্টোবর 1, 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha04 is released. সংস্করণ 1.0.0-alpha04 এই কমিট ধারণ করে।

API Changes

  • Added OwnerScope to allow collection of layout and drawing observation scopes once they are no longer valid. ( Ic4cf8 )
  • Added derivedStateOf API to create State objects based on a calculation which may read (and derive from) other State objects ( If758b )
  • Added TestOnly API for SnapshotStateObserver ( I6e2a9 )

বাগ ফিক্স

  • foundation.Box was deprecated. Please use foundation.layout.Box instead. ( Ie5950 , b/167680279 )

সংস্করণ 1.0.0-alpha03

16 সেপ্টেম্বর, 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha03 is released. সংস্করণ 1.0.0-alpha03 এই কমিট ধারণ করে।

API Changes

  • CompositionCoroutineScope no longer implements MonotonicFrameClock . Callers of withFrameNanos should import the top-level function explicitly. ( Icb642 , b/166778123 )

বাগ ফিক্স

  • Global testing functions such as onNode or waitForIdle are now deprecated, please migrate to their new counterparts that are defined on ComposeTestRule ( I7f45a )
  • launchInComposition no longer launches coroutines undispatched ( Ief6af , b/166486000 )

সংস্করণ 1.0.0-alpha02

2শে সেপ্টেম্বর, 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits.

API Changes

  • Add snapshotFlow and withMutableSnapshot APIs for consuming and producing Snapshot data changes. ( I3e722 )
  • The calling convention for composable functions has changed. This is a binary breaking change. All libraries must be recompiled to work with this version of the compose compiler plugin.

    This change does not create a source level breaking change as the only APIs that have changed are compiler APIs that have an explicit opt in. ( I7afd2 , b/158123185 )

  • Removed scheduling methods from EmbeddingContext ( I7b9be )

  • onPreCommit is deprecated; onCommit now has onPreCommit's behavior.

    onCommit and onActive now run in the same choreographer frame that the composition changes committed in rather than at the beginning of the next choreographer frame. ( I70403 )

সংস্করণ 1.0.0-alpha01

আগস্ট 26, 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha01 is released. সংস্করণ 1.0.0-alpha01-এ এই কমিট রয়েছে।

Version 0.1.0-dev

Version 0.1.0-dev17

আগস্ট 19, 2020

androidx.compose.runtime:runtime-*:0.1.0-dev17 is released. Version 0.1.0-dev17 contains these commits.

API Changes

  • Custom emits can now declare that one or more of its setters can be skipped and recomposed independently of the emit. ( Ibbd13 )
  • Removed deprecated FrameManager calls.

    Internal compose APIs have been changed to reduce the amount of overhead to track state objects such as mutableStateof() ( I80ba6 )

  • The state { ... } composable is now deprecated in favor of explicit calls to remember { mutableStateOf(...) } for clarity. This reduces the overall API surface and number of concepts for state management, and matches the by mutableStateOf() pattern for class property delegation. ( Ia5727 )

  • Flow.collectAsState now determines the default dispatcher from the composition itself rather than defaulting to Dispatchers.Main. ( I9c1d9 )

  • Crash when something which saves the state was used inside the for loop is fixed. Now having the same key in savedInstanceState() is allowed, api of UiSavedStateRegistry is now adjusted to this new requirement ( I4ab76 , b/160042650 , b/156853976 , b/159026663 , b/154920561 )

বাগ ফিক্স

  • emitView was deprecated. Use AndroidView instead if possible for emitting Views inside Compose. Note that composing Views and ViewGroups directly will not be supported in the future unless these are leaves in the composition tree, case when this can be achieved using AndroidView. ( I29b1e , b/163871221 )

সংস্করণ 0.1.0-dev16

August 5, 2020

androidx.compose.runtime:runtime-*:0.1.0-dev16 is released. Version 0.1.0-dev16 contains these commits.

API Changes

  • The default mutation policy of mutableStateOf() , ambientOf() and savedInstanceStateOf() has changed to be structuralEqualityPolicy() instead of referentialEqualityPolicy() .

    The default for deciding if a new value assigned to a mutableStateOf() instance is considered a change now defaults to using == instead of using === .

    See https://kotlinlang.org/docs/reference/equality.html

    ambientOf() and savedInstanceStateOf() use mutableStateOf() in their implementations so they were changed to be consistent with mutableStateOf() .

    Using structural equality more closely matches developer expectations.

    যেমন,

    val state = mutableStateOf(1f)
    

    followed by,

    state.value = 1f
    

    will no longer be consider a change to state and uses of state during composition will no longer need to be recomposed.

    This is a breaking change but, in most cases (such when using classes that do not override equals() ), this will not have a noticeable effect on an application.

    Classes that do override equals() , such as data classes, might see a performance degradation as their equals() methods are now, by default, called when assigned to a mutableStateOf() .

    The previous behavior can be restored by adding the policy parameter policy = referentialEqualityPolicy() to calls to mutableStateOf() , ambientOf() and savedInstanceStateOf() . ( Ic21a7 )

  • Row এবং Column এখন ইনলাইন ফাংশন উল্লেখযোগ্যভাবে তাদের ব্যবহার ওভারহেড হ্রাস. ( I75c10 )

বাগ ফিক্স

  • setViewContent was deprecated. setContent should be used instead. ( I7e497 , b/160335130 )
  • MonotonicFrameAnimationClock যোগ করা হয়েছে যা আপনাকে একটি MonotonicFrameClock একটি AnimationClock হিসাবে ব্যবহার করতে সক্ষম করে যা নতুন coroutines ভিত্তিক ঘড়ি এবং APIs যেগুলি এখনও পুরানো কলব্যাক ভিত্তিক ঘড়িগুলি ব্যবহার করে তার মধ্যে ব্যবধান পূরণ করতে।

    The MonotonicFrameClock equivalent of ManualAnimationClock is now ManualFrameClock. ( I111c7 , b/161247083 )

  • Modifier.stateDraggable was completely reworked and renamed to Modifier.swipeable. A new SwipeableState class was introduced, and DrawerState and BottomDrawerState were refactored to inherit from it. [Modal/Bottom]DrawerLayout no longer take an onStateChange parameter. ( I72332 , b/148023068 )

  • Modifier.plus has been deprecated, use Modifier.then instead. 'Then' has a stronger signal of ordering, while also prohibits to type Modifier.padding().background() + anotherModifier , which breaks the chain and harder to read ( Iedd58 , b/161529964 )

  • SubcomposeLayout is added. It is a low level primitive which allows to compose the children during the measuring if we want to use some values available only later during the measure for the subtree composition. For example WithConstraints is not implemented using SubcomposeLayout. ( I25cc8 )

  • ম্যাটেরিয়াল ফিল্ড টেক্সটফিল্ডের নাম পরিবর্তন করে টেক্সটফিল্ড করা হয়েছিল এবং ফাউন্ডেশনাল টেক্সটফিল্ডের নাম পরিবর্তন করে বেসটেক্সটফিল্ড করা হয়েছিল যাতে সহজতম কাঙ্ক্ষিত API আবিষ্কার এবং ব্যবহার করা সহজ হয় ( Ia6242 , b/155482676 )

  • Modifier.drawBackground has been renamed to Modifier.background ( I13677 )

Version 0.1.0-dev15

22 জুলাই, 2020

androidx.compose.runtime:runtime-*:0.1.0-dev15 is released. 0.1.0-dev15 সংস্করণে এই কমিট রয়েছে।

নির্ভরতা আপডেট

  • To use the 0.1.0-dev15 version of Compose, you will need to update your dependencies according to the new code snippets shown above in Declaring dependencies .

API Changes

  • @Model annotation is now deprecated. Use state and mutableStateOf as alternatives. This deprecation decision was reached after much careful discussion.

    ন্যায্যতা

    Rationale includes but is not limited to:

    • Reduces API surface area and concepts we need to teach
    • More closely aligns with other comparable toolkits (Swift UI, React, Flutter)
    • Reversible decision. We can always bring @Model back later.
    • Removes corner-case usage and difficult to answer questions about configuring @Model as things we need to handle
    • @Model data classes, equals, hashcode, etc.
    • How do I have some properties “observed” and others not?
    • How do I specify structural vs. referential equality to be used in observation?
    • Reduces “magic” in the system. Would reduce the likelihood of someone assuming system was smarter than it is (ie, it knowing how to diff a list)
    • Makes the granularity of observation more intuitive.
    • Improves refactorability from variable -> property on class
    • Potentially opens up possibilities to do hand-crafted State-specific optimizations
    • More closely aligns with the rest of the ecosystem and reduces ambiguity towards immutable or us “embracing mutable state”

    Migration Notes

    Almost all existing usages of @Model are fairly trivially transformed in one of two ways. The example below has a @Model class with two properties just for the sake of example, and has it being used in a composable.

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    Alternative 1: Use State<OriginalClass> and create copies.

    This approach is made easier with Kotlin's data classes. Essentially, make all previously var properties into val properties of a data class, and then use state instead of remember , and assign the state value to cloned copies of the original using the data class copy(...) convenience method.

    It's important to note that this approach only works when the only mutations to that class were done in the same scope that the State instance is created. If the class is internally mutating itself outside of the scope of usage, and you are relying on the observation of that, then the next approach is the one you will want to use.

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    Alternative 2: Use mutableStateOf and property delegates

    This approach is made easier with Kotlin's property delegates and the mutableStateOf API which allows you to create MutableState instances outside of composition. Essentially, replace all var properties of the original class with var properties with mutableStateOf as their property delegate. This has the advantage that the usage of the class will not change at all, only the internal implementation of it. The behavior is not completely identical to the original example though, as each property is now observed/subscribed to individually, so the recompositions you see after this refactor could be more narrow (a good thing).

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    ( I409e8 , b/152050010 , b/146362815 , b/146342522 , b/143413369 , b/135715219 , b/143263925 , b/139653744 )

  • Changes the code generation strategy of Compose's compiler. Prior to the change, the compose compiler would transform calls to composable functions. With this change, we now transform the body of a composable function and leave the callsite unaltered (mostly).

    This means that most of the logic communicating with the compose runtime happens at the start of the function body, instead of at the callsite.

    This should be a source-compatible change for all usage of compose. Most users of compose should not have to update any code as a result of this change.

    In order to support this work, the JVM signature of all composable functions has changed. A Composable function accepting a single parameter is transformed into a function accepting 3 parameters, the additional parameters are the Composer, a 'key' integer. a bitmask integer used to propagate metadata through calls.

    Compose now also transforms default arguments to a composable function. It does this without introducing an additional synthetic default overload of the function itself, so this change will result in fewer functions being defined.

    Known intentional behavioral changes resulting from this:

    1. Some calls will skip where they wouldn't have previously
    2. Composable expressions in default argument expressions are now correctly subscribed to and handled

    This work included some optimizations: 1. The result of comparisons of parameters are propagated through the call graph to other composable functions. This will result in fewer comparisons at runtime, reduces the slot table size, as well as more skipping of composable functions that were previously not skipped 2. Paremeters which are determined to be “static” at compile time are no longer compared or stored in the runtime. This reduces the number of comparisons and reduces slot table size. 3. Control flow structure of the body of functions is used to minimize the number of groups that are generated. This reduces slot table size and results in less work for the runtime 4. Unused dispatch and receiver parameters to functions are not included in determining skippability of the function if they are not used inside of the body of the function.

    Most breaking changes were for APIs that the compiler targets directly, and typical use of compose will not be affected: 1. Composer::startExpr was removed 2. Composer::endExpr was removed 3. Composer::call was deprecated 4. The non-varargs overloads of key have been removed. Use the vararg version going forward. 5. The Pivotal annotation was deprecated. Use key as a replacement. 6. ScopeUpdateScope::updateScope was changed to expect a Function3 instead of Function1 7. restartableFunction and restartableFunctionN were updated to include additional compile time parameters ( I60756 , b/143464846 )

  • Added sortWith and removeRange to MutableVector ( Icccf7 )

  • Added default method implementations for CompositionLifecycleObserver ( I24289 )

  • Applier now requires a clear() method for disposing compositions ( Ibe697 )

  • Added asMutableList() to MutableVector to allow it to be passed to public API without having to copy the entire list. ( I298df )

  • Added rememberCoroutineScope() to obtain a managed CoroutineScope in composition for launching jobs in response to events. ( I0e264 )

  • MutableVector is a new collection that does not implement any of the standard Collection interface. This collection offers speed above other requirements and is intended to only be used in internal implementations. ( I8ebd6 )

  • Temporarily removed StableMutableList and StableMutableMap to avoid an issue in the version of Kotlin compose requires. These interfaces will be reintroduced once compose is updated to a version of Kotlin that doesn't have the issue.

    SnapshotStateList and SnapshotStateMap are now public but they will be deprecated once StableMutableList and StableMutableMap are restored. ( Ia7769 )

  • add top-level withFrameNanos function for animation timing ( Ie34c5 )

  • @Untracked annotation has been deprecated. Replace with @ComposableContract(tracked=false) ( Id211e )

  • RestartableFunction and associated APIs have been renamed to ComposableLambda, etc. These APIs were targeted only by the compiler so this should not affect source level compatibility normally. The rename was done primarily to communicate what this class is better when it shows up in stack traces ( I7eb25 )

  • @Composable annotation is no longer valid on classes ( Ia5f02 )

  • Ambient<T> is now @Stable instead of @Immutable ( I0b4bb )

  • Prior to this change, the compose compiler plugin would non-trivially intercept calls to constructors inside of a @Composable function if there was an ( I5205a , b/158123804 )

  • The Recompose composable is no longer a useful abstraction. Most recomposition should happen as a result of MutableState assignments. For anything beyond that, it is recommended that you use the invalidate function to trigger a recomposition of the current scope. ( Ifc992 )

  • Observe is no longer a useful abstraction. If you need to replicate it, its implementation can be replicated by just creating a composable function which executes a composable lambda parameter. For example, @Composable fun Observe(body: @Composable () -> Unit) = body() ( I40d37 )

  • @Direct was deprecated in favor of @ComposableContract(restartable=false) ( If4708 )

  • Added an adapter for the recently introduced StateFlow which allows as to pre-populate the initial value so the returned State is non-nullable ( I61dd8 , b/156233789 )

  • Added an adapter for Flow. Example of the usage: val value by flow.collectAsState() ( If2198 , b/153375923 )

  • [Mutable]State property delegate operators moved to extensions to support Kotlin 1.4 property delegate optimizations. Callers must add imports to continue using by state { ... } or by mutableStateOf(...) . ( I5312c )

  • androidx.compose.ViewComposer has been moved to androidx.ui.node.UiComposer androidx.compose.Emittable has been removed. It was redundant with ComponentNode. androidx.compose.ViewAdapters has been removed. They are no longer a supported use case. Compose.composeInto has been deprecated. Use setContent or setViewContent instead. Compose.disposeComposition has been deprecated. Use the dispose method on the Composition returned by setContent instead. androidx.compose.Compose.subcomposeInto has moved to androidx.ui.core.subcomposeInto ComponentNode#emitInsertAt has been renamed to ComponentNode#insertAt ComponentNode#emitRemoveAt has been renamed to ComponentNode#removeAt ComponentNode#emitMode has been renamed to ComponentNode#move ( Idef00 )

  • Updated the ComposeFlags.COMPOSER_PARAM flag to be true , which will change the code generation strategy for the compose plugin. At a high level, this causes @Composable functions to be generated with an additional synthetic parameter, which is passed through to subsequent @Composable calls in order for the runtime to properly manage execution. This is a significant binary breaking change, however, should preserve source-level compatibility in all sanctioned usage of compose. ( I7971c )

  • Breaking changes to the ambients API. See log and Ambient<T> documentation for details ( I4c7ee , b/143769776 )

  • Added ui-livedata - new artifact with an adapter for LiveData. Example of the usage: val value by liveData.observeAsState() ( Ie9e8c , b/150465596 )

  • Rx adapters without explicit initial value are deprecated. Using null is not always the best default, for example when you have a List it is better to start with emptyList() or any other reasonable default ( I00025 , b/161348384 )

  • Added ui-rxjava2 - new artifact with adapters for RxJava2. Example of the usage: val value by observable.subscribeAsState() ( Ifab4b , b/153369097 )

  • savedInstanceState() can now be used with nullable types ( I6847f , b/153532190 )

  • New listSaver() and mapSaver() to make it easier to write custom Saver objects ( I8cf68 , b/152331508 )

  • New functions: savedInstanceState() and rememberSavedInstanceState(). They are similar to state() and remember() but have a saved instance state support build in ( If1987 , b/152025209 )

বাগ ফিক্স

  • runOnIdleCompose renamed to runOnIdle ( I83607 )
  • Made LayoutNode experimental API ( I4f2e9 )
  • androidx.ui.foundation.TextFieldValue and androidx.ui.input.EditorValue is deprecated. TextField, FilledTextField and CoreTextField composables that uses that type is also deprecated. Please use androidx.ui.input.TextFieldValue instead ( I4066d , b/155211005 )
  • Removed deprecated DrawBackground API in favor of drawBackground extension APIs on Modifier. রিফ্যাক্টরড কালার, ব্রাশ এবং পেইন্ট ড্র ব্যাকগ্রাউন্ড ইমপ্লিমেন্টেশন কোড পাথ কমাতে এবং সেইসাথে কম্পোজিশনের অংশ হিসেবে মডিফায়ার তৈরির প্রয়োজনীয়তা দূর করতে। ( I0343a )
  • Updated higher level compose APIs that expose a Canvas to expose CanvasScope instead. This removes the need for consumers to maintain their own Paint objects. ভোক্তাদের জন্য যাদের এখনও একটি ক্যানভাসে অ্যাক্সেসের প্রয়োজন তারা drawCanvas এক্সটেনশন পদ্ধতি ব্যবহার করতে পারে যা অন্তর্নিহিত ক্যানভাসের সাথে অঙ্কন কমান্ড ইস্যু করার জন্য একটি কলব্যাক প্রদান করে। ( I80afd )
  • WithConstraints trailing lambda API has been changed. Now instead of two params it has a receiver scope which in addition to constraints and layoutDirection provides minWidth, maxWidth, minHeight and maxHeight properties in Dp ( I91b9a , b/149979702 )
  • Added symmetric padding modifier. ( I39840 )
  • Updated wrapContentWidth and wrapContentHeight to expect vertical or horizontal Alignment rather than any Alignment. The gravity modifier was updated to accept vertical or horizontal Alignment. Row, Column and Stack were updated to support custom continuous Alignments. ( Ib0728 )
  • ui-text module is renamed as ui-text-core ( I57dec )
  • DrawModifier API উন্নত করুন:
    • draw() ContentDrawScope এর জন্য রিসিভার স্কোপ তৈরি করেছে
    • Removed all parameters on draw()
    • DrawScope has same interface as former CanvasScope
    • ContentDrawScope has drawContent() method ( Ibaced , b/152919067 )
  • ColoredRect অবমুক্ত করা হয়েছে। পরিবর্তে Box(Modifier.preferredSize(width, height).drawBackground(color)) ব্যবহার করুন। ( I499fa , b/152753731 )
  • ফ্যাক্টরি এক্সটেনশন ফাংশন ( I225e4 ) সহ পরিবর্তিত মডিফায়ার প্লাস অপারেটর
  • RowScope and ColumnScope members are now accessible outside Row and Column. ( I3a641 )
  • Renamed LayoutFlexible to LayoutWeight. Renamed tight parameter to fill. ( If4738 )
  • WithConstraints got LayoutDirection parameter ( I6d6f7 )
  • Renamed background to DrawBackground and make it to be memorized by default ( Ia0bd3 )
  • Replaced ButtonStyle with distinct functions and removed text (string) overload. See updated samples for usage information. ( If63ab , b/146478620 , b/146482131 )
  • runOnIdleCompose and runOnUiThread are now global functions instead of methods on ComposeTestRule. ( Icbe8f )

External Contribution

  • Remove unneeded API such as Looper and Handler from Compose Runtime porting layer ( I6847d )
  • Deprecate Flow<T>.collectAsState() with no initial value. Use StateFlow<T> or pass an explicit initial value instead. ( I63f98 , b/157674865 )