iProcessing is a fascinating little free app and framework for the iPhone that makes it easier to develop visual apps using Processing.js (the JavaScript port of Processing). First, the good news:

  • It’s a great illustration of what’s possible with HTML5’s canvas and JavaScript; namely, high-performance animations supported within the browser framework rather than in a separate plug-in.
  • You do get access to native iPhone/iPod touch (and soon iPad) features, “such as multitouch, accelerometer, orientation, location, sound play/record, app state saving and so on.” Basically, this is possible on the iPhone by wrapping around those native calls. (The same is possible via WebKit on Android.)
  • It’s a good proof of concept and prototype of how you might generally wrap those features on multiple platforms; I’m going to look at it for the same reason to see how they treat the syntax.
  • It’s a terrific tool for prototyping – the team that built it use it for that purpose.
  • You even get Xcode projects out of the box.

There are, however, some significant caveats to consider. They don’t make this less appealing; they’re just worth examining, because it means that this is one in a number of Processing-related tools. I have some reasons to remain more excited about the Android port, which is a truly “native” version of Processing running on a mobile device – which this, make no mistake about it, is not.

  • You may not actually be able to write apps this way. The creators observe, “It is unknown as to whether apps created using the framework will be approved if submitted to the App Store.” Of course, you can still use it as a prototyping tool, as the creators suggest.
  • This will only work with Xcode. Processing on the Android will support coding right from the standard Processing development environment, the simplified sketchpad, or any environment you choose. I really like that Processing sketchpad, even as others don’t – and that’s coming from a dedicated Eclipse user.
  • Because this is Processing.js, and not Processing, there are limitations. You don’t get OpenGL support, for one. Processing on Android will be a fully native version of Processing, with 3D support (via GLGraphics). And because Processing is written in Java, the Java Processing (on Android, Mac, Windows, and Linux) can easily interoperate with the wealth of other available Java libraries out there.

Don’t get me wrong – I’m becoming a huge fan of what the Processing.js folks have done, because it is browser based. It’s more about appreciating these as a set of complementary tools, all using the same syntax, making it easy to sketch in code in a variety of contexts.

Mostly, the appearance of iProcessing is a reminder to me that I never did fully research a question a lot of folks have been asking, which is just how much is possible inside the browser. For instance, could you do a browser Processing.js implementation that would allow those JavaScript sketches to run in Mobile Safari and access some of these features? What about in similar WebKit-based browsers on new Palm, Symbian, and Android devices?

I am truly impressed with this, and since I’m trying to work a bit more with Processing.js, I’ll be downloading this, for sure. I just tend to look at this and see the potential for a cross-platform browser solution, even without Java, and not only the iPhone.

I know we have some WebKit and JavaScript experts out there, so as I work on that larger project, let me know if you have ideas or want to point me in the right direction.

Check out the solution:

Teaser: Processing is Coming to Android