3 puan yazan GN⁺ 2024-08-12 | 1 yorum | WhatsApp'ta paylaş
  • Rust, 8 yıldır "en çok arzulanan programlama dili" seçiliyor ve birçok kişi Rust ile GUI programları yazmak istiyor.
  • Flutter ve flutter_rust_bridge kullanan bir yaklaşım paylaşılıyor.
  • Avantajlar
    • Flutter popüler ve olgun bir platform; birçok geliştirici ve tanınmış marka tarafından kullanılıyor, büyük bir ekosisteme sahip olduğu için istenen özellikleri uygulamak kolay.
    • "Hot reload" özelliği sayesinde UI geliştirme hızlıdır ve çapraz platform desteği ile aynı kod tabanı birden fazla platformda çalıştırılabilir.
  • Dezavantajlar
    • Bu yaklaşım %100 saf Rust değildir.
      • Ancak bu, makro kullanarak veya HTML/CSS/Slint gibi başka dilleri kullanıp özel DSL yazarak çalışan diğer birçok Rust UI yaklaşımına benzer.
    • Web platformuna yönelik eleştiriler vardır.
      • Statik web sayfalarından ziyade web ve diğer platformlardaki "uygulamalar" için daha uygundur (ör. Google Earth, Rive'in animasyon editörü vb.).
    • Flutter çok fazla boilerplate kod gerektirir.

flutter_rust_bridge nedir?

  • İki dil arasında bir köprü oluşturarak tek bir dil gibi çalışmasını sağlar.
  • Çeşitli türleri, &mut, async, trait'leri, sonuçları ve closure'ları otomatik olarak dönüştürür.
  • Rust GUI'yi Flutter ile uygulamanın dışında da çeşitli kullanım senaryoları vardır.
    = Flutter içinde herhangi bir Rust kütüphanesini kullanmak veya algoritma gibi kodları Rust'ta, diğer kodları Flutter'da yazmak gibi

1 yorum

 
GN⁺ 2024-08-12
Hacker News yorumları
  • Birkaç yıldır uygulama geliştirirken bunu kullandım ve genel olarak memnun kaldım

    • v1'den v2'ye yükseltmek zor değildi; v2, birçok faydalı özellik, iyileştirilmiş kod üretim deneyimi ve tokio async desteği gibi büyük değişiklikler getirdi
    • İş mantığını Rust ile yazıp frontend'de Dart kullanmak çok etkiliydi
    • Flutter/Dart'ın React'tan daha kolay anlaşılır olduğunu düşünüyorum
    • FRB üzerinde çalışan @fzyzcjy'ye teşekkürler
  • UI'yi Rust yerine Dart ile yazmanın avantajını çok net görmüyorum ama flutter_rust_bridge hayranıyım

    • fzyzcjy ve topluluğun Dart'tan Rust kodunu sorunsuz çağrılabilir hale getirmek için yaptığı çalışma, Flutter uygulamaları için büyük bir kazanım
    • Hafta sonu boyunca Flutter ile ImageOptim'i yeniden oluşturdum ve Rust görüntü kütüphanelerini kullanarak daha güçlü ve hızlı bir uygulama yapabildim
    • Rust entegrasyonu sayesinde uygulama daha yetenekli ve daha hızlı çalışıyor
  • Takdire değer bir emek. Şu anda Tauri kullanıyorum ve ikisinin artılarını ve eksilerini merak ediyorum

  • Masaüstü UI için Flutter, backend için Rust kullanıyorum

    • Köprü yerine gRPC kullanarak iki kısmı ayırıyorum
    • Bu yaklaşım dil bağımsız ve frontend'de backend'i mock etmek için daha temiz bir arayüz sağlıyor diye düşünüyorum
    • UI ile backend'i farklı cihazlara yerleştirip gerçek bir istemci/sunucu mimarisi kurabilirsiniz
    • Dezavantajı, arayüzün daha ayrıntılı ve uzun olabilmesi
  • Güzel iş. rust_flutter_bridge hakkında sadece iyi şeyler duydum

    • Flutter'ın mobil native'e (Java, Swift) kıyasla ne kadar ağır olduğu (nihai uygulama boyutu) ve UI performansı hakkında merakım var
  • Flutter'ın UI oluşturma yaklaşımını sevdim ama Dart'ı pek sevmedim

    • Teorik olarak sadece UI'ye özel bir programlama dili yapılabilir mi diye düşünüyorum
    • Başlıca programlama dilleriyle arayüz kurabilen, örneğin protobuf'un IDL biçiminde veri tanımlaması gibi veri yerine kullanıcı arayüzü tanımlayan bir dil
    • Aklıma QT ve XAML geliyor ama QT açık kaynak değil ve XAML de uzun zamandır kullanılmıyor gibi görünüyor
  • Google'ın Material Design'ı ve havai fişek efektleri bana en iyi görünüm gibi gelmiyor

  • Erişilebilirlik (a11y) desteğini merak ediyorum

    • Belgelerde bununla ilgili bilgi bulamadım ama 2024'te erişilebilirlik desteği olmadan bir GUI toolkit'i çıkarmayı hayal bile edemiyorum; bu yüzden neden hiç bahsedilmediğini merak ediyorum
  • Chrome shell'e veya web widget'larına bağımlı olmaktan çok daha iyi, emeği takdir ediyorum

  • İlginç. IIUC bunun kaynaklar arası çeviri kullanılarak mı yapıldığını merak ediyorum

    • Belgelerin kullanıcıya açık ve net yazılmış olması etkileyici
    • Bu yaklaşımın wasm tabanlı Rust web framework'leriyle karşılaştırmasını merak ediyorum
    • Rust ile Flutter'ı birleştirmenin avantajlarından biri, Flutter'ın zaten tam bir framework olması ve sunucu ile istemci tarafı arasında kod ile veri yapılarını paylaşabilmeniz