Seen, gone.

"Seen, gone." is my first (serious) incursion in Android development. Yeah!

As the description says:

Take a picture, watch it morph into something different - yet related to its true origin. And before you can blink twice, it's gone, destroyed by the very same hands that created it.

To escape from the usual demoscene non-interactive demonstrations, I decided to do something interactive but that still used a bit of processor power, so that I could see what could the platform do. I had already tried to do some audio stuff, but the results were a bit disastrous. I might come back to that field again; maybe I will be more inspired or I will know how to do things 'the proper way' and it will end up being a more satisfying experience.

For this, I began using Canvas and only integer math to speed things up but the results were horrible; using Canvas for this was just too much and there weren't available cycles for anything else. It was unacceptably janky.

Since I was determined to improve things, I watched the mighty session by Chris Pruett at past year's Google IO and understood why things weren't quite working the way I expected them to do. After much cursing myself for not having watched the presentation before, I replaced Canvas with OpenGL ES --in which I still miss good old immediate mode, but hey... it's way faster!-- and float calculations (to my surprise, you can even afford a few float operations!), plus reorganized pretty much everything, and rewrote the rest. Core calculations could probably be optimized with native C code but I didn't want to limit myself to non-portable code yet. Although... are there any Android devices which are not ARM based? Heh!

It's been a very instructive experience; I've learnt a lot doing this --the Garbage Collector and I have become almost close friends, so to say-- and obviously it will help me to create more Android applications in the future.

But in the meantime, there's another demo waiting to be finished!

And yes, this app is what I wanted to finish a couple of days ago, just in case you missed that post.