লাইব্রেরি মডিউল কনফিগার করার জন্য কোটলিন মাল্টিপ্ল্যাটফর্মের একটি গ্রেডল প্লাগইন রয়েছে।
com.android.kotlin.multiplatform.library
প্লাগইন হল নিয়মিত অ্যান্ড্রয়েড লাইব্রেরি গ্রেডল প্লাগইন ( com.android.library
) ব্যবহার করে KMP লাইব্রেরিতে Android টার্গেট যোগ করার আগের পদ্ধতির অফিসিয়াল প্রতিস্থাপন।
পূর্ববর্তী পদ্ধতিটি এখন প্লাগইনের পক্ষে অবহেলিত হয়েছে, এটিকে Android-KMP প্লাগইনও বলা হয়। KMP-এর জন্য com.android.library
প্লাগইন ব্যবহার চালিয়ে যাওয়া জেটব্রেইন দ্বারা আর সমর্থিত হবে না এবং ভবিষ্যতের আপডেট এবং উন্নতি থেকে উপকৃত হবে না।
এই প্লাগইনে স্থানান্তর করতে, Android-KMP প্লাগইন প্রয়োগ করুন বিভাগটি পড়ুন।
মূল বৈশিষ্ট্য এবং পার্থক্য
অ্যান্ড্রয়েড-কেএমপি প্লাগইনটি বিশেষভাবে কেএমপি প্রজেক্টের জন্য তৈরি করা হয়েছে এবং বিভিন্ন মূল দিকগুলিতে স্ট্যান্ডার্ড com.android.library
প্লাগইন থেকে আলাদা:
একক ভেরিয়েন্ট আর্কিটেকচার: প্লাগইনটি একটি একক বৈকল্পিক ব্যবহার করে, পণ্যের স্বাদ এবং বিল্ড প্রকারের জন্য সমর্থন অপসারণ করে, যা কনফিগারেশনকে সহজ করে এবং বিল্ড কর্মক্ষমতা বাড়ায়।
কেএমপির জন্য অপ্টিমাইজ করা হয়েছে: প্লাগইনটি কেএমপি লাইব্রেরির জন্য ডিজাইন করা হয়েছে, শেয়ার্ড কোটলিন কোড এবং ইন্টারঅপারেবিলিটির উপর ফোকাস করে, অ্যান্ড্রয়েড-নির্দিষ্ট নেটিভ বিল্ড, AIDL এবং রেন্ডারস্ক্রিপ্টের জন্য সমর্থন বাদ দিয়ে।
ডিফল্টরূপে পরীক্ষা নিষ্ক্রিয়: ইউনিট এবং ডিভাইস (ইনস্ট্রুমেন্টেশন) উভয় পরীক্ষাই ডিফল্টরূপে বিল্ড গতি বাড়ানোর জন্য নিষ্ক্রিয় করা হয়। প্রয়োজনে আপনি তাদের সক্ষম করতে পারেন।
কোন টপ-লেভেল অ্যান্ড্রয়েড এক্সটেনশন নেই: একটি সামঞ্জস্যপূর্ণ কেএমপি প্রকল্প কাঠামো বজায় রেখে গ্রেডল কেএমপি ডিএসএল-এর মধ্যে একটি
androidLibrary
ব্লকের সাথে কনফিগারেশন পরিচালনা করা হয়। কোনো শীর্ষ-স্তরেরandroid
এক্সটেনশন ব্লক নেই।অপ্ট-ইন জাভা সংকলন: জাভা সংকলন ডিফল্টরূপে অক্ষম করা হয়। এটি সক্রিয় করতে
androidLibrary
ব্লকেwithJava()
ব্যবহার করুন। যখন জাভা সংকলনের প্রয়োজন হয় না তখন এটি বিল্ড সময়কে উন্নত করে।
অ্যান্ড্রয়েড-কেএমপি লাইব্রেরি প্লাগইনের সুবিধা
Android-KMP প্লাগইন KMP প্রকল্পগুলির জন্য নিম্নলিখিত সুবিধাগুলি প্রদান করে:
উন্নত বিল্ড পারফরম্যান্স এবং স্থিতিশীলতা: এটি কেএমপি প্রকল্পগুলির মধ্যে অপ্টিমাইজ করা বিল্ড গতি এবং উন্নত স্থিতিশীলতার জন্য ইঞ্জিনিয়ার করা হয়েছে। এটি কেএমপি ওয়ার্কফ্লোগুলির উপর ফোকাস একটি আরও দক্ষ এবং নির্ভরযোগ্য বিল্ড প্রক্রিয়াতে অবদান রাখে।
উন্নত আইডিই ইন্টিগ্রেশন: এটি KMP অ্যান্ড্রয়েড লাইব্রেরিগুলির সাথে কাজ করার সময় আরও ভাল কোড সমাপ্তি, নেভিগেশন, ডিবাগিং এবং সামগ্রিক বিকাশকারী অভিজ্ঞতা প্রদান করে।
সরলীকৃত প্রকল্প কনফিগারেশন: প্লাগইনটি বিল্ড ভেরিয়েন্টের মতো অ্যান্ড্রয়েড-নির্দিষ্ট জটিলতাগুলি সরিয়ে KMP প্রকল্পগুলির জন্য কনফিগারেশনকে সহজ করে। এটি পরিষ্কার এবং আরও রক্ষণাবেক্ষণযোগ্য বিল্ড ফাইলের দিকে নিয়ে যায়। পূর্বে, KMP প্রজেক্টে
com.android.library
প্লাগইন ব্যবহার করলে বিভ্রান্তিকর উৎস সেট নাম তৈরি হতে পারে, যেমনandroidAndroidTest
। এই নামকরণ কনভেনশনটি আদর্শ KMP প্রকল্প কাঠামোর সাথে পরিচিত ডেভেলপারদের জন্য কম স্বজ্ঞাত ছিল।
একটি বিদ্যমান মডিউলে Android-KMP প্লাগইন প্রয়োগ করুন
একটি বিদ্যমান KMP লাইব্রেরি মডিউলে Android-KMP প্লাগইন প্রয়োগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
সংস্করণ ক্যাটালগে প্লাগইন ঘোষণা করুন। সংস্করণ ক্যাটালগ TOML ফাইলটি খুলুন (সাধারণত
gradle/libs.versions.toml
) এবং প্লাগইন সংজ্ঞা বিভাগ যোগ করুন:# To check the version number of the latest Kotlin release, go to # https://kotlinlang.org/docs/releases.html [versions] androidGradlePlugin = "8.12.0" kotlin = "KOTLIN_VERSION" [plugins] kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "androidGradlePlugin" }
রুট বিল্ড ফাইলে প্লাগইন ঘোষণা প্রয়োগ করুন। আপনার প্রকল্পের রুট ডিরেক্টরিতে অবস্থিত
build.gradle.kts
ফাইলটি খুলুন।apply false
ব্যবহার করেplugins
ব্লকে প্লাগইন উপনাম যোগ করুন। এটি রুট প্রকল্পে প্লাগইন যুক্তি প্রয়োগ না করেই সমস্ত সাবপ্রকল্পের জন্য প্লাগইন উপনাম উপলব্ধ করে।কোটলিন
// Root build.gradle.kts file plugins { alias(libs.plugins.kotlin.multiplatform) apply false // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) apply false }
গ্রোভি
// Root build.gradle file plugins { alias(libs.plugins.kotlin.multiplatform) apply false // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) apply false }
একটি KMP লাইব্রেরি মডিউল বিল্ড ফাইলে প্লাগইনটি প্রয়োগ করুন। আপনার KMP লাইব্রেরি মডিউলে
build.gradle.kts
ফাইলটি খুলুন এবংplugins
ব্লকের মধ্যে আপনার ফাইলের শীর্ষে প্লাগইনটি প্রয়োগ করুন:কোটলিন
// Module-specific build.gradle.kts file plugins { alias(libs.plugins.kotlin.multiplatform) // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) }
গ্রোভি
// Module-specific build.gradle file plugins { alias(libs.plugins.kotlin.multiplatform) // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) }
Android KMP লক্ষ্য কনফিগার করুন। অ্যান্ড্রয়েড লক্ষ্য নির্ধারণ করতে Kotlin মাল্টিপ্ল্যাটফর্ম ব্লক (
kotlin
) কনফিগার করুন।kotlin
ব্লকের মধ্যে,androidLibrary
ব্যবহার করে Android লক্ষ্য নির্দিষ্ট করুন:কোটলিন
kotlin { androidLibrary { namespace = "com.example.kmpfirstlib" compileSdk = 33 minSdk = 24 withJava() // enable java compilation support withHostTestBuilder {}.configure {} withDeviceTestBuilder { sourceSetTreeName = "test" } compilations.configureEach { compilerOptions.configure { jvmTarget.set( org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 ) } } } sourceSets { androidMain { dependencies { // Add Android-specific dependencies here } } getByName("androidHostTest") { dependencies { } } getByName("androidDeviceTest") { dependencies { } } } // ... other targets (JVM, iOS, etc.) ... }
গ্রোভি
kotlin { androidLibrary { namespace = "com.example.kmpfirstlib" compileSdk = 33 minSdk = 24 withJava() // enable java compilation support withHostTestBuilder {}.configure {} withDeviceTestBuilder { it.sourceSetTreeName = "test" } compilations.configureEach { compilerOptions.options.jvmTarget.set( org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 ) } } sourceSets { androidMain { dependencies { } } androidHostTest { dependencies { } } androidDeviceTest { dependencies { } } } // ... other targets (JVM, iOS, etc.) ... }
পরিবর্তনগুলি প্রয়োগ করুন। প্লাগইন প্রয়োগ করার পরে এবং
kotlin
ব্লক কনফিগার করার পরে, পরিবর্তনগুলি প্রয়োগ করতে আপনার গ্রেডল প্রকল্প সিঙ্ক করুন।
আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট প্রদর্শিত হয়
- আপনার পরিবেশ সেট আপ করুন
- একটি প্রকল্পে KMP মডিউল যোগ করুন