# Is JUCE suitable for my application?

**URL:** <https://forum.juce.com/t/is-juce-suitable-for-my-application/30685>\
**Category:** Getting Started\
**Created:** [December 4, 2018, 9:26am UTC](https://forum.juce.com/t/is-juce-suitable-for-my-application/30685 "2018-12-04T09:26:51Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![stokestack](https://avatars.discourse-cdn.com/v4/letter/s/8e7dd6/32.png) [@stokestack](https://forum.juce.com/u/stokestack)\
**Post date:** [December 4, 2018, 9:26am UTC](https://forum.juce.com/t/is-juce-suitable-for-my-application/30685/1 "2018-12-04T09:26:52Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![adamwilson](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/adamwilson/32/1387_2.png) [@adamwilson](https://forum.juce.com/u/adamwilson)\
**Post date:** [December 4, 2018, 11:42am UTC](https://forum.juce.com/t/is-juce-suitable-for-my-application/30685/2 "2018-12-04T11:42:10Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![ttg](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/ttg/32/14456_2.png) [@ttg](https://forum.juce.com/u/ttg)\
**Post date:** [December 4, 2018, 12:11pm UTC](https://forum.juce.com/t/is-juce-suitable-for-my-application/30685/3 "2018-12-04T12:11:12Z")

</div>

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

However,

- Is there particular reason to favour C++?

- Did you check [Xamarin (Visual Studio)](https://visualstudio.microsoft.com/xamarin/)?

---

<div class="post-metadata">

**Author:** ![TeotiGraphix](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/teotigraphix/32/2016_2.png) [@TeotiGraphix](https://forum.juce.com/u/TeotiGraphix)\
**Post date:** [December 4, 2018, 12:13pm UTC](https://forum.juce.com/t/is-juce-suitable-for-my-application/30685/4 "2018-12-04T12:13:37Z")

</div>

> [@adamski](#):
>
> Maybe we should write up a tutorial at some point!

Interested, I need to check out your talk.

---

<div class="post-metadata">

**Author:** ![adamwilson](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/adamwilson/32/1387_2.png) [@adamwilson](https://forum.juce.com/u/adamwilson)\
**Post date:** [December 4, 2018, 12:28pm UTC](https://forum.juce.com/t/is-juce-suitable-for-my-application/30685/5 "2018-12-04T12:28:21Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![TeotiGraphix](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/teotigraphix/32/2016_2.png) [@TeotiGraphix](https://forum.juce.com/u/TeotiGraphix)\
**Post date:** [December 4, 2018, 12:29pm UTC](https://forum.juce.com/t/is-juce-suitable-for-my-application/30685/6 "2018-12-04T12:29:22Z")

</div>

> [@adamski](#):
>
> Android in line with other platforms in terms of being able to all `addToDesktop` for a component.

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

I thought this had to do with something else.

---

<div class="post-metadata">

**Author:** ![stokestack](https://avatars.discourse-cdn.com/v4/letter/s/8e7dd6/32.png) [@stokestack](https://forum.juce.com/u/stokestack)\
**Post date:** [December 4, 2018, 6:16pm UTC](https://forum.juce.com/t/is-juce-suitable-for-my-application/30685/7 "2018-12-04T18:16:28Z")

</div>

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.
