अपने Android प्रोजेक्ट में Kotlin Multiplatform (केएमपी) मॉड्यूल बनाने के लिए, Kotlin Multiplatform Shared Module टेंप्लेट का इस्तेमाल करें. यह टेंप्लेट, Android Studio Meerkat और Android Gradle प्लगिन 8.8.0 और इसके बाद के वर्शन में उपलब्ध है.
यह मॉड्यूल टेंप्लेट, Android और iOS प्लैटफ़ॉर्म को टारगेट करने वाले कम से कम कॉन्फ़िगरेशन के साथ, नया मॉड्यूल बनाने की प्रोसेस को ऑटोमेट करता है. केएमपी, डेस्कटॉप और वेब जैसे अन्य टारगेट के साथ भी काम करता है. इन्हें बाद में मॉड्यूल में जोड़ा जा सकता है. पूरी सूची देखने के लिए, इस्तेमाल किए जा सकने वाले प्लैटफ़ॉर्म की स्थिरता देखें. टारगेट तय करने के लिए, Multiplatform Gradle DSL रेफ़रंस में टारगेट देखें.
शेयर किया गया केएमपी मॉड्यूल सेट अप करना
शेयर किया गया केएमपी मॉड्यूल बनाने के लिए, यह तरीका अपनाएं:
- File > New > New Module को चुनें
- Templates पैनल में, Kotlin Multiplatform Shared Module टेंप्लेट चुनें:
टेंप्लेट में ये फ़ील्ड होते हैं:
- Module name – इससे Gradle मॉड्यूल का नाम तय होता है. साथ ही, iOS फ़्रेमवर्क का नाम भी तय होता है. इसे बाद में बदला जा सकता है
- पैकेज का नाम – इससे इस मॉड्यूल में मौजूद फ़ाइलों के लिए, पैकेज का नाम तय होता है
- Finish पर क्लिक करें और Gradle को प्रोजेक्ट के साथ सिंक होने दें. आपको नई मॉड्यूल फ़ाइलों को सोर्स कंट्रोल में जोड़ने के लिए भी कहा जा सकता है.
यह प्रोसेस पूरी होने के बाद, Android Studio का प्रोजेक्ट व्यू, हर प्लैटफ़ॉर्म के लिए सोर्ससेट के साथ-साथ नया शेयर किया गया मॉड्यूल दिखाता है.
शेयर किए गए मॉड्यूल को Android ऐप्लिकेशन से लिंक करना
मॉड्यूल विज़र्ड, नए मॉड्यूल को किसी मौजूदा मॉड्यूल की डिपेंडेंसी के तौर पर नहीं जोड़ता. अगले चरण के तौर पर, आपको शेयर किए गए मॉड्यूल को अपने किसी मौजूदा Gradle मॉड्यूल से लिंक करना होगा. यह प्रोसेस, अन्य Android डिपेंडेंसी की तरह ही है:
dependencies {
...
implementation(project(":shared"))
}
इस सुविधा को चालू करने के बाद, कोड को सामान्य तरीके से ऐक्सेस किया जा सकता है. Android ऐप्लिकेशन से, androidMain या commonMain में मौजूद कोड को ऐक्सेस किया जा सकता है.
Kotlin Multiplatform प्रोजेक्ट के स्ट्रक्चर के बारे में ज़्यादा जानने के लिए, Kotlin Multiplatform प्रोजेक्ट के स्ट्रक्चर की बुनियादी जानकारी देखें
iOS ऐप्लिकेशन में शेयर किया गया मॉड्यूल सेट अप करना
Swift, Kotlin मॉड्यूल का सीधे तौर पर इस्तेमाल नहीं कर सकता. इसके लिए, कंपाइल किया गया बाइनरी फ़्रेमवर्क बनाना ज़रूरी है.
Android Studio में मौजूद नया मॉड्यूल टेंप्लेट, शेयर किए गए मॉड्यूल को कॉन्फ़िगर करता है, ताकि हर iOS आर्किटेक्चर के लिए एक फ़्रेमवर्क बनाया जा सके. शेयर किए गए मॉड्यूल की build.gradle.kts फ़ाइल में, यह कोड देखा जा सकता है:
val xcfName = "sharedKit"
iosX64 {
binaries.framework {
baseName = xcfName
}
}
iosArm64 {
binaries.framework {
baseName = xcfName
}
}
iosSimulatorArm64 {
binaries.framework {
baseName = xcfName
}
}
अन्य आर्किटेक्चर टाइप तय करने के बारे में जानकारी पाने के लिए, प्रोजेक्ट का हैरारकी वाला स्ट्रक्चर देखें.
iOS प्रोजेक्ट में शेयर की गई लाइब्रेरी को लिंक करना
iOS प्रोजेक्ट से शेयर किए गए कोड का ऐक्सेस चालू करने के लिए, Swift सोर्स को कंपाइल करने से पहले Kotlin फ़्रेमवर्क जनरेट करने के लिए एक स्क्रिप्ट फ़ेज़ जोड़ें:
- Android Studio में मौजूद फ़ाइल पर राइट क्लिक करें. इसके बाद, इसमें खोलें और इससे जुड़े ऐप्लिकेशन में खोलें को चुनें. इससे Xcode में iOS ऐप्लिकेशन खुल जाएगा.
- प्रोजेक्ट नेविगेटर में प्रोजेक्ट के नाम पर दो बार क्लिक करके, प्रोजेक्ट की सेटिंग खोलें
- डिफ़ॉल्ट Run Script नाम को बदलकर Compile Kotlin Framework करें, ताकि यह बेहतर तरीके से पहचाना जा सके कि इस फ़ेज़ में क्या होता है. स्क्रिप्ट चलाएं टाइटल में बदलाव करने के लिए, उस पर दो बार क्लिक करें.
- बिल्ड फ़ेज़ को बड़ा करें. इसके बाद, शेल टेक्स्ट फ़ील्ड में, यह स्क्रिप्ट कोड डालें:
Run Script फ़ेज़ को Compile Sources फ़ेज़ से पहले खींचें और छोड़ें.
छठी इमेज. सोर्स कंपाइल करने से पहले, स्क्रिप्ट बिल्ड फ़ेज़ चलाएं Xcode में प्रोजेक्ट बनाने के लिए, ⌘B पर क्लिक करें या Product मेन्यू पर जाएं और Build को चुनें.
बिल्ड पूरा होने पर, आपको यह आइकॉन दिखेगा.
iOS ऐप्लिकेशन में शेयर किए गए कोड को ऐक्सेस करना
यह पुष्टि करने के लिए कि iOS ऐप्लिकेशन, शेयर किए गए मॉड्यूल से कोड को ऐक्सेस कर सकता है, यह तरीका अपनाएं:
- iOS प्रोजेक्ट में,
ContentView.swiftफ़ाइल को यहां खोलें:Sources/View/ContentView.swift - फ़ाइल में सबसे ऊपर, import
sharedKitजोड़ें. - टेक्स्ट व्यू में बदलाव करें, ताकि दिखाई गई स्ट्रिंग में
Platform_iosKt.platform()की जानकारी को इस तरह शामिल किया जा सके:
इस अपडेट से यह पता चलता है कि ऐप्लिकेशन, शेयर किए गए मॉड्यूल से platform() फ़ंक्शन को कॉल कर सकता है या नहीं. iOS प्लैटफ़ॉर्म पर चलने के दौरान, इसे "iOS" दिखाना चाहिए.
अतिरिक्त संसाधन
- अगर आपने केएमपी डेवलपमेंट का इस्तेमाल करना शुरू किया है, तो ज़्यादा गाइड के लिए केएमपी का आधिकारिक दस्तावेज़ देखें.
- अगर आपको iOS डेवलपमेंट के बारे में कुछ भी नहीं पता, तो Swift Basics का दस्तावेज़ देखें.
- केएमपी सेटअप से जुड़ी सामान्य समस्याओं के लिए, केएमपी क्विकस्टार्ट में समस्या हल करना देखें.
- सैंपल ऐप्लिकेशन के लिए, Android Kotlin Multiplatform के सैंपल देखें.