Prototyping for iPhone

I had the opportunity to make an interactive sketch for a project on the iPhone the other day. I was pressed for time and really wanted the project. So I decided to take a closer look at tools for rapid prototyping for iPhone/iPad.

I have some limited knowledge from the past in making native apps in Xcode, using Objective-C and all the interface builders wonderful capabilities. But being pressed for time and mostly just wanting to show the concept I looked at Gamesalad, Processingjs, openFrameworks & Cinder++ (I picked those based on my own capabilities out of very many options out there).

Gamesalad – a tool reminding me of how Macromedia Director once was. Easy to work with, powerful with scripting but way too long time and complicated process of getting the app to the client. Very nice features though.

Processingjs – I know Processing quite well at this time so this was an obvious way to go since the html5 works fine under iPhone and iPad. The Processingjs team has made wonders and it was very smooth to get it up and running with the pre-release of Processing0199. The different modes in Processing – ”standard”, ”javascript” and ”android” is wonderful. (Learn more about the upcoming Processing 2.0 from the talk Fry & Reas held at Eyeo). I know Processing, have done a couple of things in processingjs and the clock was ticking. So I simply gave up on openFrameworks and Cinder++ since they were totally new to me.

So I went with processingjs. The sketch was quite fast assembled and it looked and behaved the way I wanted. The js_applet was however somewhat not so perfect on the iPhone since you have to adjust the screen manually if you don’t get the fullscreen option to work, which I didn’t at that time. The iPad became the perfect viewer though. And the computer screen in an modern browser was also ok. It looks a bit weird on the computer screen since the size is all blown up.

So the client got the sketch. In time. Excellent.

Then one night I couldn’t forget all those wonderful apps out there created with Cinder++ & openFrameworks. Both makes apps for iOS. And both are c++ libraries that you can use under Xcode on the mac (and windows with other IDEs of course). And they are ”creative coding” which means that normal designers can handle them with minor difficulties. I downloaded both and started trying out Cinder++. I gave up after realizing how little I had done given the time I had spent and how c++ is NOT for me. The next evening I thought I’d give openFrameworks a quick look. I got hooked very fast. The syntax and structure of the files reminded so much of Processing that I made a port of my simple processingjs sketch in openFrameworks in really no time. It is not as intimidating as the c++ indicates.

So to conclude this I can finally say that Cinder++ is too hardcore for me. The front page of their site is so hard to resist and really inspiring. openFrameworks is really the way to run if the app should run on iOS or MacOSX given my Processing knowledge. For HTML5 and javascript sketches to be run on iPhone or other mobile devices or the web in general, processingjs is an obvious choice. Processing in general is absolutely fantastic with all the libraries and toxiclibs as the lead. Toxis libraries are available as javascript to some extent as well. So the limits to create are once more gone.

UPDATE 2013-01-11: I went Cinder finally anyway. Better performance and better tutorials to get me up and running.