bookmark_borderCreating CoreAnimation Animations

Moving on from Creating CSS Animations, I thought “How can I make this exporter more useful?”.

The answer is of course to completely remove Webkit from the equation, which leaves us with CoreAnimation. The end result being that the animation can be directly compiled into an iPhone or Mac OS X application.

Not going into much detail, CoreAnimation is essentially the library used by Webkit to display and animate any elements which have been transformed by a CSS Transform.

The actual scene is simply constructed using transformed CALayers. As for the animation, a CAKeyframeAnimation is created and attached to each CALayer. In the case of multiple properties being animated at the same time, a CAAnimationGroup is used to group these animations together.

The end result is a handy animation class which creates both the scene and the related animation tracks. i.e.:

CALayer *root = [self.view layer];

// Make anim
MyAnim *anim = [[MyAnim alloc] init];
CALayer *animRoot = anim.root;
[root addSublayer:animRoot];

[anim play]; // easy!

As an example, the MyAnim class for the previously featured walking orange figure is as follows.

Which leads onto a repeat of the question, is there a real-world demand for such a tool yet?

bookmark_borderCreating CSS Animations

CSS Transforms combined with animations are undoubtedly useful. Unfortunately though, the only way to create them is to manually input values and pretty much guess the result.

This methodology pretty much kills any creative aspirations anyone might have in making these animations. So while there are quite a few cool looking examples out there they lack the glamour of say, flash animations.

It seems to me there is a need for a tool which allows anyone to create these css animations in a visual way. As far as I know, no such tool currently exists. So naturally, I set about making something myself.

Rather than make an entire tool from scratch though, I decided to simply write an exporter script for another tool – in this case, Blender.

Why Blender? Well, it exposes pretty much all of the information I require to construct both a scene and animation tracks. Also, since Blender handles 3D scenes, there is a potential to work with 3D CSS Transforms in the future.

As an example, here’s a simple animation of an orange stick man walking across the screen. The stick man was both constructed and animated entirely within Blender, and exported using my export script.


And the scene as seen in blender:

Example animation in Blender

Which is simply a set of planes linked together and animated. Really, it couldn’t be any simpler.

Currently the only browsers which seem to support both CSS transforms and animations are based off Webkit. i.e. Safari and Chrome (including the iPhone and Android browsers).

Which leads onto the question, is there a real-world demand for such a tool yet?

bookmark_borderMaking Money in the App Store: I Give Up

After almost a year of developing a and releasing a handful of iPhone apps to the App Store, I should be rolling in money, right?


In fact, I can officially reveal that with the exception of development contracts, my iPhone apps have netted me a grand total of:


Yes, £0. It takes a lot of face up to facts, but it can’t be much more blunt than that. Granted I did sell a few units, but these were nowhere near the amount required to release any real payment into my bank account.

So what went wrong?

Well to be quite honest, I didn’t really market my apps at all well. I was hoping that simply being in the App Store combined with a word-of-mouth viral networking effect combined with some online ads would be sufficient. From there I could perhaps get some feedback, and introduce improvements in line with demand.

Did it work? Far from it.

Sadly since the iPhone market is pretty much saturated with thousands of apps, this is pretty much impossible to accomplish. You’d probably have more chance winning the lottery than going with that approach.

I even tried making one of my apps free and promoting one of my paid apps in the description. The actual response in sales was negligible.

It seems to me the only viable ways of attracting people to a new app are:

  1. Getting it featured on the App Store
  2. Pushing it out to as many review sites as you can ahead of time
  3. Making it free

With regards to #3, not getting into in-depth analysis I will say this: if you have an app with a remotely useful purpose, people will consistently download it.

For example one of my apps, Anim8gif, gets at least 20 downloads a week – mind you, that figure isn’t really useful since none of those 20 people bother to write a review or send any useful feedback.

Right now though, i’m a bit tired of spending my budget coming up with the next big idea with elaborate marketing that’s likely to bring in tons of revenue. So here’s what i’m going to do.

I’m just giving up on making money off my own iPhone apps altogether. All my current apps: Anim8gif, VidSplit, and Overthecam are now free.

As for making future free apps, I am still undecided. Am I really getting anything out of the experience? Current signs point to no.