# Example project from my talk "Mobile Application Development with JUCE and Native API’s"

**URL:** <https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010>\
**Category:** General JUCE discussion\
**Created:** [November 21, 2015, 2:39pm UTC](https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010 "2015-11-21T14:39:28Z")\
**Posts on this page:** 9\
**Page:** 1

<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:** [November 21, 2015, 2:39pm UTC](https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010/1 "2015-11-21T14:39:28Z")

</div>

Hi all&nbsp;

Someone requested a link to the example project from my talk at the JUCE Summit. So here it is:

https://github.com/adamski/juce-native-navigation

Also contains a PDF with the slides from the talk.&nbsp;

Any contributions to improve the example project welcome!

&nbsp;

---

<div class="post-metadata">

**Author:** ![rory](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/rory/32/534_2.png) [@rory](https://forum.juce.com/u/rory)\
**Post date:** [November 22, 2015, 11:17pm UTC](https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010/2 "2015-11-22T23:17:24Z")

</div>

Thanks for sharing this!

---

<div class="post-metadata">

**Author:** ![compuswerve](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/compuswerve/32/3007_2.png) [@compuswerve](https://forum.juce.com/u/compuswerve)\
**Post date:** [October 5, 2018, 1:04am UTC](https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010/3 "2018-10-05T01:04:02Z")

</div>

Has anything changed since 2015 that might lessen the need to mix in Native APIs for mobile development?

---

<div class="post-metadata">

**Author:** ![john\_henry](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/john_henry/32/560_2.png) [@john\_henry](https://forum.juce.com/u/john_henry)\
**Post date:** [October 5, 2018, 10:44am UTC](https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010/4 "2018-10-05T10:44:36Z")

</div>

Yes, I think this is still a valid approach for a native look&feel of your app. Also take a look at djinni by dropbox, which will make communication between C++ and Swift / Jave much easier:

> **[dropbox/djinni](https://github.com/dropbox/djinni)**
>
> A tool for generating cross-language type declarations and interface bindings. - dropbox/djinni

It includes bridges for `std::string`, `std::vector` and others and will enable you to have 2-way communication including JUCE style listeners.

Only downside is you have to define the interface in their own format which gets transferred into glue code for C++, pure Objective-C and Java

---

<div class="post-metadata">

**Author:** ![mclovink](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@mclovink](https://forum.juce.com/u/mclovink)\
**Post date:** [September 25, 2019, 8:22am UTC](https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010/5 "2019-09-25T08:22:46Z")

</div>

I’m quite curious if Swift Package Manager can help with this now that iOS is supported and it’s fully integrated in Xcode 11.

---

<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:** [September 25, 2019, 10:00am UTC](https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010/6 "2019-09-25T10:00:00Z")

</div>

I’m not sure how Swift Package Manager would help with this, can you clarify what you mean?

BTW there is a much better example of this now online, see [https://github.com/adamski/audioengine-demo](https://github.com/adamski/audioengine-demo)

---

<div class="post-metadata">

**Author:** ![mclovink](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@mclovink](https://forum.juce.com/u/mclovink)\
**Post date:** [September 25, 2019, 1:14pm UTC](https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010/7 "2019-09-25T13:14:06Z")

</div>

I think you’re right actually. It would mostly help with reuse of the Juce + Glue code which would mostly be beneficial if you’re reusing your Juce components in multiple Swift projects. And I see your project is not trying to do this so sorry for the confusion.

Aside from that, good to know that there’s a new example. I’m going to need to do this soon so this will be very helpful!

---

<div class="post-metadata">

**Author:** ![mclovink](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@mclovink](https://forum.juce.com/u/mclovink)\
**Post date:** [September 25, 2019, 1:16pm UTC](https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010/8 "2019-09-25T13:16:29Z")

</div>

My original strain of thought was that SPM for C++ would work like Cocoapods worked for Objective C where you could keep your main project a pure swift project. While this still may be true, there will still be a need for glue code because C++ and swift don’t like talking to each other (where objc and swift do).

---

<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:** [September 25, 2019, 1:41pm UTC](https://forum.juce.com/t/example-project-from-my-talk-mobile-application-development-with-juce-and-native-api-s/16010/9 "2019-09-25T13:41:28Z")

</div>

> [@adamski](#):
>
> BTW there is a much better example of this now online, see [https://github.com/adamski/audioengine-demo](https://github.com/adamski/audioengine-demo)

Nice! So many thanks for the build stuff, that is a black hole of time for devs migrating from other techs.
