Live data from Hacker News

Revery – Native, high-performance, cross-platform desktop apps

github.com

111–120 of 129 posts

Re: Revery – Native, high-performance, cross-platform desktop apps

#111
post #60
post #15

Has anyone here actually tried using it? I'd be interested to hear a comparison between Revery and Electron in terms of ease of use, performance, drawbacks etc. I read through the README but tbh I'd prefer an external opinion.

look at qmoji[1] a mojibar[2] (electron app) clone written in reasonml. The README includes package size, and memory usage comparisons. [1] https://github.com/jaredly/qmoji [2] https://github.com/muan/mojibar

Looks like this is using Fluid rather than Revery. Not sure about memory usage in Revery but I think it should be lower than that. Definitely something I'll look into

Re: Revery – Native, high-performance, cross-platform desktop apps

#112

Is this targeting the same space as Flutter? That's an enormous amount of work, and can't imagine it being done without a Google-scale level of resources (I'd be happy to be proven wrong, though!).

Not entirely. For now Flutter is focused mainly on mobile apps whereas Revery is focused primarily on desktop apps (though we do plan to tackle mobile apps eventually and Google is sort of moving in the direction of targeting desktop in Flutter).

However, we are like Flutter in that we're implementing all the UI components from scratch. It is a lot of work but I've been shocked by how quickly things have moved -- I made my first PR a little over a month ago and since then we've gotten: checkboxes, sliders, scrolling, buttons, input components, box shadows, overflows, etc. as well as a ton of performance/bug fixes. Our example apps went from rendering images to including an interactive version of Conway's Game of Life seemingly overnight.

Re: Revery – Native, high-performance, cross-platform desktop apps

#113
post #7

Earlier quoted context omitted.

The project looks interesting, but the licensing change from MIT is a bit worrying: "Oni 2 is licensed under the CC-BY-NC-4.0 license." CC licenses are not a good fit for software in general - and "non commercial" isn't very clear. Making something available at zero cost doesn't necessarily make it "non commercial". Ed: and it means that code snippets/widgets from oni2 can't be used elsewhere without careful licensin…

Oni 2 creator here. Agree with your concern 100%. We're working to review the license and come up with a better fit with more clarity. We really just want a license that says - free to use for educational / non-commercial purposes, but a license is required to use in a commercial environment. No real "drop-in" licenses to support this, unfortunately. Some additional thoughts about our considerations here: https://www…

Hm. The problem here is that this sounds like it won't be open/libre/Free, and is likely to have issues with collaboration (on the code).

It sounds like a dual license with AGPL might be what you want?

Just an example, if I work for a year on a free/gratis project using and modifying oni2 - I'll have a disadvantage working in a commercial setting on similar projects - I can't use my own snippets, mixed with oni2 code in my commercial (even if open/free) project...

I think the "shareware" model might work (and eg: giving free licenses for education, non profits etc). But I'm not sure how the "user freedoms" for code can work at the same time as there are restrictions that are unclear.

Maybe the best one could hope for is a source-available license a la tarsnap. But that would pretty much make oni2 a closed (no external collaborators) project.

Maybe that's your intention?

Re: Revery – Native, high-performance, cross-platform desktop apps

#114

Earlier quoted context omitted.

What's "modern"? In no particular order (all of the below I've seen broken in numerous ways by non-native GUIs): - Does it receive proper keyboard focus? - Does it respond to keyboard input? - Does it adhere to the OS color theme? - Does it break OS accessibility features (high contrast/voice over/invert colors/grayscale/font sizes/etc. etc.)? - Does it respect scaling and resolutions? - Is font rendering consistent…

The average app today (see discord) is: Yes Yes Optional, but a nice to have No Yes Yes Yes Yes Yes Yes No (but it needs to be improved) No ( it needs to improve though Same with above What is HIG? Yes Yes

HIG is Human Interface Guidelines [1]

Electron apps often enjoy many of the things in the list for free because it's essentially a browser window disguising itself as an app. And browsers get a lot of stuff "for free" from the OS (not without issues, of course).

[1] https://en.wikipedia.org/wiki/Human_interface_guidelines

Re: Revery – Native, high-performance, cross-platform desktop apps

#115
If anyone is interested in a similar idea, but using javascript (or React), this reminded me of a project I heard of a while ago: https://github.com/parro-it/libui-node. It's built on top of https://github.com/andlabs/libui, "a portable GUI library for C" and it powers a truly native React Native for desktop: https://github.com/kusti8/proton-native.

Disclaimer, I've only ever dabbled in these projects and cannot attest to the quality, package size, speed, etc. Just figured I'd share

Re: Revery – Native, high-performance, cross-platform desktop apps

#116

Earlier quoted context omitted.

> The number of times I've ever heard anyone complain that VSCode reimplements clickable regions that look exactly the same on all platforms instead of using some ugly stock Windows buttons: zero. The number of times I've been annoyed that Electron apps break some semi-obscure but nevertheless important macOS feature: quite high, and it would be much higher if I hadn't sworn off Electron apps long ago.

I'm curious what kind of features you're referring to.

Spotify's "play queue" won't let you scroll the list with your scroll wheel while you're rearranging songs. The only way to scroll the queue while you're dragging and dropping some songs is to put your mouse near the top/bottom of the list view.

Re: Revery – Native, high-performance, cross-platform desktop apps

#117
post #66

Earlier quoted context omitted.

I'm curious what kind of features you're referring to.

Text input lacks expected shortcuts, multi-select, good undo/redo, spellcheck underline, grammar check, smart features, text replacement, transformation conveniences, etc. All menus lack basic/expected items, both in the menu bar to contextual menus (if they exist). No standard find and replace. Missing options for pattern matching, diacriticals, case sensitivity, weird UI, etc. if this is included at all. Low-access…

I've never seen Electron apps lacking proper keyboard behavior for inputs. Do you have an example?

Re: Revery – Native, high-performance, cross-platform desktop apps

#118
post #24

Well the example application seemed fairly solid, well worthy of a screenshot. I would like something like this for some simpler custom tools every now and then. It does seem to exhibit the usual custom rendered app issues. I suppose it is constantly redrawing the screen, as it seems to have constant cpu usage even when doing nothing, so not laptop friendly (though perhaps fixable still). Some of the widget seem fair…

Fun fact in terms of the binary: by default OCaml uses static linking for pretty much everything except your libc, so unless something in the stack is doing something weird wrt linking that binary should contain all the dependencies.

Re: Revery – Native, high-performance, cross-platform desktop apps

#119

> Revery is the same - aside from platform-specific behavior, if your app looks or behaves differently on another platform, that's a bug! I want my applications to feel like they belong to the platform and not identical on every platform

> I want my applications to feel like they belong to the platform and not identical on every platform

Then use the wxWidgets library. It has bindings for many languages, so it probably has bindings for yours.

But more recent applications like SublimeText try a unified look in all platforms, and as long as it is fast enough and crash free, I am OK with that.

Re: Revery – Native, high-performance, cross-platform desktop apps

#120

Earlier quoted context omitted.

> Yeah, Electron already does that. Electron apps don't look like they belong on the platform.

On Linux, what does? There isn't a defined platform to begin with outside of the syscall ABIs.

Most Linux distributions have a de-facto visual design that most applications follow. Generally, if you're using GTK+, this should get applied automatically?
Post reply on HN