← Back to context

Comment by rigonkulous

11 hours 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

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/

JUCE is marvelous, and awesome-juce is awesome.

You 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 ;)

  • Well, 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...)