Relm4 makes developing beautiful cross-platform applications idiomatic
19 points - last Wednesday at 10:38 AM
Sourceslacknatcher12
today at 1:09 AM
Reading the documentation, I just notice lots of familiarity with my own solution using haskell and gi-gtk4. I think that anybody that read https://bichanna.github.io/posts/tea-time/ will get the same ideas. This basically boils down to:
1. Use a native widget system such as GTK (I evaluated Qt too)
2. Wrap widgets into a component datatype that is aware on how to update the widget when the props/model changes.
3. Define a dispatch closure that is passed to widget that accepts messages. Actions on the widgets should use this instead of mutating a reference.
4. That dispatch closure is component aware and it will call the update function on all the widgets.
There are some extra complications for long running computations but the model is a good base to build on. I wish the best to the relm team, most likely I will use them when programminmg in rust.
Is your Haskell solution open source?
I used plain gtk-rs for my last project and there is definitely some friction between rust and the gobject system. I think for my next project I will give relm4 a try. Apparently you can always drop back to gtk-rs if needed.
This is Gnome/GTK, not cross-platform like I would have expected. A Linux-first approach. Iโm happy that this is the world weโre in now but expect it still to be royal pain to get a build running on Windows. Huge congrats to everyone involved if not!
ThrowawayTestr
today at 1:10 AM
Why no examples of how "beautiful" this library is?
You have to head to the documentation to see an example. It is still Rust, which is a bit of an acquired taste so keeping that beauty off the main page makes sense.
Because itโs GTK4 and itโs expected that you know what that is if youโre using this.
> Built on GTK, Relm4 runs on bare metal with no additional runtime in between.
So, not native in the sense of using or even resembling the native UI toolkit.
unless, of course, your native UI toolkit _is_ GTK
thataccount
today at 1:17 AM
I had to read the comments to figure out whether this was AI or not. I guess that's a sign of the times...