Multi-Platform Desktop app / General recommendation where to start at?


I want to do a small hobby project building a simple multi-platform Desktop (Mac + Windows) audio player showing the waveform and basic EQ options using Juce.

I do have some experience with c# and c++ but I’m more into web development, but learning new stuff is always interesting :slight_smile:

Do you have some suggestions where to start at in order to reuse as much code as possible?

Would Xamarin be an option for this? or should I stick to 2 different code basis, one for Mac (Swift) and one for Windows (C++) ? Or maybe some third option?
(although i have not much experience with Swift/ObjectiveC so that might be a hurdle in the start).

Thanks a lot. Cheers :slight_smile:

With JUCE you can have 100% code reuse - building cross platform audio apps is exactly what it’s designed for! You can also target Linux, Android and iOS from the same codebase.

I would suggest building the JUCE Demo app and looking at the “File Playback” and “Latency Detector” tabs, which demonstrate how to play a file and render a waveform respectively. That should get you 50% of the way there already :slight_smile:

The tutorials will help you get started:

Thanks @t0m I wasn’t aware at first that I can do all the coding using Projucer and prepare projects for the different platforms. Will go through the tutorials.

I’d suggest exporting a project to your current desktop platform and using the respective IDE (Xcode or Visual Studio) to do the coding so you have access to features like like autocomplete and function lookup. The Projucer is much better at project management than it is at editing code.