Is JUCE suitable for my application?

I did a bit of research on cross-platform development tools, and JUCE never came up. It was only through word of mouth that I heard about it; maybe because it’s mostly marketed as a tool for developing audio applications.

I need to build an application for iOS and Android that controls other (non-phone) devices using Bluetooth, has access to the GPS functions of the phones, and perhaps uses the camera to record video. Being able to build Windows and Mac apps with the same codebase is highly desirable as well.

Is JUCE a viable choice for this? The price is reasonable (alternatives like Qt are much more expensive) and we’d like the environment to be as lean as possible.

Thanks for any input!

My advice, would be that JUCE is great for writing the cross-platform bits of your codebase, i.e. core logic, DSP, and custom graphical components, but unless you only need a single screen or the app does not have to look “native”, I would build the main UI using the native tools (i.e. Xcode and Android Studio) and then pull in your JUCE code as a dynamic library subproject.

We showed how to do this as part of our “Under the Hood of JUCE” workshop at ADC, and IMO its a really neat way to use JUCE within a “native” app. Maybe we should write up a tutorial at some point!


as @adamski hinted. if you have some DSP especially with audio then JUCE would be very useful.


1 Like

Interested, I need to check out your talk.

The talk I did a few years back is pretty outdated and I overcomplicated the iOS stuff. Very recently there has been a significant update to how JUCE interacts with Android making this kind to technique much easier, and brings Android in line with other platforms in terms of being able to call addToDesktop for a component.

The workshop we did was not recorded.

Ok, yes I have seen these threads, I know what you are talking about.

I thought this had to do with something else.

Thanks for the responses, guys.

I looked at things like React Native, but the reviews I read on them indicated that you always needed to write some native layer to use the hardware-related features I’m talking about. I’m going to take a closer look at Xamarin; but it’s probably not a contender because of C#, which is not used anywhere in my company. Also, we need to build for an embedded Linux environment.

We do use C++, so using JUCE for the core object model in our app might provide some benefit; I wish the iOS and Mac generators produced Swift instead of Objective-C, but I guess that doesn’t really matter if I’m just building a library.

Our app doesn’t have to look native, but it’s also not single-page.