3 poin oleh GN⁺ 2024-08-12 | 1 komentar | Bagikan ke WhatsApp
  • Rust telah dipilih sebagai "bahasa pemrograman yang paling diinginkan" selama 8 tahun, dan banyak orang ingin menulis program GUI dengan Rust.
  • Membagikan pendekatan yang memanfaatkan Flutter dan flutter_rust_bridge
  • Kelebihan
    • Flutter adalah platform yang populer dan matang, digunakan oleh banyak developer dan brand terkenal, serta memiliki ekosistem besar sehingga fitur yang diinginkan dapat diimplementasikan dengan mudah
    • Dengan fitur "hot reload", pengembangan UI menjadi cepat, dan karena mendukung lintas platform, aplikasi dapat dijalankan di berbagai platform dengan codebase yang sama
  • Kekurangan
    • Pendekatan ini bukan Rust murni 100%
      • Namun ini mirip dengan banyak UI Rust lain yang menggunakan macro atau memakai bahasa lain seperti HTML/CSS/Slint untuk menulis DSL kustom
    • Ada kritik terhadap platform web
      • Lebih cocok untuk 'app' di web dan platform lain (misalnya Google Earth, editor animasi Rive, dll.) daripada halaman web statis
    • Flutter memerlukan banyak kode boilerplate

Apa itu flutter_rust_bridge?

  • Membuat bridge antara dua bahasa agar bekerja seolah-olah sebagai satu bahasa
  • Secara otomatis mengonversi berbagai tipe, &mut, async, trait, result, closure, dan lain-lain
  • Selain mengimplementasikan GUI Rust dengan Flutter, ada juga berbagai use case lain
    = Misalnya menggunakan library Rust arbitrer di Flutter, atau menulis kode seperti algoritme di Rust dan kode lainnya di Flutter

1 komentar

 
GN⁺ 2024-08-12
Komentar Hacker News
  • Sudah digunakan selama beberapa tahun sambil mengembangkan aplikasi, dan secara keseluruhan merasa puas

    • Upgrade dari v1 ke v2 tidak sulit, dan v2 membawa banyak fitur berguna, pengalaman code generation yang lebih baik, dukungan async tokio, dan perubahan besar lainnya
    • Menulis business logic dengan Rust dan menggunakan Dart untuk frontend terbukti sangat efektif
    • Menurutnya Flutter/Dart lebih mudah dipahami daripada React
    • Menyampaikan terima kasih kepada @fzyzcjy yang telah mengerjakan FRB
  • Tidak begitu paham apa keuntungan menulis UI dengan Dart alih-alih Rust, tetapi merupakan penggemar flutter_rust_bridge

    • Pekerjaan fzyzcjy dan komunitas yang memungkinkan kode Rust dipanggil dengan mulus dari Dart menjadi aset besar bagi aplikasi Flutter
    • Selama akhir pekan, ia membangun ulang ImageOptim dengan Flutter, dan dengan menggunakan library gambar Rust, bisa membuat aplikasi yang lebih kuat dan lebih cepat
    • Berkat integrasi Rust, aplikasi menjadi lebih mampu dan berjalan lebih cepat
  • Upaya yang patut dipuji. Saat ini sedang memakai Tauri dan penasaran dengan kelebihan serta kekurangan keduanya

  • Menggunakan Flutter untuk UI desktop dan Rust untuk backend

    • Memisahkan keduanya dengan memakai gRPC, bukan bridge
    • Menurutnya pendekatan ini tidak terikat bahasa dan memberikan antarmuka yang lebih rapi untuk mem-mock backend dari frontend
    • UI dan backend bisa ditempatkan di perangkat yang berbeda untuk mewujudkan arsitektur client/server yang sesungguhnya
    • Kekurangannya, antarmukanya bisa menjadi lebih verbose
  • Kerja bagus. Hanya mendengar hal-hal baik tentang rust_flutter_bridge

    • Penasaran seberapa besar Flutter dibandingkan native mobile (Java, Swift) dalam hal ukuran aplikasi akhir, serta bagaimana performa UI-nya
  • Menikmati pendekatan Flutter dalam membangun UI, tetapi tidak terlalu menyukai Dart

    • Secara teori, mungkin saja dibuat bahasa pemrograman khusus UI
    • Sebuah bahasa yang bisa berinteraksi dengan bahasa pemrograman utama, misalnya seperti format IDL pada protobuf, tetapi alih-alih mendefinisikan data, bahasa itu mendeklarasikan antarmuka pengguna
    • QT dan XAML terlintas di pikirannya, tetapi QT bukan open source dan XAML tampaknya sudah lama tidak digunakan
  • Menurutnya material design Google dan efek kembang api bukanlah tampilan terbaiknya

  • Penasaran soal dukungan aksesibilitas (a11y)

    • Tidak menemukan informasi tentang itu di dokumentasi, tetapi sulit membayangkan toolkit GUI dirilis pada 2024 tanpa dukungan aksesibilitas, jadi penasaran mengapa itu tidak disebutkan
  • Jauh lebih baik daripada bergantung pada shell Chrome atau widget web, salut untuk upayanya

  • Menarik. IIUC, ia penasaran apakah ini dibuat dengan menggunakan translasi antar-sumber

    • Dokumentasinya ditulis dengan jelas untuk pengguna, yang cukup mengesankan
    • Ingin tahu tentang pendekatan ini dan perbandingannya dengan framework web Rust berbasis wasm
    • Salah satu keuntungan menggabungkan Rust dan Flutter adalah Flutter sudah merupakan framework lengkap dan kode serta struktur data dapat dibagikan antara sisi server dan klien