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

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

मॉड्यूल टेंप्लेट, Android और iOS प्लैटफ़ॉर्म को टारगेट करने वाले कम से कम कॉन्फ़िगरेशन के साथ, नए मॉड्यूल को अपने-आप बनाता है.

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

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

  1. फ़ाइल > नया > नया मॉड्यूल चुनें
  2. टेंप्लेट पैनल में, Kotlin Multiplatform शेयर किया गया मॉड्यूल टेंप्लेट चुनें:
नया KMP मॉड्यूल बनाना
पहली इमेज. नया KMP मॉड्यूल बनाना

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

  • मॉड्यूल का नाम – इससे Gradle मॉड्यूल के साथ-साथ iOS फ़्रेमवर्क का नाम भी तय होता है. इसे बाद में बदला जा सकता है
  • पैकेज का नाम – इस मॉड्यूल में मौजूद फ़ाइलों के लिए पैकेज का नाम तय करता है
    1. पूरा करें पर क्लिक करें और 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. स्क्रिप्ट चलाएं के डिफ़ॉल्ट नाम को Kotlin फ़्रेमवर्क को कॉम्पाइल करें में बदलें, ताकि यह बेहतर तरीके से पता चल सके कि यह चरण क्या करता है. स्क्रिप्ट चलाएं टाइटल में बदलाव करने के लिए, उस पर दो बार क्लिक करें.
  2. बिल्ड फ़ेज़ को बड़ा करें और शेल टेक्स्ट फ़ील्ड में, यह स्क्रिप्ट कोड डालें:
रन स्क्रिप्ट का नया बिल्ड फ़ेज़ जोड़ना
पांचवीं इमेज. स्क्रिप्ट के बिल्ड फ़ेज़ को चलाना
  1. सोर्स को कंपाइल करें चरण से पहले, स्क्रिप्ट चलाएं चरण को खींचें और छोड़ें.

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

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

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

Xcode में दिख रहा है कि बिल्ड पूरा हो गया
सातवीं इमेज. बिल्ड पूरा हो गया

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

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

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

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

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

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

अगर आपने पहले कभी KMP डेवलपमेंट नहीं किया है, तो ज़्यादा गाइड के लिए KMP का आधिकारिक दस्तावेज़ देखें. अगर आपने iOS ऐप्लिकेशन डेवलप करने की प्रोसेस पहले कभी नहीं की है, तो Swift के बुनियादी सिद्धांतों के बारे में दस्तावेज़ देखें.