3 पॉइंट द्वारा GN⁺ 2024-08-12 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Rust को 8 वर्षों तक "सबसे पसंदीदा प्रोग्रामिंग भाषा" चुना गया है, और बहुत से लोग Rust में GUI प्रोग्राम लिखना चाहते हैं.
  • Flutter और flutter_rust_bridge का उपयोग करने वाला एक तरीका साझा किया गया है.
  • फायदे
    • Flutter एक लोकप्रिय और परिपक्व प्लेटफ़ॉर्म है, जिसे कई डेवलपर और प्रसिद्ध ब्रांड इस्तेमाल करते हैं, और इसका बड़ा ecosystem है, इसलिए मनचाही functionality को आसानी से लागू किया जा सकता है.
    • "hot reload" फीचर की वजह से UI development तेज़ होता है, और cross-platform support के कारण एक ही codebase को कई platforms पर चलाया जा सकता है.
  • नुकसान
    • यह तरीका 100% pure Rust नहीं है.
      • लेकिन यह कई अन्य Rust UI approaches जैसा ही है, जहाँ macros का उपयोग किया जाता है या HTML/CSS/Slint जैसी दूसरी भाषाओं से custom DSL लिखा जाता है.
    • web platform को लेकर आलोचना है.
      • static web pages की तुलना में यह web और अन्य platforms के 'apps' के लिए अधिक उपयुक्त है, जैसे Google Earth, Rive का animation editor आदि.
    • Flutter में काफी boilerplate code की ज़रूरत होती है.

flutter_rust_bridge क्या है?

  • यह दो भाषाओं के बीच bridge बनाता है ताकि वे एक ही भाषा की तरह काम करें.
  • यह कई तरह के types, &mut, async, traits, results, closures आदि को अपने-आप convert करता है.
  • Rust GUI को Flutter से लागू करने के अलावा इसके कई और use cases भी हैं.
    = जैसे Flutter में किसी भी Rust लाइब्रेरी का उपयोग करना, या algorithm जैसे code को Rust में और बाकी code को Flutter में लिखना.

1 टिप्पणियां

 
GN⁺ 2024-08-12
Hacker News राय
  • कई वर्षों तक ऐप डेवलप करते हुए इसका इस्तेमाल किया है, और कुल मिलाकर संतुष्ट रहा/रही

    • v1 से v2 में अपग्रेड करना मुश्किल नहीं था, और v2 ने कई उपयोगी फीचर्स, बेहतर code generation अनुभव, tokio async सपोर्ट आदि के साथ बड़ा बदलाव दिया
    • business logic को Rust में लिखना और frontend के लिए Dart का उपयोग करना बहुत प्रभावी रहा
    • Flutter/Dart, React की तुलना में समझने में आसान लगता है
    • FRB पर काम करने वाले @fzyzcjy को धन्यवाद
  • UI को Rust की जगह Dart में लिखने के फायदे पूरी तरह स्पष्ट नहीं हैं, लेकिन flutter_rust_bridge का प्रशंसक हूँ

    • fzyzcjy और कम्युनिटी ने Dart से Rust code को बिना रुकावट कॉल करने लायक जो काम किया है, वह Flutter ऐप्स के लिए बड़ी संपत्ति है
    • वीकेंड में Flutter के साथ ImageOptim को फिर से बनाया, और Rust image libraries का उपयोग करके अधिक शक्तिशाली और तेज ऐप बना सका
    • Rust integration की वजह से ऐप अधिक सक्षम है और तेज चलता है
  • यह सराहनीय प्रयास है। अभी Tauri का उपयोग कर रहा/रही हूँ, और दोनों के फायदे-नुकसान जानने की जिज्ञासा है

  • desktop UI के लिए Flutter और backend के लिए Rust का उपयोग करता/करती हूँ

    • bridge की जगह gRPC का उपयोग करके दोनों हिस्सों को अलग रखा है
    • लगता है यह तरीका language-agnostic है और frontend में backend को mock करने के लिए अधिक साफ interface देता है
    • UI और backend को अलग-अलग डिवाइस पर रखकर वास्तविक client/server architecture लागू किया जा सकता है
    • कमी यह है कि interface थोड़ा अधिक verbose हो सकता है
  • बढ़िया काम। rust_flutter_bridge के बारे में अब तक सिर्फ अच्छी बातें ही सुनी हैं

    • यह जानने की जिज्ञासा है कि Flutter, mobile native (Java, Swift) की तुलना में कितना भारी है (final app size), और UI performance कैसी है
  • Flutter का UI बनाने का तरीका पसंद आया, लेकिन Dart खास पसंद नहीं आया

    • सोचता/सोचती हूँ कि सिद्धांततः क्या सिर्फ UI के लिए एक programming language बनाई जा सकती है
    • ऐसी भाषा जो मुख्य programming languages के साथ interface कर सके, जैसे protobuf के IDL format की तरह data define करने के बजाय user interface declare करे
    • QT और XAML याद आते हैं, लेकिन QT open source नहीं है, और XAML भी लगता है कि लंबे समय से उपयोग में नहीं है
  • लगता है कि Google का material design और fireworks effect सबसे अच्छा रूप नहीं है

  • accessibility (a11y) सपोर्ट को लेकर जिज्ञासा है

    • docs में इसके बारे में जानकारी नहीं मिली, लेकिन 2024 में accessibility support के बिना GUI kit जारी करना अकल्पनीय है, इसलिए इसका उल्लेख क्यों नहीं किया गया यह जानना चाहता/चाहती हूँ
  • Chrome shell या web widgets पर निर्भर रहने से यह कहीं बेहतर है, इस प्रयास की सराहना करता/करती हूँ

  • दिलचस्प। IIUC, जिज्ञासा है कि क्या यह source-to-source translation का उपयोग करके किया गया है

    • docs का उपयोगकर्ताओं के लिए इतने स्पष्ट तरीके से लिखा होना प्रभावशाली है
    • इस approach की wasm-आधारित Rust web frameworks से तुलना के बारे में जानना चाहता/चाहती हूँ
    • Rust और Flutter को साथ लाने का एक फायदा यह है कि Flutter पहले से ही एक पूरा framework है, और server तथा client side के बीच code और data structures साझा किए जा सकते हैं