কম্পোজ বিল অফ ম্যাটেরিয়ালস (BOM) আপনাকে শুধুমাত্র BOM-এর সংস্করণ নির্দিষ্ট করে আপনার সমস্ত রচনা লাইব্রেরি সংস্করণ পরিচালনা করতে দেয়। BOM-এরই বিভিন্ন কম্পোজ লাইব্রেরির স্থিতিশীল সংস্করণের লিঙ্ক রয়েছে, যাতে তারা একসঙ্গে ভালোভাবে কাজ করে। আপনার অ্যাপে BOM ব্যবহার করার সময়, কম্পোজ লাইব্রেরি নির্ভরতাগুলিতে আপনাকে কোনো সংস্করণ যোগ করতে হবে না। আপনি যখন BOM সংস্করণ আপডেট করেন, আপনি যে সমস্ত লাইব্রেরি ব্যবহার করছেন সেগুলি স্বয়ংক্রিয়ভাবে তাদের নতুন সংস্করণে আপডেট হয়৷
কোটলিন
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.10.01") 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:2024.10.01') 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' }
কোন কম্পোজ লাইব্রেরি সংস্করণগুলি একটি নির্দিষ্ট BOM সংস্করণে ম্যাপ করা হয়েছে তা খুঁজে বের করতে, BOM থেকে লাইব্রেরি সংস্করণ ম্যাপিং দেখুন৷
কম্পোজ কম্পাইলার লাইব্রেরি কেন BOM-তে অন্তর্ভুক্ত করা হয় না?
কম্পোজ কোটলিন কম্পাইলার এক্সটেনশন (androidx.compose.compiler) কম্পোজ লাইব্রেরি সংস্করণের সাথে সংযুক্ত নয়। পরিবর্তে, এটি Kotlin কম্পাইলার প্লাগইনের সংস্করণগুলির সাথে লিঙ্ক করা হয়েছে এবং কম্পোজের বাকি অংশ থেকে একটি পৃথক ক্যাডেন্সে প্রকাশ করা হয়েছে।
Kotlin 2.0 অনুযায়ী, Kotlin কম্পাইলারের পাশাপাশি কম্পোজ অ্যাপকম্পাইলার পরিচালিত হয় এবং Kotlin কম্পাইলারের মতো একই সংস্করণ ব্যবহার করে। কনফিগারেশনের বিশদ বিবরণের জন্য কম্পোজ কম্পাইলার গ্রেডল প্লাগইন দেখুন।
Kotlin 2.0 এর আগে, আপনাকে নিশ্চিত করতে হবে যে আপনার Kotlin-এর সংস্করণের সাথে সামঞ্জস্যপূর্ণ একটি সংস্করণ ব্যবহার করা হয়েছে। আপনি Kotlin সংস্করণটি খুঁজে পেতে পারেন যা প্লাগইনটির প্রতিটি সংস্করণের সাথে মানচিত্র তৈরি করে Kotlin সামঞ্জস্যতা মানচিত্রে , এবং এটি কিভাবে কনফিগার করতে হয় কম্পোজ কম্পাইলার এ।
BOM-এ যা মনোনীত করা হয়েছে তার চেয়ে আমি কীভাবে একটি ভিন্ন লাইব্রেরি সংস্করণ ব্যবহার করব?
build.gradle
নির্ভরতা বিভাগে, BOM প্ল্যাটফর্মের আমদানি রাখুন। লাইব্রেরি নির্ভরতা আমদানিতে, ওভাররাইডিং সংস্করণটি নির্দিষ্ট করুন। উদাহরণস্বরূপ, আপনি যদি অ্যানিমেশন লাইব্রেরির একটি নতুন সংস্করণ ব্যবহার করতে চান তবে কীভাবে নির্ভরতা ঘোষণা করবেন তা এখানে রয়েছে, BOM-তে যে সংস্করণটি মনোনীত করা হোক না কেন:
কোটলিন
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.10.01") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.8.0-alpha05") // .. }
গ্রোভি
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2024.10.01") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.8.0-alpha05' // .. }
BOM কি স্বয়ংক্রিয়ভাবে আমার অ্যাপে সমস্ত রচনা লাইব্রেরি যোগ করে?
না। আসলে আপনার অ্যাপে কম্পোজ লাইব্রেরি যোগ করতে এবং ব্যবহার করতে, আপনাকে অবশ্যই প্রতিটি লাইব্রেরিকে আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত app/build.gradle) একটি পৃথক নির্ভরতা লাইন হিসাবে ঘোষণা করতে হবে।
BOM ব্যবহার করা নিশ্চিত করে যে আপনার অ্যাপের যেকোনো রচনা লাইব্রেরির সংস্করণগুলি সামঞ্জস্যপূর্ণ, কিন্তু BOM আসলে আপনার অ্যাপে সেই রচনা লাইব্রেরিগুলিকে যোগ করে না।
কম্পোজ লাইব্রেরি সংস্করণ পরিচালনা করার জন্য BOM কেন প্রস্তাবিত উপায়?
সামনের দিকে, রচনা লাইব্রেরিগুলি স্বাধীনভাবে সংস্করণ করা হবে, যার অর্থ সংস্করণ সংখ্যাগুলি তাদের নিজস্ব গতিতে বৃদ্ধি পেতে শুরু করবে। প্রতিটি লাইব্রেরির সর্বশেষ স্থিতিশীল রিলিজ একসাথে পরীক্ষা করা হয়। যাইহোক, প্রতিটি লাইব্রেরির সর্বশেষ স্থিতিশীল সংস্করণগুলি খুঁজে পাওয়া কঠিন হতে পারে, এবং BOM আপনাকে এই সর্বশেষ সংস্করণগুলি স্বয়ংক্রিয়ভাবে ব্যবহার করতে সহায়তা করে।
আমি কি BOM ব্যবহার করতে বাধ্য হচ্ছি?
না। আপনি এখনও প্রতিটি নির্ভরতা সংস্করণ ম্যানুয়ালি যোগ করতে বেছে নিতে পারেন। যাইহোক, আমরা BOM ব্যবহার করার পরামর্শ দিই কারণ এটি একই সময়ে সমস্ত সর্বশেষ স্থিতিশীল সংস্করণ ব্যবহার করা সহজ করে তুলবে।
BOM সংস্করণ ক্যাটালগ সঙ্গে কাজ করে?
হ্যাঁ। আপনি সংস্করণ ক্যাটালগে BOM নিজেই অন্তর্ভুক্ত করতে পারেন এবং অন্যান্য রচনা লাইব্রেরি সংস্করণগুলি বাদ দিতে পারেন:
[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 এর আলফা এবং বিটা সংস্করণগুলি BOM আর্টিফ্যাক্ট নামের সাথে -alpha
এবং -beta
যোগ করে নির্দিষ্ট করা হয়েছে। স্থিতিশীল সংস্করণে কোনো প্রত্যয় নেই।
কোটলিন
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom-alpha:2024.10.01") // or platform("androidx.compose:compose-bom-beta:2024.10.01") implementation(composeBom) // .. }
গ্রোভি
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2024.10.01') // or platform('androidx.compose:compose-bom-beta:2024.10.01') implementation composeBom // .. }
আমি কীভাবে একটি সমস্যা প্রতিবেদন করব বা BOM-এ প্রতিক্রিয়া জানাব?
আপনি আমাদের ইস্যু ট্র্যাকারে সমস্যা ফাইল করতে পারেন।
{% শব্দার্থে %}আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট প্রদর্শিত হয়
- কম্পোজে মেটেরিয়াল ডিজাইন 3
- কম্পোজে সীমাবদ্ধতা লেআউট
- কম্পোজ সম্পদ
কম্পোজ বিল অফ ম্যাটেরিয়ালস (BOM) আপনাকে শুধুমাত্র BOM-এর সংস্করণ নির্দিষ্ট করে আপনার সমস্ত রচনা লাইব্রেরি সংস্করণ পরিচালনা করতে দেয়। BOM-এরই বিভিন্ন কম্পোজ লাইব্রেরির স্থিতিশীল সংস্করণের লিঙ্ক রয়েছে, যাতে তারা একসঙ্গে ভালোভাবে কাজ করে। আপনার অ্যাপে BOM ব্যবহার করার সময়, কম্পোজ লাইব্রেরি নির্ভরতাগুলিতে আপনাকে কোনো সংস্করণ যোগ করতে হবে না। আপনি যখন BOM সংস্করণ আপডেট করেন, আপনি যে সমস্ত লাইব্রেরি ব্যবহার করছেন সেগুলি স্বয়ংক্রিয়ভাবে তাদের নতুন সংস্করণে আপডেট হয়৷
কোটলিন
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.10.01") 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:2024.10.01') 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' }
কোন কম্পোজ লাইব্রেরি সংস্করণগুলি একটি নির্দিষ্ট BOM সংস্করণে ম্যাপ করা হয়েছে তা খুঁজে বের করতে, BOM থেকে লাইব্রেরি সংস্করণ ম্যাপিং দেখুন৷
কম্পোজ কম্পাইলার লাইব্রেরি কেন BOM-তে অন্তর্ভুক্ত করা হয় না?
কম্পোজ কোটলিন কম্পাইলার এক্সটেনশন (androidx.compose.compiler) কম্পোজ লাইব্রেরি সংস্করণের সাথে সংযুক্ত নয়। পরিবর্তে, এটি Kotlin কম্পাইলার প্লাগইনের সংস্করণগুলির সাথে লিঙ্ক করা হয়েছে এবং কম্পোজের বাকি অংশ থেকে একটি পৃথক ক্যাডেন্সে প্রকাশ করা হয়েছে।
Kotlin 2.0 অনুযায়ী, Kotlin কম্পাইলারের পাশাপাশি কম্পোজ অ্যাপকম্পাইলার পরিচালিত হয় এবং Kotlin কম্পাইলারের মতো একই সংস্করণ ব্যবহার করে। কনফিগারেশনের বিশদ বিবরণের জন্য কম্পোজ কম্পাইলার গ্রেডল প্লাগইন দেখুন।
Kotlin 2.0 এর আগে, আপনাকে নিশ্চিত করতে হবে যে আপনার Kotlin-এর সংস্করণের সাথে সামঞ্জস্যপূর্ণ একটি সংস্করণ ব্যবহার করা হয়েছে। আপনি Kotlin সংস্করণটি খুঁজে পেতে পারেন যা প্লাগইনটির প্রতিটি সংস্করণের সাথে মানচিত্র তৈরি করে Kotlin সামঞ্জস্যতা মানচিত্রে , এবং এটি কিভাবে কনফিগার করতে হয় কম্পোজ কম্পাইলার এ।
BOM-এ যা মনোনীত করা হয়েছে তার চেয়ে আমি কীভাবে একটি ভিন্ন লাইব্রেরি সংস্করণ ব্যবহার করব?
build.gradle
নির্ভরতা বিভাগে, BOM প্ল্যাটফর্মের আমদানি রাখুন। লাইব্রেরি নির্ভরতা আমদানিতে, ওভাররাইডিং সংস্করণটি নির্দিষ্ট করুন। উদাহরণস্বরূপ, আপনি যদি অ্যানিমেশন লাইব্রেরির একটি নতুন সংস্করণ ব্যবহার করতে চান তবে কীভাবে নির্ভরতা ঘোষণা করবেন তা এখানে রয়েছে, BOM-তে যে সংস্করণটি মনোনীত করা হোক না কেন:
কোটলিন
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom:2024.10.01") implementation(composeBom) // Override the BOM version when needed implementation("androidx.compose.animation:animation:1.8.0-alpha05") // .. }
গ্রোভি
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform("androidx.compose:compose-bom:2024.10.01") implementation composeBom // Override the BOM version when needed implementation 'androidx.compose.animation:animation:1.8.0-alpha05' // .. }
BOM কি স্বয়ংক্রিয়ভাবে আমার অ্যাপে সমস্ত রচনা লাইব্রেরি যোগ করে?
না। আসলে আপনার অ্যাপে কম্পোজ লাইব্রেরি যোগ করতে এবং ব্যবহার করতে, আপনাকে অবশ্যই প্রতিটি লাইব্রেরিকে আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত app/build.gradle) একটি পৃথক নির্ভরতা লাইন হিসাবে ঘোষণা করতে হবে।
BOM ব্যবহার করা নিশ্চিত করে যে আপনার অ্যাপের যেকোনো রচনা লাইব্রেরির সংস্করণগুলি সামঞ্জস্যপূর্ণ, কিন্তু BOM আসলে আপনার অ্যাপে সেই রচনা লাইব্রেরিগুলিকে যোগ করে না।
কম্পোজ লাইব্রেরি সংস্করণ পরিচালনা করার জন্য BOM কেন প্রস্তাবিত উপায়?
সামনের দিকে, রচনা লাইব্রেরিগুলি স্বাধীনভাবে সংস্করণ করা হবে, যার অর্থ সংস্করণ সংখ্যাগুলি তাদের নিজস্ব গতিতে বৃদ্ধি পেতে শুরু করবে। প্রতিটি লাইব্রেরির সর্বশেষ স্থিতিশীল রিলিজ একসাথে পরীক্ষা করা হয়। যাইহোক, প্রতিটি লাইব্রেরির সর্বশেষ স্থিতিশীল সংস্করণগুলি খুঁজে পাওয়া কঠিন হতে পারে, এবং BOM আপনাকে এই সর্বশেষ সংস্করণগুলি স্বয়ংক্রিয়ভাবে ব্যবহার করতে সহায়তা করে।
আমি কি BOM ব্যবহার করতে বাধ্য হচ্ছি?
না। আপনি এখনও প্রতিটি নির্ভরতা সংস্করণ ম্যানুয়ালি যোগ করতে বেছে নিতে পারেন। যাইহোক, আমরা BOM ব্যবহার করার পরামর্শ দিই কারণ এটি একই সময়ে সমস্ত সর্বশেষ স্থিতিশীল সংস্করণ ব্যবহার করা সহজ করে তুলবে।
BOM সংস্করণ ক্যাটালগ সঙ্গে কাজ করে?
হ্যাঁ। আপনি সংস্করণ ক্যাটালগে BOM নিজেই অন্তর্ভুক্ত করতে পারেন এবং অন্যান্য রচনা লাইব্রেরি সংস্করণগুলি বাদ দিতে পারেন:
[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 এর আলফা এবং বিটা সংস্করণগুলি BOM আর্টিফ্যাক্ট নামের সাথে -alpha
এবং -beta
যোগ করে নির্দিষ্ট করা হয়েছে। স্থিতিশীল সংস্করণে কোনো প্রত্যয় নেই।
কোটলিন
dependencies { // Specify the Compose BOM with a version definition val composeBom = platform("androidx.compose:compose-bom-alpha:2024.10.01") // or platform("androidx.compose:compose-bom-beta:2024.10.01") implementation(composeBom) // .. }
গ্রোভি
dependencies { // Specify the Compose BOM with a version definition Dependency composeBom = platform('androidx.compose:compose-bom-alpha:2024.10.01') // or platform('androidx.compose:compose-bom-beta:2024.10.01') implementation composeBom // .. }
আমি কীভাবে একটি সমস্যা প্রতিবেদন করব বা BOM-এ প্রতিক্রিয়া জানাব?
আপনি আমাদের ইস্যু ট্র্যাকারে সমস্যা ফাইল করতে পারেন।
{% শব্দার্থে %}আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট প্রদর্শিত হয়
- কম্পোজে মেটেরিয়াল ডিজাইন 3
- কম্পোজে সীমাবদ্ধতা লেআউট
- কম্পোজ সম্পদ