thisismyrobot

Littered with robots and Python code

Statistics

This is the current sales state of my Android applications on the Market:

(click to enlarge)
I've decided to show you this as I think there are some interesting statistics here.

Popularity
The most popular (based on downloads/day) is my low-budget animation tester and cat amuser - Mozzy . Since Mozzy was published it has racked up an average of 75 downloads a day, followed by the Lite version of Beat Dialer (25 downloads/day) and the Full version of Beat Dialer (a measly 1.7 downloads/day).

Development effort
The biggest surprise for me was that people seem far more interested in a light-hearted application that was made in 5 hours than a serious music application with hundreds of hours of development behind it.

Earnings
The addition of a free version of Beat Dialer to the Market has helped my 1 sale/week slump in sales (since the new 15 minute market rules were put in place) return to a 1 sale every 2 days average. This recovery is a relief, but is obviously not the sort of return I was expecting.

Active installs
I find it very interesting that all 3 of my applications appear to be settling into 50% active installs. I am not sure if this is a case of my marketing being better than my product or people's general buying behaviour on the Market.

Where to from here
I have to say that this foray into the Android Market has not turned out how I expected. Whilst it was never my intention to become rich from the Market, I certainly was hoping for more interest in paid applications ( as is Google ).

This foray has also made me challenge my long-held belief in the value of "serious applications" written by "serious developers" (at least on the Android platform). Challenging a long-held belief is not a bad thing, it just means that I no longer intend to spend 300 hours developing an application if there is only a $25/month return.

The light at the end of the tunnel
The good news here is that Google has noticed the lack of purchases of paid applications and is intending to add in-application micro-payments and carrier-integrated billing. These two changes should allow for far more flexible sales - for instance Beat Dialer "Free" could come with 5 samples, extra samples are 5 or 10c each, added to your next mobile bill and purchasable in-application. I think this is a good thing.

The big surprise
What has really surprised me, despite all the above problems, is my customers. I have received a number of bug reports via email and communicating with these people have been very positive. The willingness to help and understanding from these people has exceeded my expectations - thanks guys!

Just for fun

I released another Android application today - Mozzy . This was an application based on pure impulse - I designed, developed and released it within the space of 5 hours.

Mozzy is a mosquito simulator, for your cat.

Mozzy keeps your cat amused by moving a mosquito image around your Android 2.1 or greater device's screen whilst playing a realistic buzzing noise.

Mozzy is (obviously) free and is available on the Android Market - just search for "Mozzy".

Free version success

Just a short update; the free version of Beat Dialer was downloaded 161 times in the last 48 hours!

This is good news as it confirms that my application is interesting enough from a relevance/marketing perspective, people are just not interested in spending money on it.

The aim now is to use the greater selection of samples to drive people from the free version to the full version - I'll let you know if this is the case.

15 minute refunds and free apps

At the end of last year Google changed the Android application refund time window to 15 minutes from the existing 24 hours. Since the change was put in place I have seen my (low, but acceptable for a niche application) 4-6 sales a day drop to 3-5 a week.

It is my opinion that Google's changes have made it significantly more difficult to sell applications on the Android market because people no longer "try out" applications that catch their eye, only purchasing applications they are absolutely sure will work.

Instead of complaining on the Google message boards, I have decided to release a free "Lite" version of Beat Dialer with only 5 samples.

It will be interesting to see whether this succeeds in enticing people into purchasing the "sample-packed" version or not - I'll certainly let you know.

Nearing the end

In the next day or so I will be releasing the final significant update to Beat Dialer - version 1.6.

The key changes in this update are:
  • Proper handling of unexpected errors (sorry, Samsung users...) and I've hopefully fixed the Samsung AudioTrack buffer size bug.
  • Larger LEDs for the 4 beats in the bar .
  • Improved pattern mixdown time (2x faster).
  • Changes are now applied at the end of the bar.
  • Oh, and the UI looks completely different:

After significant deliberation I decided to change the left "dial" to a list. This was because the information stored in the left dial was qualitatively independent - there is no consistent and measurable "distance" between a kick drum from a free Crookers sample pack, a hi-hat from a 606 and a snare drum from a 606. As such, a dial that moved by constant distances was not appropriate. Using a dial also meant that a user could only see one sample name at a time.

On the other hand, there is a measurable distance between steps in in a bar - making a dial appropriate.

Beat Dialer now works in a slightly different way - you queue changes to the patterns for one or more samples then "apply" the changes to the audio loop. This allows for more logical progression between patterns - helpful if you are using Beat Dialer for performance-backing beats. The headphones icon indicates that there are "un-applied" changes, the speaker icon indicates that that sample is playing at some point in the loop.

On communication

It's been an exciting week for me - the first time I have really felt like I have "customers."

The first month of sales of Beat Dialer was a very disconnected affair - I watched the sales appear in my Google Checkout whilst I slowly added features. Over this time I received two five-star comments - something that was obviously wonderful.

Then, in the last week I received three one-star ratings, two of which with comments that the device Force Closed on Samsung devices.

As I don't have any Samsung Android devices I was not going to be able to reproduce the error (none of my monkey or functional testing showed any problems). I decided to go out on a limb, contacting the two commenters via the Google Checkout's obfuscated email address and offering a refund for more information on the bug.

The results were spectacular: both commenters replied with details of what lead to the Force Closes and were more than understanding that I couldn't test on all devices. One is also a software developer and offered to test a development build of Beat Dialer. From their feedback I have now implemented a fix - thanks guys!

The lesson I take away from the last week is the importance of communicating with your customers - even when working with micro-transactions on something as anonymous as the Android Market.

The new UI is live!

Through the course of a 5 hour sprint on Christmas Eve I completed and deployed the new UI!


Although there was not a huge amount of difference between the final UI and the prototype I think the changes were important; the addition of small radial makers on the rotary disk to convey that it is spinnable and the addition of small glows to the "on" LEDs.

After a serious paper-prototyping session today I've decided how to implement the next feature: the ability to create and swap between multiple patterns (more on this as it is developed).

Merry Christmas and a Happy New Year guys!

Reworking Beat Dialer's UI


I've decided it is time to give Beat Dialer a new UI. The original UI (above) was intended to be the simplest possible representation of the inputs and status - the disk was one input, the centre of the disk was another. The "LED's" around the outside signified the status of patterns (on the left) and steps (on the right). Initially I thought this UI was the "bees-knees" of Tron-esque minimalism but after a couple of week's reflection I realised there were two major problems with this approach.

Firstly, and least importantly, it was simply the most boring and uninspiring interface an application could have. This had massive implications if I wanted to actually grab people's attention and sell the application on the Android Market.

Secondly, and most importantly, it was impossible for a someone other than myself to use without 5 minutes of instruction. This was a killer for convincing people not to immediately ask for a refund after installing.

To remedy this situation, I've decided to re-represent the same inputs that the old UI had (touch wheels and buttons) in a way that was closer to how real-world versions may look. This should make the application more visually appealing and provide intuitive hints for users without help pages.

So far this reworking looks like the below image (this is not yet on the Market).


I've kept the elements in the same positions, focussing on giving them better visual representations. The dial has a current setting marker and a raised border inside and outside (there is more work to come in this area). The button now has a 3D gradient and an inset LCD to display the current setting info (sample or sequencer step). I expect to release the reworked UI in the next week.

A new take on an old theme

Well, it's been a while (again...)

Since my last post I have been exploring a slightly new direction with my extra-curricular software development, specifically writing mobile applications for the Android platform (my HTC Desire). Ironically my corny "adventures in mobile robotics" tag for this site nearly still works (as long as I don't write anything for the iPhone...)

I've put my first application on the Android Market and although it's hardly taken off like Angry Birds it has managed to by me a 6-pack of beer in four days. The application is a drum machine/sequencer called Beat Dialer that uses a unique and theoretically more touch-orientated user-interface than traditional examples.

I expect to be releasing a slow by steady stream of robust and easy to use niche applications in the future and they'll all get a plug here of course :)

(Oh, and I've bought the www.thisismyrobot.com domain to give this site a bit more visibility.)

The third axis

Well, I've added another axis as well as a (hopefully) descriptive picture to accompany the video .

(Click on the image to make it legible)

More details and videos once I am sure it will actually work...