10 पॉइंट द्वारा GN⁺ 2025-10-25 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Swift भाषा cloud, Windows, browser, microcontroller तक फैलते हुए परिपक्व हुई है, और अब Android के लिए Swift SDK जारी किया गया है
  • यह SDK Swift Android workgroup के कई महीनों के प्रयास का परिणाम है, जो डेवलपर्स को Swift से Android native app विकसित करने में सक्षम बनाता है
  • SDK Windows installer में शामिल है या Linux·macOS के लिए अलग से डाउनलोड किया जा सकता है, और इसके साथ example code व guide भी उपलब्ध हैं
  • swift-java project के जरिए Swift और Java के बीच दो-तरफ़ा interoperability को सपोर्ट किया गया है, और automatic binding generation के माध्यम से performance व safety सुनिश्चित की जाती है
  • इस रिलीज़ को Swift के cross-platform ecosystem expansion को तेज़ करने वाला और mobile development की नई संभावनाएँ खोलने वाला एक महत्वपूर्ण मोड़ माना जा रहा है

Swift SDK for Android का अवलोकन

  • पिछले 10 वर्षों में Swift भाषा cloud service से लेकर Windows, browser, microcontroller तक फैल चुकी है, और अब Android platform पर उसका विस्तार आधिकारिक रूप से घोषित किया गया है
    • Swift की interoperability की वजह से कई platforms के बीच code sharing आसान हो जाती है
  • Android workgroup एक open group है जिसमें कोई भी शामिल हो सकता है, और इसका लक्ष्य Swift को Android तक विस्तार देना है
  • इस घोषणा का अर्थ है Swift SDK for Android की nightly (preview) build का सार्वजनिक रिलीज़, जो community के लंबे सहयोग का परिणाम है

SDK की मुख्य क्षमताएँ और वितरण तरीका

  • डेवलपर्स अब Swift का उपयोग करके सीधे Android native application विकसित कर सकते हैं
    • इससे cross-platform development की नई संभावनाएँ खुलती हैं
  • SDK Windows installer में bundled रूप में उपलब्ध है, जबकि Linux और macOS के लिए अलग डाउनलोड उपलब्ध है
  • Swift.org की "Getting Started" guide Android device पर Swift code सेटअप करने का तरीका समझाती है
    • GitHub के Swift for Android Examples repository में end-to-end app workflow का प्रदर्शन किया गया है

package compatibility और community expansion

  • Swift SDK के जरिए मौजूदा Swift package को Android पर port किया जा सकता है
    • Swift Package Index के 25% से अधिक package पहले ही Android build को support करते हैं
    • Community Showcase page पर Android compatibility को दर्शाया जाता है
  • इस तरह का विस्तार Swift ecosystem में multi-platform support को और मज़बूत करता है

swift-java project और interoperability

  • swift-java project Swift और Java के बीच interoperability देने वाली एक library और code generator है
    • यह Swift और Java के बीच दो-तरफ़ा integration को अपने-आप संभालता है और safe तथा high-performance binding बनाता है
  • डेवलपर्स इसके माध्यम से business logic को Android पर migrate कर सकते हैं, और इससे जुड़ी जानकारी Swift Server Side Meetup की presentation video में देखी जा सकती है

community participation और आगे का roadmap

  • यह preview release tooling improvement और ecosystem expansion के लिए नए अवसर खोलती है
    • Swift forum के Android category में experience, idea, tool और app साझा करने के लिए प्रोत्साहित किया गया है
    • इस घोषणा पर forum के official thread में भी चर्चा चल रही है
  • Android workgroup इस समय vision document तैयार कर रहा है, जो Swift on Android के priority areas और future direction को पेश करेगा
    • project board के जरिए मुख्य प्रगति को ट्रैक किया जा रहा है, और official CI system से SDK की quality को manage किया जा रहा है
  • Swift team community की भागीदारी को प्रोत्साहित कर रही है और उसका लक्ष्य Android ecosystem में Swift की मौजूदगी को मज़बूत करना है

1 टिप्पणियां

 
GN⁺ 2025-10-25
Hacker News की राय
  • हर cross-platform framework का मूल सवाल यह होता है कि UI को कैसे संभाला जाए
    अगर Adobe के Flex Builder की तरह हर platform पर अलग महसूस होने वाले design system का इस्तेमाल किया जाए, तो आखिरकार native feel को हाथ से ही बनाना पड़ता है
    Flutter iOS के Cupertino theme को लगभग पूरी तरह दोहराने की कोशिश करता है, और React Native platform के default widgets का इस्तेमाल करता है ताकि scrolling जैसी चीज़ें स्वाभाविक लगें
    अफ़सोस है कि blog post में इस अहम हिस्से का ज़िक्र नहीं है
    भले ही Apple Android के लिए Swift लाए, Apple की अपनी design philosophy की वजह से Android पर वह अटपटा लग सकता है
    लगता है कि इस project की आगे की दिशा इस बात पर निर्भर करेगी कि इसे Apple सीधे चला रहा है, या यह community-केंद्रित open source प्रयास है

    • मुझे UI share करने के बजाय ऐसे framework पसंद हैं जिनमें native UI लिखना संभव हो
      इसलिए KMP अच्छा लगता है। iOS में SwiftUI से, और Android में Kotlin से UI लिखते हुए सिर्फ business logic share किया जा सकता है
      UI share करने की कोशिश करो, तो “एक बार लिखो और हर जगह debug करो” जैसा दुःस्वप्न शुरू हो जाता है
      लगता है Swift for Android भी इसी तरह language-level logic sharing को संभव बनाएगा
    • Swift SDK for Android किसी UI approach को force नहीं करता
      example में भी Jetpack Compose को वैसे ही इस्तेमाल करके Swift logic को call किया गया है
      Swift के reference counting memory model जैसी ही संरचना बनाए रखने से consistency अच्छी रहती है
      Apple में developer tools पर काम करने वाले व्यक्ति के नाते, उम्मीद है यह तकनीक नई innovation की बुनियाद बनेगी
    • जैसे Browser Company ने SwiftUI को Windows पर port किया था, वैसे ही Android में भी SwiftUI का Jetpack Compose से mapping होना संभव है
      SwiftUI मूल रूप से “native UI” नहीं है, बल्कि system द्वारा interpret की जाने वाली declarative language है जो UIView या NSView बनाती है
    • इस release में SwiftUI या UIKit को Android पर port करने जैसी कोई चीज़ शामिल नहीं है
      Flutter की तरह सीधे replicate न किया जाए, तो Apple UI को Android पर ज्यों का त्यों इस्तेमाल करना संभव नहीं है
    • Swift SDK किसी UI technology को specify नहीं करता
      इसके बजाय Skip.tools जैसे project SwiftUI को Jetpack Compose से bridge करते हैं
      Skip Showcase app में इसका example देखा जा सकता है
      मैं Skip products और Swift Android Workgroup का member हूँ, और इस SDK release में release manager के रूप में शामिल था
  • इसे official project के रूप में घोषित किया गया, यह देखकर सच में अच्छा लगा
    RN और Flutter इस्तेमाल किए हैं, लेकिन हमेशा native feel की कमी समस्या रही
    KMP भी है, लेकिन ज़्यादातर developers iOS से शुरू करके Android तक बढ़ते हैं
    अगर code को Swift Package के रूप में share किया जाए, तो यह flow काफी ज़्यादा natural हो जाता है

    • Android developers बहुत ज़्यादा हैं, और deployment भी आसान है
      वहीं Swift/Objective-C developers काफ़ी कम हैं
      अमेरिका के बाहर iPhone की market share कम होने की वजह से कंपनियाँ अक्सर Windows या browser-केंद्रित सोचती हैं
    • “iOS से शुरू करते हैं” कहना कुछ अमेरिका-केंद्रित नज़रिया लगता है
      KMP पहले से Google Workspace जैसे बड़े apps में इस्तेमाल हो रहा है, और Kotlin व JetBrains के निवेश की वजह से इसकी maturity काफ़ी बढ़ चुकी है
      Flutter का release cycle इतना तेज़ था कि उसके साथ बने रहना मुश्किल था
    • JavaScript-आधारित business logic को भी नज़रअंदाज़ नहीं किया जा सकता
      JavaScriptCore या QuickJS के साथ यह iOS, Android और Web तीनों पर चल सकता है, और hot reload भी संभव है
      हालांकि app store policies की वजह से बड़े feature changes मुश्किल हैं, इसलिए यह bug fix जैसे कामों के लिए ज़्यादा उपयुक्त है
      mobile deployment cycle के धीमे होने की वास्तविकता में, यह approach बड़ा अवसर लगती है
    • Proton में Rust से 80% से ज़्यादा logic share किया जाता है, बाकी platform के हिसाब से implement होता है
    • सच कहें तो ऐसी संरचना पहले से .NET और MvvmCross के साथ संभव थी
      shared core library + हर platform के native UI project वाली संरचना अच्छी तरह काम करती है
  • Skip.tools blog देखकर सोचा कि क्या यह SKIP transpiler से जुड़ा project है
    मैं SwiftUI app को Android पर लाना चाहता था, लेकिन RN से बचना चाहता था

    • हाँ, Skip पिछले एक साल से ज़्यादा समय से Swift SDK के preview version का इस्तेमाल कर रहा है, और Fuse mode के साथ पूरी तरह native SwiftUI app को Android पर build करता है
      Skip में दो mode हैं: Swift code को Kotlin में बदलने वाला Lite mode, और Swift को सीधे Android के लिए compile करने वाला Fuse mode
      दोनों mode को साथ इस्तेमाल करके Kotlin ecosystem, जैसे Lottie और Firebase, के साथ integration किया जा सकता है
      ज़्यादा तुलना Skip Docs में देखी जा सकती है
      official SDK आने से अब खुद का build बनाए रखने के बजाय official version इस्तेमाल कर पाना खुशी की बात है
    • Skip इस प्रयास के प्रमुख contributors में से एक है
    • अब transpiler के बिना भी native Swift execution संभव हो गया है, और compatibility भी काफ़ी बेहतर है
  • उम्मीद है कि यह Swift Embedded की तरह सिर्फ़ एक साधारण proof of concept बनकर न रह जाए
    Swift भाषाई रूप से सुंदर है, लेकिन community leadership को लेकर कुछ असहजता महसूस होती है

    • guard let self = self else { return } — Swift developers के बीच यह एक जाना-पहचाना मज़ाक है
  • अब RN और Flutter को और नहीं देखना चाहता
    कोनों वाला UI और धीमे touch response से थक चुका हूँ

    • Flutter में भी corner radius adjust किया जा सकता है, और performance भी तेज़ है
      response धीमा लगना शायद app implementation की समस्या हो सकती है
    • मुझे भी RN और Flutter खास पसंद नहीं हैं, लेकिन यह गारंटी नहीं कि Android पर Swift उनसे बेहतर ही होगा
      Apple शायद जल्दी ही इसमें दिलचस्पी खो भी सकता है
  • “You got Kotlin in my iOS.”
    “You got Swift in my Android.” — काफ़ी मज़ेदार अभिव्यक्ति है

    • बिल्कुल सही analogy है। सचमुच Reese’s ad की तरह Kotlin और Swift मिला हुआ hybrid भी आ सकता है
    • iOS पर Kotlin statically compiled होता है और Swift/ObjC के साथ native interop देता है
      Kotlin Native overview देखें
  • यह घोषणा नए Swift SDK system की सफलता का प्रमाण लगती है
    पहले दूसरे platforms को support करना CMake की उलझनों की वजह से जटिल था, लेकिन अब SDK rules का पालन करने पर किसी भी platform पर port करना संभव है
    Android के अलावा Linux, wasm, embedded, और जल्द ही Windows तक विस्तार होने वाला है
    JVM के साथ interop अभी पूरी तरह तैयार नहीं है, लेकिन platform independence बढ़ना साफ़ दिखता है

  • मुझे Kotlin Multiplatform पसंद है, लेकिन Swift for Android भी दिलचस्प है
    memory-sensitive कामों के लिए Swift native libraries share करना उपयोगी हो सकता है
    हालांकि पूरे business logic को Swift में ले जाना हो, तो अभी भी KMP ज़्यादा mature लगता है

    • क्या KMP से desktop apps भी बनाए हैं? इसकी कुल maturity को लेकर जिज्ञासा है
  • business logic share करना तो पहले से हल हो चुका मसला था
    असली दर्द तो UI को दो बार लिखने में था
    React Native जितना असहज न लगे, ऐसा कोई common UI framework चाहिए

    • React Native ने हाल में New Architecture पर shift होने के बाद काफ़ी सुधार किया है
      Expo के साथ इस्तेमाल करने पर developer experience भी बहुत बेहतर हो जाता है
  • Android और iOS के बीच code लंबे समय से share करता आया हूँ, लेकिन UI share करना दुःस्वप्न रहा
    जटिल logic को ही C/C++/Rust में share किया, और आखिर में तीन भाषाएँ संभालनी पड़ीं
    KMP और Swift for Android कम से कम Kotlin/Swift तक sharing सीमित करने देते हैं, इसलिए चीज़ें काफ़ी साफ़ रहती हैं
    UI को ज़बरदस्ती share कराने वाले frameworks की तुलना में यह तरीका कहीं ज़्यादा व्यावहारिक और कुशल लगता है