flutter_rust_bridge.platform += 1: Write GUI on 6 platforms - now including web - with performance, hot-reload, and flexibility

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • flutter_rust_bridge

    Flutter/Dart <-> Rust binding generator, feature-rich, but seamless and simple.

  • Finally, flutter_rust_bridge supports the last big platform - the Web. Now, you can freely write Dart(Flutter) and Rust code, and they will run in Web, phones (Android & iOS), desktops (Linux, MacOS, Windows) automatically.

    . And whaddayaknow, I go to look at the Flutter website and immediately find this all over the place. https://flutter.github.io/samples/#?platform=web, and I don’t think that’s even using Flutter. Then all through https://gallery.flutter.dev/, every place that uses cursor: pointer should be a link—as it is, Ctrl+click or middle-click to open in a new tab don’t work; I can’t hover over the link and see the href at the bottom of the screen; I can’t right click on it and do stuff with it in the context menu; &c. This is bad. Flutter is bad on the web. (Note that when I say things should be a link, that doesn’t imply that clicking on them will reload the page. You’re quite at liberty to intercept click events, and if they have no modifiers (.ctrlKey, &c.) call .preventDefault() and handle the routing yourself, same as you do with your div soup or whatever.) Also: blue underlined links. Accept no alternative, in general. Don’t let the designers make things inaccessible and unusable. If it’s a link, make it obvious it’s a link. Fight back against the tyranny of designers who overstep their bounds. Et cetera. Also, links are very rare in web apps, it's mostly buttons. Depends on the app. I’d actually say that a fairly large fraction of buttons should have been links. Nevertheless, I still get pixel-perfect definition for elements (for example the distance between two elements). While it's possible to achieve that on the web most of the time, sometimes I run into problems where cursing the CSS creators is all I can do, for example when it involves scrollbars (because scrollbars are always inside of elements, never outside, which would make layout easier). You’re approaching layout and design from the wrong end. This is your problem, not the web’s. The web is matching the local platform, and given what screens are, the local platform and the web are right. Also, half of the pixel-perfection you get is a mirage. The fractional pixels are coming for you, spurred on by uncommon zoom levels and the likes. CSS pixels aren’t integers (and CSS is right not to treat them as integers). I don't think it's possible to deviate from that as long as they're trying to make a cross platform UI framework (rather than something purely for the web). It’s easily possible. You just have to accept certain differences rather than trying to steamroll over platform conventions wherever possible. What do you think the web is? It’s all about accepting minor differences and conforming to the local platform. I’m not saying it should target web tech (though to do the web properly, you do pretty much need to match the web’s content and accessibility model), but that it should take the philosophy of the web. I’m tired of talking about Flutter. I think I’ve hated every interaction I’ve ever had with it on desktop platforms. Given their approach, I wish they had never ported it to the web. Goodnight. 🙂

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts