Show HN: ไลบรารี Rust GUI ผ่าน Flutter
(cjycode.com)- Rust ได้รับเลือกให้เป็น "ภาษาการเขียนโปรแกรมที่ผู้คนอยากใช้มากที่สุด" มาเป็นเวลา 8 ปี และหลายคนก็อยากเขียนโปรแกรม GUI ด้วย Rust
- ผู้เขียนแบ่งปันแนวทางที่ใช้ Flutter และ
flutter_rust_bridge - ข้อดี
- Flutter เป็นแพลตฟอร์มยอดนิยมและเติบโตเต็มที่ มีนักพัฒนาจำนวนมากและแบรนด์ดังใช้งานอยู่ พร้อมมีอีโคซิสเต็มขนาดใหญ่ ทำให้สามารถสร้างฟีเจอร์ที่ต้องการได้ง่าย
- ฟีเจอร์ "hot reload" ช่วยให้พัฒนา UI ได้รวดเร็ว และรองรับครอสแพลตฟอร์ม จึงสามารถรันบนหลายแพลตฟอร์มด้วยโค้ดเบสเดียวกันได้
- ข้อเสีย
- แนวทางนี้ไม่ใช่ Rust ล้วน 100%
- แต่ก็คล้ายกับ Rust UI อื่น ๆ อีกมาก ที่ใช้แมโครหรือใช้ภาษาอื่นอย่าง HTML/CSS/Slint เพื่อเขียน DSL แบบกำหนดเอง
- มีเสียงวิจารณ์เกี่ยวกับแพลตฟอร์มเว็บ
- เหมาะกับ "แอป" บนเว็บและแพลตฟอร์มอื่น ๆ มากกว่าหน้าเว็บแบบสแตติก (เช่น Google Earth, โปรแกรมแก้ไขแอนิเมชันของ Rive เป็นต้น)
- Flutter ต้องใช้โค้ด boilerplate จำนวนมาก
- แนวทางนี้ไม่ใช่ Rust ล้วน 100%
flutter_rust_bridge คืออะไร?
- สร้างบริดจ์ระหว่างสองภาษาให้ทำงานได้ราวกับเป็นภาษาเดียวกัน
- แปลงชนิดข้อมูลหลากหลายรูปแบบ,
&mut, async, trait, result, closure ฯลฯ ได้โดยอัตโนมัติ - นอกจากใช้สร้าง Rust GUI ด้วย Flutter แล้ว ยังมีกรณีใช้งานอื่น ๆ อีกมาก
= เช่น ใช้ไลบรารี Rust ใด ๆ ใน Flutter หรือเขียนโค้ดอย่างอัลกอริทึมด้วย Rust แล้วเขียนส่วนอื่นด้วย Flutter เป็นต้น
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ใช้มันระหว่างพัฒนาแอปมาหลายปีแล้ว และโดยรวมก็พอใจมาก
ไม่ค่อยแน่ใจว่าข้อดีของการเขียน UI ด้วย Dart แทน Rust คืออะไร แต่เป็นแฟนของ flutter_rust_bridge
เป็นความพยายามที่น่าชื่นชม ตอนนี้กำลังใช้ Tauri อยู่ และสงสัยเกี่ยวกับข้อดีข้อเสียของทั้งสองแบบ
ใช้ Flutter สำหรับเดสก์ท็อป UI และใช้ Rust สำหรับแบ็กเอนด์
ทำได้ดี ได้ยินแต่เรื่องดี ๆ เกี่ยวกับ rust_flutter_bridge
ชอบแนวทางการสร้าง UI ของ Flutter แต่ไม่ค่อยชอบ Dart
คิดว่า Material Design ของ Google และเอฟเฟกต์ระเบิดวิบวับดูไม่ใช่หน้าตาที่ดีที่สุด
สงสัยเกี่ยวกับการรองรับ accessibility (a11y)
ดีกว่าการพึ่งพา Chrome shell หรือ web widget มาก ขอชื่นชมในความพยายาม
น่าสนใจ IIUC สงสัยว่าสิ่งนี้ทำขึ้นโดยใช้การแปลข้ามซอร์สหรือไม่