3 ms·
My coherent GUI strategy: just use JUCE. Invested in it, shipped it, seen it solve the cross-platform problem beautifully. Can just write C++, and see it runn
by rigonkulous 7mo ago
My coherent GUI strategy: just use JUCE.
Invested in it, shipped it, seen it solve the cross-platform problem beautifully.
Can just write C++, and see it running everywhere.
The JUCE GUI capabilities are more than adequate for many, many things.
There are other platform-scaffolded cross-platform frameworks. JUCE is cromulantly FNORD.
- SyneRyder 7mo agoThat sounds intriguing - are there examples of desktop apps (eg productivity apps) that are made with JUCE? I'm already very familiar with JUCE in VST plugins, I have hundreds of VSTs made with JUCE and I love their UIs. But I don't think I've ever seen it for a standalone business application? The JUCE pricing is certainly far more reasonable than Qt.
- rigonkulous 7mo ago>desktop, productivity apps You can configure your JUCE project to build to any of the standard audio plugin formats, or for it to build a standalone app for the target platform (i.e. plugins, desktop, mobile, embedded) or indeed to build all of these targets, at once, in one build. However, during app (i.e. non-plugin) development I often switch between linux and macos environments as part of my workflow, and during testing after I've pushed to the proper branch, the build server plops out the .exe/.pkg/.app/.tar.gz bundles as needed for the test group to crack at it. JUCE, being at heart a C++ framework intended to be the engine of a very diverse swath of different OS, plugin, and packaging standards, does all the glue to get you there - how you use it, is up to you. (All of this can happen in github actions, btw, really easy to set up..) Yes, there are 'business'/'productivity' UI elements in JUCE app targets, and yes they are consistent across all platforms. And yes, you can for example build a UI from an .xml form, with cross-platform datastore and so on, easily enough. Here's a nice place to start, if you wanna understand JUCE capabilities from a 'productivity'-app perspective: https://www.youtube.com/watch?v=3IaMjH5lBEY https://www.youtube.com/watch?v=3IaMjH5lBEY David Rowland, a core JUCE developer, explaining the guts of things. Basically, the scope is high performance applications, and there are no really good reasons for why a high performance application cannot also be a productivity app - the distinction is arbitrary - except of course you ask, for the GUI! But: JUCE' GUI is pretty darn good, I have to say, in face of the onslaught of platform vendor fuckery. You can embed a WebView if you really need it, and wire it up to the rest of the cross-platform event handing system, etc. But I think its not really needed, given the plethora of 'normal' UI controls, out of the box. If you're serious about looking at JUCE for a variety of application types, then a lot of the questions you're going to have about JUCE' GUI suitability for standalone business applications can be answered by running the DemoRunner application that's built-in to the JUCE codebase. Clone the repo, build the DemoRunner project for your platform (or all of them), and you'll see - there are plenty of business-like cross-platform UI elements in the kitty. A huge collection of business-/productivity- like UI elements, right out of the box. (High-performance plugin UI's are there with the business UI stuff, too.) And .. once you've marvelled at the glory of DemoRunner(.exe,.app,.apk)[etc.] .. please do yourself a favour and spend an extra hour parsing the awesome-juce list: https://github.com/sudara/awesome-juce/ https://github.com/sudara/awesome-juce/ JUCE is marvelous, and awesome-juce is awesome.
- SyneRyder 7mo agoYou might have sold me on this, because on top of the productivity-ish stuff I do, I'd really love to get into VST development. If I hadn't fallen into Photoshop plugins first, I would always have been an audio plugin dev. I loved PSP VintageWarmer in the late 90s. The UI in Rowland's demo at 32min is feeling a little DearImGui / Reaper-ish, kinda bland while also being non-native. But I've seen all the UIs that Arturia & everyone else makes with JUCE, even what Valhalla does with it with their NASA inspired interfaces, so it can clearly make amazing stuff. I can't believe we're now looking to PACE of all companies to help indie devs. I hated iLok for so long even though I have two iLok dongles now ;)
- rigonkulous 7mo agoWell, I hope you will take a serious look at it as a technology stack worth learning, because when you get things rigged up so that you can really just push your changes into a repo and get the builds for all platforms, its some kind of magic, and you will - most likely - be really inspired to create something great. Which, I hope, you do. (PS; - the default UI skin is, imho, intentionally a tad bland in order to promote developer uptake of JUCE' pretty amazing skinning/UIBehaviour system...)
- hermitcrab 7mo agoQt Small Business pricing is very reasonable.
- SyneRyder 7mo agoI think I prefer that JUCE is a one-off licence at $800 (for small business) and that they offer a 30% discount if you want to upgrade when they release a new major framework version. I'd rather not get locked into Qt's annual $618/subscription every year just to continue distribution & development. But Qt has the bonus of also running on HaikuOS, and I've definitely seen more business apps in Qt (pretty sure 010 Editor is Qt).
- okanat 7mo agoYou can also use LGPL. You only need to disclose the changes you made into Qt itself and allow changing it with another DLL. That's it.
- hermitcrab 7mo agoSome modules, such as QtCharts, aren't available in the LGPL version.
- duped 7mo agoJUCE has too many downsides to seriously recommend imo. "Just write C++" is also doing heavy lifting, since JUCE is its own bespoke flavor of C++.
- InfiniteAscent 7mo agoUse JUCE as much as you like, but please, stay away from those 'out-of-the-box' horizontal sliders it seems to prioritize (given how they swarm in the many VSTs made with JUCE). If sliders are vertical in the real world, there’s a reason for it that Bruce “Tog” Tognazzini summarizes perfectly: “Most of us […] have our forarms mounted on a pivot we like to call our elbow. That means that moving our hand describes an arc, rather than a straight line. Demanding that pivoted people move a mouse pointer along in a straight line horizontally is just wrong.” Source: https://www.asktog.com/columns/022DesignedToGiveFitts.html https://www.asktog.com/columns/022DesignedToGiveFitts.html
- rigonkulous 7mo agoJUCE' GUI framework is extremely versatile - if that default irks you, its a couple lines of code to get pretty much any control to behave itself.