- Rust đã được chọn là "ngôn ngữ lập trình được yêu thích nhất" trong 8 năm, và nhiều người muốn viết chương trình GUI bằng Rust.
- Chia sẻ một cách tiếp cận sử dụng Flutter và
flutter_rust_bridge
- Ưu điểm
- Flutter là một nền tảng phổ biến và trưởng thành, được nhiều nhà phát triển và các thương hiệu nổi tiếng sử dụng, có hệ sinh thái lớn nên có thể dễ dàng triển khai các tính năng mong muốn
- Tính năng "hot reload" giúp phát triển UI nhanh chóng, đồng thời hỗ trợ đa nền tảng nên có thể chạy trên nhiều nền tảng với cùng một codebase
- Nhược điểm
- Cách tiếp cận này không phải là Rust thuần 100%
- Tuy nhiên, điều này cũng tương tự như nhiều UI Rust khác vốn dùng macro hoặc viết DSL tùy biến bằng các ngôn ngữ khác như HTML/CSS/Slint
- Có những chỉ trích về nền tảng web
- Phù hợp hơn với các "ứng dụng" trên web và các nền tảng khác (ví dụ: Google Earth, trình biên tập hoạt ảnh của Rive, v.v.) hơn là các trang web tĩnh
- Flutter cần khá nhiều mã boilerplate
flutter_rust_bridge là gì?
- Tạo cầu nối giữa hai ngôn ngữ để chúng hoạt động như một ngôn ngữ duy nhất
- Tự động chuyển đổi nhiều kiểu dữ liệu,
&mut, async, trait, result, closure, v.v.
- Ngoài việc hiện thực GUI Rust bằng Flutter, còn có nhiều trường hợp sử dụng khác
= Chẳng hạn dùng bất kỳ thư viện Rust nào trong Flutter, hoặc viết phần như thuật toán bằng Rust và phần còn lại bằng Flutter
1 bình luận
Ý kiến trên Hacker News
Đã sử dụng khi phát triển ứng dụng trong vài năm và nhìn chung khá hài lòng
tokioasync, v.v.Không rõ lợi ích của việc viết UI bằng Dart thay vì Rust, nhưng là fan của flutter_rust_bridge
Đây là nỗ lực đáng khen. Hiện đang dùng Tauri và tò mò về ưu nhược điểm của hai bên
Dùng Flutter cho desktop UI và Rust cho backend
Làm tốt lắm. Chỉ nghe những điều tích cực về rust_flutter_bridge
Thích cách Flutter tiếp cận việc xây dựng UI, nhưng không thích Dart lắm
Không nghĩ Material Design của Google và các hiệu ứng hào nhoáng là thứ trông đẹp nhất
Tò mò về hỗ trợ accessibility (a11y)
Tốt hơn nhiều so với việc phụ thuộc vào Chrome shell hay web widget, xin khen ngợi nỗ lực này
Thú vị. Nếu hiểu đúng thì đang tò mò liệu điều này có được thực hiện bằng dịch mã nguồn sang mã nguồn hay không