কম্পোজ বিল অফ মেটেরিয়ালস (BOM) আপনাকে শুধুমাত্র BOM-এর ভার্সন উল্লেখ করে আপনার সমস্ত কম্পোজ লাইব্রেরির ভার্সন পরিচালনা করতে দেয়। BOM-এর মধ্যেই বিভিন্ন কম্পোজ লাইব্রেরির স্থিতিশীল ভার্সনগুলোর লিঙ্ক এমনভাবে থাকে, যাতে সেগুলো একসাথে ভালোভাবে কাজ করে। আপনার অ্যাপে BOM ব্যবহার করার সময়, কম্পোজ লাইব্রেরির ডিপেন্ডেন্সিগুলোতে আলাদাভাবে কোনো ভার্সন যোগ করার প্রয়োজন হয় না। আপনি যখন BOM-এর ভার্সন আপডেট করেন, তখন আপনার ব্যবহৃত সমস্ত লাইব্রেরি স্বয়ংক্রিয়ভাবে তাদের নতুন ভার্সনে আপডেট হয়ে যায়।
কোটলিন
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2026.03.00") implementation(composeBom) testImplementation(composeBom) androidTestImplementation(composeBom) // Specify Compose library dependencies without a version definition implementation("androidx.compose.foundation:foundation") // .. testImplementation("androidx.compose.ui:ui-test-junit4") // .. androidTestImplementation("androidx.compose.ui:ui-test") }
গ্রুভি
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom:2026.03.00') implementation composeBom testImplementation composeBom androidTestImplementation composeBom // Specify Compose library dependencies without a version definition implementation 'androidx.compose.foundation:foundation' // .. testImplementation 'androidx.compose.ui:ui-test-junit4' // .. androidTestImplementation 'androidx.compose.ui:ui-test' }
কোন Compose লাইব্রেরি সংস্করণগুলি একটি নির্দিষ্ট BOM সংস্করণের সাথে ম্যাপ করা আছে তা জানতে, BOM থেকে লাইব্রেরি সংস্করণের ম্যাপিং দেখুন।
কেন Compose Compiler লাইব্রেরিটি BOM-এ অন্তর্ভুক্ত করা হয় না?
কম্পোজ কোটলিন কম্পাইলার এক্সটেনশন (androidx.compose.compiler) কম্পোজ লাইব্রেরির ভার্সনগুলোর সাথে লিঙ্ক করা থাকে না। এর পরিবর্তে, এটি কোটলিন কম্পাইলার প্লাগইনের ভার্সনগুলোর সাথে লিঙ্ক করা থাকে এবং কম্পোজের বাকি অংশ থেকে আলাদা সময়ে রিলিজ করা হয়।
কোটলিন ২.০ থেকে, কম্পোজ অ্যাপকম্পাইলারটি কোটলিন কম্পাইলারের পাশাপাশি পরিচালিত হয় এবং কোটলিন কম্পাইলারের একই সংস্করণ ব্যবহার করে। কনফিগারেশনের বিস্তারিত জানতে কম্পোজ কম্পাইলার গ্র্যাডল প্লাগইন দেখুন।
Kotlin 2.0-এর পূর্ববর্তী সংস্করণগুলিতে, আপনার Kotlin সংস্করণের সাথে সামঞ্জস্যপূর্ণ কম্পাইলার সংস্করণ শনাক্ত করতে Compose to Kotlin Compatibility Map দেখুন এবং এটি কনফিগার করার নির্দেশনার জন্য Compose Compiler দেখুন।
BOM-এ নির্ধারিত সংস্করণের চেয়ে ভিন্ন লাইব্রেরি সংস্করণ আমি কীভাবে ব্যবহার করব?
build.gradle dependencies সেকশনে, BOM প্ল্যাটফর্মের ইম্পোর্টটি রাখুন। লাইব্রেরি ডিপেন্ডেন্সি ইম্পোর্ট করার সময়, ওভাররাইডিং ভার্সনটি উল্লেখ করুন। উদাহরণস্বরূপ, BOM-এ যে ভার্সনই নির্দিষ্ট করা থাকুক না কেন, আপনি যদি অ্যানিমেশন লাইব্রেরির একটি নতুন ভার্সন ব্যবহার করতে চান, তাহলে ডিপেন্ডেন্সিগুলো এভাবে ডিক্লেয়ার করতে হবে:
কোটলিন
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2026.03.00") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.11.0-beta01") // .. }
গ্রুভি
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2026.03.00") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.11.0-beta01' // .. }
BOM কি স্বয়ংক্রিয়ভাবে আমার অ্যাপে সমস্ত Compose লাইব্রেরি যুক্ত করে দেয়?
না। আপনার অ্যাপে কম্পোজ লাইব্রেরিগুলো প্রকৃতপক্ষে যোগ করতে ও ব্যবহার করতে হলে, আপনাকে অবশ্যই আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত app/build.gradle) প্রতিটি লাইব্রেরিকে একটি আলাদা ডিপেন্ডেন্সি লাইন হিসেবে ঘোষণা করতে হবে।
BOM ব্যবহার করে আপনার অ্যাপে থাকা যেকোনো Compose লাইব্রেরির ভার্সনগুলো সামঞ্জস্যপূর্ণ কিনা তা যাচাই করা যায়, কিন্তু BOM প্রকৃতপক্ষে সেই Compose লাইব্রেরিগুলোকে আপনার অ্যাপে যুক্ত করে না।
কম্পোজ লাইব্রেরির ভার্সনগুলো পরিচালনা করার জন্য BOM কেন প্রস্তাবিত পদ্ধতি?
এখন থেকে, কম্পোজ লাইব্রেরিগুলো স্বাধীনভাবে ভার্সন করা হবে, যার মানে হলো ভার্সন নম্বরগুলো নিজস্ব গতিতে বাড়তে শুরু করবে। প্রতিটি লাইব্রেরির সর্বশেষ স্থিতিশীল রিলিজগুলো একসাথে পরীক্ষা করা হয়। তবে, প্রতিটি লাইব্রেরির সর্বশেষ স্থিতিশীল ভার্সন খুঁজে বের করা কঠিন হতে পারে, এবং BOM আপনাকে এই সর্বশেষ ভার্সনগুলো স্বয়ংক্রিয়ভাবে ব্যবহার করতে সাহায্য করে।
আমি কি BOM ব্যবহার করতে বাধ্য?
না। আপনি চাইলে প্রতিটি ডিপেন্ডেন্সি ভার্সন ম্যানুয়ালি যোগ করতে পারেন। তবে, আমরা BOM ব্যবহার করার পরামর্শ দিই, কারণ এর মাধ্যমে একই সাথে সব লেটেস্ট স্টেবল ভার্সন ব্যবহার করা সহজ হবে।
BOM কি ভার্সন ক্যাটালগের সাথে কাজ করে?
হ্যাঁ। আপনি ভার্সন ক্যাটালগে সরাসরি BOM অন্তর্ভুক্ত করতে পারেন এবং অন্যান্য Compose লাইব্রেরি ভার্সনগুলো বাদ দিতে পারেন:
[libraries]
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
আপনার মডিউলের build.gradle ফাইলে BOM ইম্পোর্ট করতে ভুলবেন না:
কোটলিন
dependencies { val composeBom = platform(libs.androidx.compose.bom) implementation(composeBom) androidTestImplementation(composeBom) // import Compose dependencies as usual }
গ্রুভি
dependencies { Dependency composeBom = platform(libs.androidx.compose.bom) implementation composeBom androidTestImplementation(composeBom) // import Compose dependencies as usual }
আমি যদি কম্পোজ লাইব্রেরির আলফা বা বিটা সংস্করণগুলো ব্যবহার করে দেখতে চাই, তাহলে কী হবে?
তিনটি কম্পোজ BOM উপলব্ধ আছে। প্রতিটি BOM হলো কম্পোজ লাইব্রেরিগুলোর সর্বশেষ উপলব্ধ সংস্করণগুলোর একটি নির্দিষ্ট সময়ের চিত্র।
- স্থিতিশীল - এতে প্রতিটি লাইব্রেরির সর্বশেষ স্থিতিশীল সংস্করণ রয়েছে।
- বিটা - এতে প্রতিটি লাইব্রেরির সর্বশেষ বিটা, রিলিজ ক্যান্ডিডেট (RC), বা স্থিতিশীল সংস্করণ রয়েছে।
- আলফা - এতে প্রতিটি লাইব্রেরির সর্বশেষ আলফা, বিটা, আরসি বা স্টেবল সংস্করণ রয়েছে।
BOM আর্টিফ্যাক্ট নামের সাথে -alpha এবং -beta যোগ করে BOM-এর আলফা ও বিটা সংস্করণ নির্দিষ্ট করা হয়। স্থিতিশীল সংস্করণের কোনো সাফিক্স থাকে না।
কোটলিন
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom-alpha:2026.03.00") // or platform("androidx.compose:compose-bom-beta:2026.03.00") implementation(composeBom) // .. }
গ্রুভি
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2026.03.00') // or platform('androidx.compose:compose-bom-beta:2026.03.00') implementation composeBom // .. }
আমি কীভাবে BOM-এর বিষয়ে কোনো সমস্যা জানাতে বা মতামত দিতে পারি?
আপনি আমাদের ইস্যু ট্র্যাকারে সমস্যাগুলো জানাতে পারেন।
{% হুবহু %}আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলেও লিঙ্কের লেখা প্রদর্শিত হয়।
- কম্পোজে ম্যাটেরিয়াল ডিজাইন ৩
- কম্পোজে কনস্ট্রেইন্টলেআউট
- কম্পোজে রিসোর্স