Kotlin Multiplatform क्या है और इसकी आवश्यकता क्यों है?
Kotlin Multiplatform (KMP) कोई सामान्य लाइब्रेरी नहीं है, बल्कि JetBrains द्वारा विकसित एक तकनीक (SDK और टूल्स का सेट) है। यह आपको Kotlin भाषा में सामान्य कोड लिखने और उसे कई प्लेटफॉर्मों के लिए कंपाइल करने की सुविधा देता है: JVM (Android, सर्वर), JavaScript (वेब ब्राउज़र, Node.js), Native (iOS, macOS, Windows, Linux, watchOS, tvOS)।
इसकी आवश्यकता क्यों है? आधुनिक डेवलपमेंट में अक्सर अलग-अलग प्लेटफॉर्मों के लिए ऐप बनाने पड़ते हैं। पारंपरिक तरीके में अलग-अलग भाषाओं में कोड लिखना पड़ता है (iOS के लिए Swift, Android के लिए Java/Kotlin, वेब के लिए JavaScript)। Kotlin Multiplatform इस समस्या को हल करता है, जिससे आप बिज़नेस लॉजिक (नेटवर्क रिक्वेस्ट, डेटाबेस ऑपरेशन, डेटा वैलिडेशन, सीरियलाइज़ेशन) को एक सामान्य मॉड्यूल में रख सकते हैं, जो सभी प्लेटफॉर्मों पर काम करता है। प्लेटफॉर्म-विशिष्ट कोड (UI, कैमरा, सेंसर) नेटिव ही रहता है, लेकिन उसकी मात्रा काफी कम हो जाती है।
मुख्य लाभ:
- डेवलपमेंट समय में कमी: एक बार लॉजिक लिखें, हर जगह उपयोग करें।
- एकीकृत कोड बेस: कम बग, आसान रखरखाव और रिफैक्टरिंग।
- नेटिव परफॉरमेंस: React Native या Flutter के विपरीत, KMP नेटिव कोड में कंपाइल होता है, बीच की लेयर पर निर्भर नहीं करता।
- लचीलापन: छोटी शुरुआत करें — सिर्फ एक लाइब्रेरी (जैसे नेटवर्क रिक्वेस्ट के लिए) निकालें और धीरे-धीरे सामान्य कोड बढ़ाएं।
- मौजूदा कोड का उपयोग:
expect/actualमैकेनिज्म के जरिए नेटिव लाइब्रेरीज़ को कनेक्ट कर सकते हैं।
Kotlin Multiplatform इनके लिए आदर्श है: मोबाइल ऐप (Android + iOS), सर्वर ऐप (Ktor + KMP), वेब ऐप (Kotlin/JS), डेस्कटॉप ऐप (Compose Multiplatform) और ऐसी लाइब्रेरीज़ जो हर जगह काम करें।
इंस्टॉलेशन और सेटअप
Kotlin Multiplatform को pip या npm से इंस्टॉल नहीं किया जाता। यह एक बिल्ड टूल है, जिसे Gradle बिल्ड सिस्टम के जरिए कॉन्फ़िगर किया जाता है। नीचे KMP प्रोजेक्ट बनाने की मानक प्रक्रिया दी गई है।
1. IntelliJ IDEA या Android Studio इंस्टॉल करें
IntelliJ IDEA Ultimate (Community Edition भी काम करता है, लेकिन सीमाओं के साथ) या Android Studio में Kotlin Multiplatform प्लगइन के साथ उपयोग करने की सलाह दी जाती है।
2. प्रोजेक्ट बनाएं
सबसे आसान तरीका है Kotlin Multiplatform Wizard (JetBrains का ऑनलाइन टूल): https://kmp.jetbrains.com/। अपनी ज़रूरत के प्लेटफॉर्म (Android, iOS, Desktop, Web) चुनें और तैयार टेम्पलेट डाउनलोड करें।
3. प्रोजेक्ट स्ट्रक्चर (Gradle)
मुख्य कॉन्फ़िगरेशन फ़ाइल build.gradle.kts (रूट और मॉड्यूल स्तर) है। मुख्य प्लगइन्स:
// रूट build.gradle.kts
plugins {
kotlin("multiplatform") version "1.9.22" apply false
kotlin("plugin.serialization") version "1.9.22" apply false
id("com.android.application") version "8.2.0" apply false
id("org.jetbrains.compose") version "1.5.11" apply false
}
// shared मॉड्यूल (सामान्य कोड)
plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
id("com.android.library")
}
kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
}
}
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach {
it.binaries.framework {
baseName = "shared"
isStatic = true
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")
implementation("io.ktor:ktor-client-core:2.3.7")