I've done something similar, but with JUCE [1] - which is a very amazing framework for building audio software, plugins, synthesizers and things.
I tell you, there are very few things more satisfying than seeing the same high performance C++ codebase running on Windows, Linux, MacOS, iOS and Android .. and the users don't know, don't care, and remain happily oblivious to the fact that none of the controls they are so gleefully slinging around are native. They Just Work™. (Including with Accessibility features..)
I actually came across JUCE the other day for the first time. I was wondering -would it be a really terrible idea to make a general purpose cross-platform GUI with this?
Why would it be terrible? JUCE is meant to write general purpose cross-platform GUIs with.
It has a focus on audio because that's its niche and where it originally came from, but it's fine to use it for general purpose stuff. Is that what you mean?
Basically, yes. I came across a few comments that suggested it was great for audio UIs, but very unwieldy for anything outside that (things like non-Latin text rendering, navigation stacks, etc). So while it was possible to build general UIs in JUCE, you needed to go to a lot of effort (at least compared to something like Qt/Flutter/etc).
Admittedly I didn't dig really deep so I don't know how valid these criticisms are - so I was wondering if you had some tales from the trenches and how it stacks up against "less niche" UI kits.
I'm afraid I only used it for some toy applications and it was mostly fine, but I do concur that if you're going for a 'just a bunch of forms' desktop application you'll find more out-of-the-box features in something like Qt.
If, however, your application mostly consists out of custom GUI elements then JUCE is pretty compelling.
Cool. Recently I had to decide on a cross-platform solution for Mac, Windows, and potentially iOS and Android. After looking into quite a few candidates and reading a lengthy thread on here covering that very topic, my conclusion (and that of the HN thread as well) was that Qt was still the most viable solution. That is what we went with, and it's working out reasonably well. But I have wondered about game engines and Godot specifically, given its lighter, 2-D focus.
Our app makes use of quite a few system/hardware resources, like USB and Bluetooth. Qt (irritatingly) lacks a USB library, so it has no advantage over a game engine there. But what about other system utilities like menus, disk access, and so forth?
And of course mobile targets seem problematic. Can anyone weigh in on Godot vs. Qt for cross-platform/cross-device-type applications?
unreal engine is more than just rendering. Like QT, it's a cross platform application toolkit. There's no reason you couldn't port the underlying platform (which is reasonably well abstracted) to something lower level
I wanted to see if they actually handle text well (https://lord.io/text-editing-hates-you-too/) but every one I download to Mac the OS said "This App is damaged and can't be opened"
Does the UI toolkit support basic text operations like copy-pasting or selecting text? This is a common problem in the alt-UI scene, basic stuff doesn't work after years of development. I don't want to ship an electron app either but at least it has everything everyone has come to expect.
Layout is almost WYSIWYG and easy to get started with a simple download, resulting binary is small, really easy to integrate with an underlying 2D or 3D scene, lots of controls, built in scripting for simple things, great interop with native code for complex things, can deploy to multiple platforms with one project, everything is open source.
I tell you, there are very few things more satisfying than seeing the same high performance C++ codebase running on Windows, Linux, MacOS, iOS and Android .. and the users don't know, don't care, and remain happily oblivious to the fact that none of the controls they are so gleefully slinging around are native. They Just Work™. (Including with Accessibility features..)
[1] = http://juce.com/