[PD] Needing to build an Android/iOS application.

Dan Wilcox danomatika at gmail.com
Mon Nov 16 21:06:45 CET 2015

Sounds like you’re going to have to learn *alot* really quickly. There is no *easy way*, especially when you want to distribute things on the various App Stores. I’d recommend partnering with a mobile app developer so you can focus on the PD stuff, otherwise you’ll be spending a long time getting the hang of things before you actually get to do the actual app. Trust me.

For something simple, quick, and dirty, I’d highly recommend OpenFrameworks.

For platform specific stuff, work with native Android and iOS directly. Both have great frameworks, development environments, documentation, etc. libpd provides project files to build for both. If the core of the work is in the Pd patches themselves and the UI is mainly a thin skin, you could share the same patches and just write the UI natively for both platforms.

> Regarding packaging MobMuPlat/PdParty as a standalone application: it is technologically straightforward since they are open source , you'd have to hack a few lines and re-build the app and sign it. The license for MobMuPlat allows it, I'm assuming that PdParty/PdDroidParty does as well but you'd have to check that. See my notes at the very last post here: https://cycling74.com/forums/topic/running-max-map-on-a-tablet/ <https://cycling74.com/forums/topic/running-max-map-on-a-tablet/>. 

PdParty is about to be updated and hopefully uploaded to the App Store in December. I’d kind of appreciate it if I was the first one to do that … :D

> On Nov 16, 2015, at 9:21 AM, pd-list-request at lists.iem.at wrote:
> Hi, there. I would appreciate so much your help for me to decide if I will accept a job and how to go on with it.
> I have a customer who needs an Android/iOS app that they will give to his customer who buys them a "device" (this customer of mine is not a multimillonaire company. It's far away from being like that)
> The app would be something like the mockup.png attached and will do something like this:
> First instance:
> - It opens a wav/mp3 (max: 1 hour).
> - You will see the soundwave and will can make zoom in/out to be precise (if with gestures, much better).
> - You will can play/pause/stop the audio from any place in the timeline.
> - You set up to 256 markers/labels in the timeline.
> - When you click/tap a marker/label, a new window appears to modify its information (time/color/type/etc).
> - It will convert each mark to a 6 bytes group.
> - It save/load files with all this markers (in binary).

This is all possible.

> - It will send this file, by Bluetooth through the serial port, to the "device”.

This is not possible. Better to use the built in file access (iTunes File sharing over USB, Android SD card) or a mini webserver people can point a browser or FTP program to.

> Second instance:
> - The app will start playing the wav/mp3 file.
> - It will send (by Bluetooth) the "start" command to the device.
> - (The device starts its timer and already has the sequence file).
> - For a perfect syncrhonizing, every second, the app will send the actual time (by Bluetooth).

Again, you’re not going to use Bluetooth for this. Or at least you probably *could* but it wouldn’t be as easily done as using something like OSC over a wifi network.

> I have several options to do this. I ask you if they are possibles and how difficult are they... and the final decision owns to the customer. My skills are: I know PureData and Python. So:
> Using MobMuPlat (http://mobmuplat.com/ <http://mobmuplat.com/>)
> I know it is not a framework. I would make a PureData patch and the MobMuPlat interface. My customer would tell their customers to download MobMuPlat (Android: https://play.google.com/store/apps/details?id=com.iglesiaintermedia.mobmuplat <https://play.google.com/store/apps/details?id=com.iglesiaintermedia.mobmuplat>, iOS: https://itunes.apple.com/ar/app/mobmuplat/id597679399?mt=8 <https://itunes.apple.com/ar/app/mobmuplat/id597679399?mt=8>) and give them the file that I build.
> Pros:
> - It's the easiest-way.
> - MobMuPlat is already in Google Market and iTunes.
> Contras:
> - It is not a standalone app, as they would like.
> Doubt (and it's important):
> - Could libpd send messages to serial port? There's [comport], but it is an external. Is it already compiled for Android/iOS?

No serial port access. Comport will not work and MobMuPlat would beed to be rebuilt to include it anyway.
> Using Kivy (http://kivy.org <http://kivy.org/>)
> This is a more difficult option. It uses Python to make the app. And there's Kivy/audiostream (https://github.com/kivy/audiostream <https://github.com/kivy/audiostream>) that gives the phone a access to the speaker and mic. In its example/ folder, there are puredata examples. Obviously, using libpd.
> Pros:
> - I would also make the patch in PureData.
> - It would make a standalone app (with own name, splash screen, etc).
> - It would works in Android, iOS, Windows, Linux, OSX.
> Contras:
> - I've never used Kivy.
> - I've never used any framework.
> - I've never used libpd.
> - I should build almost from scratch an application.
> - I should compile for most Android and iOS versions...
> - The difficulty of uploading an app to Google Market and iTunes.
I don’t know about this one. You’ll need probably have a harder time setting up libpd to work with it.
> Using OpenFrameWorks (http://openframeworks.cc/ <http://openframeworks.cc/>)
> Well... I don't know coding C++. I know that this would be the best framework to do something like this... but it's furthest away from me. There's ofxPd (https://github.com/danomatika/ofxPd <https://github.com/danomatika/ofxPd>).
This will work out of the box for both iOS and Android with the same core code. You just need to use the Project Generator to create different built files for each platform. It’s perfect for simple things but you will *have* to use native code in order to create native GUIS.
> Using PdDroidParty and PdParty
> Now, I'm seeing their webpages/githubs. I didn't think in this possibility... Could it become one more?
> Pros:
> - Another easiest way.
> - It could compile a standalone app (???)
DroidParty supports this. PdParty does not currently. I’ll be working on it in the coming weeks, so we’ll see.
> Contras:
> - As other frameworks: What about compiling for most Android and iOS versions…?
Good luck on that. It’s *never* easy as APIS change over time. Android is notorious for various device support using the same versions
> - Uploading to markets...?

That will be platform specific and relatively detailed, not hard, but will take time.

Dan Wilcox
@danomatika <https://twitter.com/danomatika>
danomatika.com <http://danomatika.com/>
robotcowboy.com <http://robotcowboy.com/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20151116/d49dc569/attachment-0001.html>

More information about the Pd-list mailing list