CrossFly एक ओपन-सोर्स (Apache 2.0) फ़्रेमवर्क है जिसमें आप UI और लॉजिक शुद्ध Java में लिखते हैं और यह LibGDX/OpenGL के ज़रिये GPU पर रेंडर करता है, Desktop (Windows, macOS और Linux), Android और iOS के लिए नेटिव बाइनरी में कंपाइल होता है — साथ ही WebGL बिल्ड, जो Chrome, Firefox, Safari और किसी भी आधुनिक ब्राउज़र में चलता है। ऑफ़लाइन-फ़र्स्ट डेटा के लिए इसे CrossFly Sync के साथ जोड़ें।
Kotlin Multiplatform (KMP), JetBrains की ओपन-सोर्स (Apache 2.0) तकनीक है जो कोड — लॉजिक, नेटवर्किंग, डेटा — को Android, iOS, desktop और web में साझा करने के लिए है, जबकि UI प्रति प्लेटफ़ॉर्म नेटिव रहती है। Compose Multiplatform इसका वैकल्पिक साझा-UI टूलकिट है (Skia-रेंडर्ड), जो मई 2025 से iOS पर स्थिर है।
वे अंतर जो सचमुच मायने रखते हैं
JVM के दो चचेरे भाई, भाषा, UI और टूलिंग पर दो बहुत अलग दाँव।
यह Kotlin-first है, Java नहीं
KMP का साझा कोड Kotlin है। Kotlin का JVM पर Java इंटरॉप बढ़िया है, पर Kotlin/Native (iOS) और Kotlin/Wasm, Kotlin टूलचेन हैं — “अपना मौजूदा Java चलाओ” नहीं। एक शुद्ध-Java एंटरप्राइज़ टीम को Kotlin को अपनी साझा भाषा के रूप में प्रतिबद्ध होना पड़ता है।
CrossFly आपको शुरू से अंत तक Java में बनाए रखता है। पूरी टीम के लिए कोई भाषा माइग्रेशन नहीं — आपके Java डेवलपर, लाइब्रेरियाँ और मुहावरे हर प्लेटफ़ॉर्म पर सीधे ऐप में चले आते हैं।
iOS इंटरॉप परत में नुक़सान होता है
iOS पर, Kotlin, Swift से केवल एक जेनरेट किए गए Objective-C ब्रिज के ज़रिये बात करता है। वह अनुवाद ही वह जगह है जहाँ तीखे किनारे रहते हैं: nullable int boxed हो जाते हैं, sealed class exhaustive switch खो देते हैं, Kotlin Flow भद्दे callbacks बन जाता है, generics ढहकर Any? हो जाते हैं। JetBrains का मुहावरेदार समाधान, Swift Export, अभी तैयार नहीं है।
CrossFly का एक ही रेंडरिंग और लॉजिक पाथ GPU पर बनता है — पार करने के लिए कोई Kotlin→Obj-C→Swift सीमा नहीं, इसलिए उन इंटरॉप नुक़सानों में से कोई शुरू में ही नहीं आता।
iOS पर साझा UI युवा है
अगर आप UI भी साझा करना चाहते हैं, तो वह Compose Multiplatform है — जो iOS पर केवल मई 2025 में स्थिर हुआ, टेक्स्ट-फ़ील्ड एक्सेसिबिलिटी उससे भी बाद में आई, और web/Wasm अब भी beta में है। यह Skia-रेंडर्ड है (नेटिव विजेट नहीं), इसलिए iOS पर यह Material जैसा दिखता है, Cupertino जैसा नहीं।
CrossFly का अपनी-UI-ख़ुद-बनाओ मॉडल पूरा फ़्रेमवर्क है, कोई हाल में स्थिर हुई परत नहीं — पहले दिन से desktop और mobile पर एक सुसंगत UI। (अगर आपको प्रति-प्लेटफ़ॉर्म नेटिव लुक चाहिए, तो KMP का नेटिव-UI विकल्प एक असली ताक़त है — निष्पक्षता कॉलम देखें।)
बिल्ड मैट्रिक्स ही कर है
KMP का मतलब है Gradle-multiplatform — जिसे ख़ुद JetBrains “भारी” कहता है — साथ में नाज़ुक CocoaPods इंटीग्रेशन, एक iOS प्लगइन जो केवल macOS पर चलता है, और धीमे Kotlin/Native कंपाइल। असली सेटअप और इटरेशन की अड़चन की उम्मीद रखें, ख़ासकर iOS की ओर।
CrossFly का एकल-भाषा, एकल-टूलचेन मॉडल बिल्ड कहानी को कहीं सरल रखता है — आपके और तीनों प्लेटफ़ॉर्मों पर चलते ऐप के बीच कम हिलते-डुलते पुर्ज़े।
जहाँ CrossFly आगे निकलता है
जहाँ Kotlin Multiplatform सचमुच मज़बूत है
एक नज़र में CrossFly बनाम Kotlin Multiplatform
| आयाम | CrossFly | Kotlin Multiplatform |
|---|---|---|
| भाषा | Java | Kotlin |
| रनटाइम | नेटिव बाइनरी (JVM विरासत) | नेटिव बाइनरी (Kotlin/Native, JVM विरासत) |
| क्या साझा होता है | UI + लॉजिक, एक कोडबेस | डिफ़ॉल्ट रूप से लॉजिक; UI नेटिव या Compose MP के ज़रिये |
| UI मॉडल | हर जगह एक GPU-निर्मित UI | प्रति प्लेटफ़ॉर्म नेटिव, या Compose MP (Skia) |
| iOS UI परिपक्वता | कोर फ़्रेमवर्क | Compose MP iOS मई 2025 से स्थिर |
| iOS इंटरॉप | एक पाथ, कोई ObjC ब्रिज नहीं | Kotlin↔Objective-C ब्रिज (जेनरेट परत से Swift) |
| बिल्ड/टूलिंग | एकल JVM टूलचेन | Gradle-multiplatform + CocoaPods; iOS प्लगइन केवल macOS |
| ऑफ़लाइन-फ़र्स्ट | CrossFly Sync (द्विदिश) | लाइब्रेरियों से जोड़ें |
| Desktop | प्रथम-श्रेणी (Win/mac/Linux) | Compose for Desktop के ज़रिये परिपक्व |
| लाइसेंस | ओपन सोर्स (Apache 2.0, Core) | ओपन सोर्स (Apache 2.0) |