পূর্বে, একটি KMP প্রকল্পে অ্যান্ড্রয়েডকে সংহত করার একমাত্র উপায় ছিল নিয়মিত অ্যান্ড্রয়েড লাইব্রেরি গ্রেডল প্লাগইন: com.android.library
ব্যবহার করা। যাইহোক, এই পদ্ধতিটি এখন ডেডিকেটেড com.android.kotlin.multiplatform.library
প্লাগইন, যাকে Android-KMP প্লাগইন হিসাবেও উল্লেখ করা হয়, এর পক্ষে অবমূল্যায়ন করা হয়েছে। এই নির্দেশিকা ব্যাখ্যা করে কিভাবে নতুন প্লাগইনে স্থানান্তর করতে হয়।
মূল বৈশিষ্ট্য এবং পার্থক্য
অ্যান্ড্রয়েড-কেএমপি প্লাগইন ( com.android.kotlin.multiplatform.library
) বিশেষভাবে KMP প্রকল্পের জন্য তৈরি করা হয়েছে এবং বিভিন্ন মূল দিকগুলিতে প্রচলিত com.android.library
প্লাগইন থেকে আলাদা:
- একক ভেরিয়েন্ট আর্কিটেকচার: প্লাগইনটি একটি একক ভেরিয়েন্টের সাথে কাজ করে, পণ্যের স্বাদ এবং বিল্ড প্রকারের জন্য সমর্থন সরিয়ে দিয়ে বিল্ড প্রক্রিয়াটিকে স্ট্রিমলাইন করে যা সাধারণত স্ট্যান্ডার্ড অ্যান্ড্রয়েড লাইব্রেরি প্রকল্পে পাওয়া যায়। এটি কনফিগারেশনকে সহজ করে এবং KMP অ্যান্ড্রয়েড লাইব্রেরির জন্য বিল্ড কর্মক্ষমতা বাড়ায়।
- কেএমপির জন্য অপ্টিমাইজ করা হয়েছে: প্লাগইনটি বিশেষভাবে কোটলিন মাল্টিপ্ল্যাটফর্ম লাইব্রেরির জন্য ডিজাইন করা হয়েছে, শেয়ার করা কোটলিন কোড এবং আন্তঃকার্যক্ষমতার উপর ফোকাস করে। ফলস্বরূপ, এটি অ্যান্ড্রয়েড-নির্দিষ্ট নেটিভ বিল্ড, এআইডিএল (অ্যান্ড্রয়েড ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ) এবং রেন্ডারস্ক্রিপ্টের জন্য সমর্থন বাদ দেয়, যা সাধারণত KMP শেয়ার করা কোড প্রসঙ্গে প্রাসঙ্গিক নয়।
- পরীক্ষাগুলি ডিফল্টরূপে অক্ষম করা হয়েছে: একটি মাল্টিপ্ল্যাটফর্ম পরিবেশে নির্মাণের গতি আরও উন্নত করতে, পরীক্ষাগুলি ডিফল্টরূপে অক্ষম করা হয়৷ আপনার প্রকল্পের জন্য প্রয়োজন হলে আপনি স্পষ্টভাবে পরীক্ষা সক্ষম করতে পারেন। এটি হোস্টের পরীক্ষা (ইউনিট পরীক্ষা) এবং ডিভাইসের পরীক্ষা (ইনস্ট্রুমেন্টেশন পরীক্ষা) উভয় ক্ষেত্রেই প্রযোজ্য।
- কোনো টপ-লেভেল অ্যান্ড্রয়েড এক্সটেনশন নেই: প্লাগইনটি আপনার গ্র্যাডল বিল্ড ফাইলে কোনো টপ-লেভেল
android
এক্সটেনশন তৈরি করে না। কোটলিন মাল্টিপ্ল্যাটফর্ম ডিএসএল-এর মধ্যে একটিandroidLibrary
ব্লক দিয়ে কনফিগারেশন পরিচালনা করা হয়, একটি সামঞ্জস্যপূর্ণ KMP প্রকল্প কাঠামো বজায় রাখা হয়। - অপ্ট-ইন জাভা সংকলন: জাভা সংকলন ডিফল্টরূপে সক্রিয় করা হয় না। যদি আপনার KMP লাইব্রেরিতে জাভা-ভিত্তিক কোড কম্পাইল করতে হয়, তাহলে আপনাকে অবশ্যই আপনার
kotlin
ব্লকেরandroidLibrary
কনফিগারেশন ব্লকের মধ্যেwithJava()
API ব্যবহার করে স্পষ্টভাবে নির্বাচন করতে হবে। এটি সংকলন প্রক্রিয়ার উপর সূক্ষ্ম নিয়ন্ত্রণের জন্য অনুমতি দেয় এবং জাভা-ভিত্তিক কোড সংকলনের প্রয়োজন না হলে বিল্ড সময় উন্নত করতে পারে।
মাইগ্রেশনের সুবিধা
Android-KMP প্লাগইন KMP প্রকল্পগুলির জন্য নিম্নলিখিত সুবিধাগুলি প্রদান করে:
- উন্নত বিল্ড পারফরম্যান্স এবং স্থিতিশীলতা: Android-KMP প্লাগইনটি কেএমপি প্রকল্পগুলির মধ্যে অপ্টিমাইজ করা বিল্ড গতি এবং উন্নত স্থিতিশীলতার জন্য ইঞ্জিনিয়ার করা হয়েছে। এর সুবিন্যস্ত আর্কিটেকচার এবং কেএমপি ওয়ার্কফ্লোতে ফোকাস একটি আরও দক্ষ এবং নির্ভরযোগ্য বিল্ড প্রক্রিয়াতে অবদান রাখে।
- উন্নত আইডিই ইন্টিগ্রেশন: প্লাগইনটি অ্যান্ড্রয়েড স্টুডিও এবং অন্যান্য কোটলিন আইডিই-এর সাথে উচ্চতর ইন্টিগ্রেশন প্রদান করে। এটি KMP অ্যান্ড্রয়েড লাইব্রেরিগুলির সাথে কাজ করার সময় আরও ভাল কোড সমাপ্তি, নেভিগেশন, ডিবাগিং এবং সামগ্রিক বিকাশকারী অভিজ্ঞতার দিকে নিয়ে যায়।
- সরলীকৃত প্রজেক্ট কনফিগারেশন: ভেরিয়েন্টের মত অ্যান্ড্রয়েড-নির্দিষ্ট জটিলতা দূর করে, Android-KMP প্লাগইন KMP প্রোজেক্টের কনফিগারেশনকে সহজ করে। এর ফলে KMP অ্যান্ড্রয়েড ডেভেলপমেন্টে নতুন ডেভেলপারদের জন্য ক্লিনার, আরও রক্ষণাবেক্ষণযোগ্য বিল্ড ফাইল এবং লার্নিং কার্ভ কমে যায়। পূর্বে,
com.android.library
প্লাগইন ব্যবহার করে একটি KMP প্রজেক্টে অ্যান্ড্রয়েডকে সংহত করার সময়, মাল্টিপ্ল্যাটফর্ম কাঠামোর মধ্যে অ্যান্ড্রয়েড গ্রেডল প্লাগইন এবং কোটলিন গ্রেডল প্লাগইনের মধ্যে ইন্টারপ্লে কখনও কখনও বিভ্রান্তিকর সোর্স সেট নামগুলির পরিণতি ঘটায়। উদাহরণ স্বরূপ, অ্যান্ড্রয়েড ইন্সট্রুমেন্টেড টেস্ট কনফিগার করার জন্য উৎসর্গীকৃত সোর্স সেটটির নাম ছিলandroidAndroidTest
। এই নামকরণ কনভেনশনটি আদর্শ KMP প্রকল্প কাঠামোর সাথে পরিচিত ডেভেলপারদের জন্য কম স্বজ্ঞাত ছিল। - অফিসিয়াল এবং প্রস্তাবিত সমাধান:
com.android.kotlin.multiplatform.library
প্লাগইন হলcom.android.library
প্লাগইন ব্যবহার করে KMP লাইব্রেরিতে Android টার্গেট যোগ করার পূর্ববর্তী পদ্ধতির অফিসিয়াল প্রতিস্থাপন। KMP-এর জন্যcom.android.library
প্লাগইনটি ব্যবহার করা চালিয়ে গেলে JetBrains দ্বারা আর সমর্থিত হবে না এবং ভবিষ্যতের আপডেট এবং উন্নতি থেকে উপকৃত হবে না।
একটি প্রকল্পে Android-KMP প্লাগইন প্রয়োগ করুন
আপনার প্রকল্পে Android-KMP প্লাগইন প্রয়োগ করার দুটি প্রাথমিক উপায় রয়েছে: * বিদ্যমান KMP লাইব্রেরি মডিউলগুলির জন্য, আপনার Gradle ফাইলগুলি ম্যানুয়ালি সম্পাদনা করুন ৷ * নতুন KMP লাইব্রেরি মডিউলের জন্য, Android Studio UI থেকে সরাসরি নতুন মডিউল তৈরি করুন ।
একটি বিদ্যমান মডিউলে প্লাগইন প্রয়োগ করুন
একটি বিদ্যমান KMP লাইব্রেরি মডিউলে Android-KMP প্লাগইন প্রয়োগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
আপনার সংস্করণ ক্যাটালগ TOML ফাইল খুলুন এবং
plugins
বিভাগে নিম্নলিখিত যোগ করুন:[plugins] kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "KOTLIN_PLUGIN_VERSION" } android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "ANDROID_KMP_PLUGIN_VERSION" }
KOTLIN_PLUGIN_VERSION এবং ANDROID_KMP_PLUGIN_VERSION আপনি যে প্রকৃত সংস্করণগুলি ব্যবহার করছেন তার সাথে প্রতিস্থাপন করুন৷
আপনার KMP লাইব্রেরি মডিউলের রুটে আপনার
build.gradle.kts
(Kotlin) বাbuild.gradle
(Groovy) ফাইল খুলুন।plugins
ব্লকের মধ্যে আপনার ফাইলের শীর্ষে প্লাগইন প্রয়োগ করুন:কোটলিন
plugins { alias(libs.plugins.kotlin.multiplatform) apply false // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) apply false }
গ্রোভি
plugins { alias(libs.plugins.kotlin.multiplatform) apply false // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) apply false }
অ্যান্ড্রয়েড লক্ষ্য নির্ধারণ করতে 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
ব্লক কনফিগার করার পরে, পরিবর্তনগুলি প্রয়োগ করতে আপনার গ্রেডল প্রকল্প সিঙ্ক করুন।
প্লাগইন দিয়ে একটি নতুন মডিউল তৈরি করুন
আপনি সরাসরি Android স্টুডিওতে একটি নতুন Kotlin Multiplatform লাইব্রেরি মডিউল তৈরি করতে পারেন। এটি Android-KMP প্লাগইন সহ প্রয়োজনীয় প্লাগইনগুলি স্বয়ংক্রিয়ভাবে প্রয়োগ করে৷ অ্যান্ড্রয়েড স্টুডিওর সাথে কীভাবে একটি নতুন কেএমপি লাইব্রেরি মডিউল তৈরি করবেন সে সম্পর্কে আরও নির্দেশনার জন্য, একটি বিদ্যমান প্রকল্পে কোটলিন মাল্টিপ্ল্যাটফর্ম যুক্ত করুন দেখুন।
সামগ্রিক মাল্টিপ্ল্যাটফর্ম ইকোসিস্টেম এবং আরও উন্নত কনফিগারেশন সম্পর্কে আরও তথ্যের জন্য, অফিসিয়াল কোটলিন মাল্টিপ্ল্যাটফর্ম ডকুমেন্টেশন দেখুন।