किसी मौजूदा प्रोजेक्ट में Kotlin Multiplatform जोड़ना

अपने Android प्रोजेक्ट में Kotlin Multiplatform (केएमपी) मॉड्यूल बनाने के लिए, Kotlin Multiplatform Shared Module टेंप्लेट का इस्तेमाल करें. यह टेंप्लेट, Android Studio Meerkat और Android Gradle प्लगिन 8.8.0 और इसके बाद के वर्शन में उपलब्ध है.

यह मॉड्यूल टेंप्लेट, Android और iOS प्लैटफ़ॉर्म को टारगेट करने वाले कम से कम कॉन्फ़िगरेशन के साथ, नया मॉड्यूल बनाने की प्रोसेस को ऑटोमेट करता है. केएमपी, डेस्कटॉप और वेब जैसे अन्य टारगेट के साथ भी काम करता है. इन्हें बाद में मॉड्यूल में जोड़ा जा सकता है. पूरी सूची देखने के लिए, इस्तेमाल किए जा सकने वाले प्लैटफ़ॉर्म की स्थिरता देखें. टारगेट तय करने के लिए, Multiplatform Gradle DSL रेफ़रंस में टारगेट देखें.

शेयर किया गया केएमपी मॉड्यूल सेट अप करना

शेयर किया गया केएमपी मॉड्यूल बनाने के लिए, यह तरीका अपनाएं:

  1. File > New > New Module को चुनें
  2. Templates पैनल में, Kotlin Multiplatform Shared Module टेंप्लेट चुनें:
नया केएमपी मॉड्यूल बनाना
पहली इमेज. नया केएमपी मॉड्यूल बनाना

टेंप्लेट में ये फ़ील्ड होते हैं:

  • Module name – इससे Gradle मॉड्यूल का नाम तय होता है. साथ ही, iOS फ़्रेमवर्क का नाम भी तय होता है. इसे बाद में बदला जा सकता है
  • पैकेज का नाम – इससे इस मॉड्यूल में मौजूद फ़ाइलों के लिए, पैकेज का नाम तय होता है
    1. Finish पर क्लिक करें और Gradle को प्रोजेक्ट के साथ सिंक होने दें. आपको नई मॉड्यूल फ़ाइलों को सोर्स कंट्रोल में जोड़ने के लिए भी कहा जा सकता है.

यह प्रोसेस पूरी होने के बाद, Android Studio का प्रोजेक्ट व्यू, हर प्लैटफ़ॉर्म के लिए सोर्ससेट के साथ-साथ नया शेयर किया गया मॉड्यूल दिखाता है.

प्रोजेक्ट व्यू में शेयर किए गए नए मॉड्यूल दिख रहे हैं
दूसरी इमेज. प्रोजेक्ट व्यू में शेयर किए गए नए मॉड्यूल दिख रहे हैं

मॉड्यूल विज़र्ड, नए मॉड्यूल को किसी मौजूदा मॉड्यूल की डिपेंडेंसी के तौर पर नहीं जोड़ता. अगले चरण के तौर पर, आपको शेयर किए गए मॉड्यूल को अपने किसी मौजूदा 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 प्रोजेक्ट से शेयर किए गए कोड का ऐक्सेस चालू करने के लिए, Swift सोर्स को कंपाइल करने से पहले Kotlin फ़्रेमवर्क जनरेट करने के लिए एक स्क्रिप्ट फ़ेज़ जोड़ें:

  1. Android Studio में मौजूद फ़ाइल पर राइट क्लिक करें. इसके बाद, इसमें खोलें और इससे जुड़े ऐप्लिकेशन में खोलें को चुनें. इससे Xcode में iOS ऐप्लिकेशन खुल जाएगा.
इससे जुड़े ऐप्लिकेशन में खोलें
तीसरी इमेज. इससे जुड़े ऐप्लिकेशन में खोलें
  1. प्रोजेक्ट नेविगेटर में प्रोजेक्ट के नाम पर दो बार क्लिक करके, प्रोजेक्ट की सेटिंग खोलें
Xcode प्रोजेक्ट सेटिंग डायलॉग
चौथी इमेज. Xcode प्रोजेक्ट सेटिंग डायलॉग
  1. डिफ़ॉल्ट Run Script नाम को बदलकर Compile Kotlin Framework करें, ताकि यह बेहतर तरीके से पहचाना जा सके कि इस फ़ेज़ में क्या होता है. स्क्रिप्ट चलाएं टाइटल में बदलाव करने के लिए, उस पर दो बार क्लिक करें.
  2. बिल्ड फ़ेज़ को बड़ा करें. इसके बाद, शेल टेक्स्ट फ़ील्ड में, यह स्क्रिप्ट कोड डालें:
रन स्क्रिप्ट बिल्ड फ़ेज़ को नया बनाना
पांचवीं इमेज. स्क्रिप्ट बिल्ड फ़ेज़ चलाएं
  1. Run Script फ़ेज़ को Compile Sources फ़ेज़ से पहले खींचें और छोड़ें.

    सोर्स कंपाइल करने से पहले, स्क्रिप्ट बिल्ड फ़ेज़ चलाएं
    छठी इमेज. सोर्स कंपाइल करने से पहले, स्क्रिप्ट बिल्ड फ़ेज़ चलाएं

  2. Xcode में प्रोजेक्ट बनाने के लिए, ⌘B पर क्लिक करें या Product मेन्यू पर जाएं और Build को चुनें.

बिल्ड पूरा होने पर, आपको यह आइकॉन दिखेगा.

Xcode में, बिल्ड पूरा होने की जानकारी देने वाली इमेज
सातवीं इमेज. बिल्ड पूरा हुआ

iOS ऐप्लिकेशन में शेयर किए गए कोड को ऐक्सेस करना

यह पुष्टि करने के लिए कि iOS ऐप्लिकेशन, शेयर किए गए मॉड्यूल से कोड को ऐक्सेस कर सकता है, यह तरीका अपनाएं:

  1. iOS प्रोजेक्ट में, ContentView.swift फ़ाइल को यहां खोलें: Sources/View/ContentView.swift
  2. फ़ाइल में सबसे ऊपर, import sharedKit जोड़ें.
  3. टेक्स्ट व्यू में बदलाव करें, ताकि दिखाई गई स्ट्रिंग में Platform_iosKt.platform() की जानकारी को इस तरह शामिल किया जा सके:

इस अपडेट से यह पता चलता है कि ऐप्लिकेशन, शेयर किए गए मॉड्यूल से platform() फ़ंक्शन को कॉल कर सकता है या नहीं. iOS प्लैटफ़ॉर्म पर चलने के दौरान, इसे "iOS" दिखाना चाहिए.

iOS ऐप्लिकेशन को चलाने वाला Xcode सिम्युलेटर
आठवीं इमेज. iOS ऐप्लिकेशन को चलाने वाला Xcode सिम्युलेटर

अतिरिक्त संसाधन