अपना एनवायरमेंट सेट अप करें (Kotlin Multiplatform)

Kotlin Multiplatform (KMP), Kotlin कोड को अलग-अलग प्लैटफ़ॉर्म पर शेयर करने की सुविधा देता है. KMP का इस्तेमाल करके ऐप्लिकेशन बनाने से पहले, आपको इस दस्तावेज़ में बताए गए तरीके से अपना एनवायरमेंट सेट अप करना होगा. इसके अलावा, JetBrain के आधिकारिक दस्तावेज़ को भी देखा जा सकता है.

ज़रूरी टूल इंस्टॉल या अपडेट करना

  • Android Studio को इंस्टॉल करें या नए और स्टेबल वर्शन पर अपडेट करें.
  • Android Studio के साथ बंडल किए गए Kotlin प्लग इन को नए वर्शन में अपडेट करें, ताकि काम करने से जुड़ी समस्याओं से बचा जा सके.
  • (ज़रूरी नहीं) iOS ऐप्लिकेशन डेवलप करने के लिए, यूज़र इंटरफ़ेस (यूआई) बनाने और ज़रूरत के हिसाब से Swift या Objective-C कोड जोड़ने के लिए, Xcode इंस्टॉल करें.

Kotlin मल्टी-प्लैटफ़ॉर्म प्रोजेक्ट बनाना

नया KMP प्रोजेक्ट बनाने के लिए, JetBrains के Kotlin Multiplatform विज़र्ड का इस्तेमाल किया जा सकता है. यूज़र इंटरफ़ेस (यूआई) को नेटिव रखने के लिए, यूआई शेयर न करें विकल्प चुनना न भूलें.

प्रोजेक्ट का स्ट्रक्चर

KMP प्रोजेक्ट, Android प्रोजेक्ट की तरह ही प्रोजेक्ट स्ट्रक्चर का इस्तेमाल करते हैं.

किसी KMP प्रोजेक्ट में, शेयर किए गए मॉड्यूल के साथ-साथ प्लैटफ़ॉर्म के हिसाब से मॉड्यूल भी होते हैं. काम के मॉड्यूल में, प्लैटफ़ॉर्म के हिसाब से अपना कोड जोड़ें. उदाहरण के लिए, अपने Android ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को androidApp मॉड्यूल में और अपने iOS ऐप्लिकेशन के यूआई को iosApp में जोड़ें. जिस कोड को आपको प्लैटफ़ॉर्म के बीच शेयर करना है उसे शेयर किए गए मॉड्यूल में डालें.

शेयर किया गया मॉड्यूल, बाकी प्रोजेक्ट की तरह ही Gradle को बिल्ड सिस्टम के तौर पर इस्तेमाल करता है. सोर्सेट का इस्तेमाल करके, सामान्य और प्लैटफ़ॉर्म के हिसाब से डिपेंडेंसी का एलान किया जा सकता है. उदाहरण के लिए, अगर आपका ऐप्लिकेशन नेटवर्किंग के लिए Ktor का इस्तेमाल करता है, तो आपको Android के लिए OkHttp और iOS के लिए darwin डिपेंडेंसी जोड़नी होगी. ध्यान दें कि कुछ लाइब्रेरी के लिए, सिर्फ़ सामान्य डिपेंडेंसी की ज़रूरत होती है. साथ ही, उन्हें प्लैटफ़ॉर्म के हिसाब से डिपेंडेंसी की ज़रूरत नहीं होती.

sourceSets {
   commonMain.dependencies {
       //put your multiplatform dependencies here
       //...
       implementation(libs.ktor.client.core)
       implementation(libs.ktor.client.content.negotiation)
       implementation(libs.ktor.serialization.kotlinx.json)
       //...
   }
   androidMain.dependencies {
       implementation(libs.ktor.client.okhttp)
   }
   iosMain.dependencies {
       implementation(libs.ktor.client.darwin)
   }
}

अपने ऐप्लिकेशन के शेयर किए गए मॉड्यूल में कोई नई लाइब्रेरी जोड़ते समय, हर प्लैटफ़ॉर्म के लिए ज़रूरी डिपेंडेंसी देखना न भूलें.