Jul 24
I had never imagined that I would have done very well selling an iPhone app in the app store; it’s just so crowded and being noticed is notoriously difficult.  I had realistically only hoped to cover the $99 developer’s license.  On the peripheral of my hopes lied covering the cost of the mac mini I had bought to write code on (though my mac mini has wormed its way into my office as my primary machine when not doing graphic design or 3D animation/modeling ).  Never did I imagine the cold, dark reality that are my sales numbers.
I’ll cut to the chase; In two months, Robodamus has only sold 60 copies at $.99.  Apple takes $.29 out of each dollar, so after two months (May 22 – July 23) I have generated a grand total of $42.  That’s right; I’ve only made $42.

Below is a graph of my sales; and “yes” the y axis only goes up to 6….
Underwhelmed?

I was at first, but one has to understand that Robodamus isn’t a game and it isn’t a utility; It’s a step above a fart app, for sure, but it really isn’t something that someone needs.  It is a novelty app, and that makes it hard to sell.  The second thing to understand is that I am guessing on what to do with regard to marketing this app; I’m just doing the most obvious things.  The third thing, which I knew going in, is that the app store is huge; my app is merely a grain of sand on the app store beach.  With nearly a quarter million apps in the store, as of this writing, getting noticed is fairly difficult.
So, if you hadn’t been following this blog until this point here’s the backstory:

Origins
I started looking to coding for the iPhone the day I bought my first iPhone in June 2009.  I opted for the 32 GB iPhone 3Gs and managed to get mine the first day it was released.  I just had to code for this thing.  I write code for a living, but the work I do isn’t nearly as sexy(depending on your perspective) as writing for the iPhone.  I enjoy my work, but it isn’t something that you can demonstrate to friends and family.
Two months later I ordered a mac mini and began learning how to develop on the iPhone.  Since I was working full time (and sometimes more than full time depending on the project) I had limited time during the evenings and the weekends to start learning the ropes.  Fortunately I wasn’t too phased by using a mac, as I some limited to exposure to them in ‘98 or ‘99 when I attended an art school.  Additionally I had been exclusively using linux at work, so at least the command line was pretty familiar.
My bought two books to use as a guide on my iPhone development path, “Beginning iPhone Development” by Mark LaMarche and “iPhone Application Development for Dummies” by Neal Goldstein.  Both books are excellent in my opinion.

Coding
For the first few months I did a lot of reading and experiments casually as I felt my way around the iPhone SDK.  I got comfortable with xcode, the iPhone SDK APIs, the debugger, and, most importantly, objective-c.  Most of the tutorials I worked through were related to the project I had in mind, so there was a lot code from various “learning opportunities” that I was able to use in “Robodamus – Robotic Fortune Teller”.  In particular, much of the SQLite classes I had designed ended up being used in my app.
Other methods which seemed solid in the experimental phase, did not pan out when being used in the context of my app.  An example of this was using [UIImage ImageNamed] when loading png images for a flip-book style animation.  With a small number of images, this method worked fine, but when the number of images I needed to load and release became larger memory did not seem to be managed very intelligently by the OS.

Marketing
When I finally got all of the art and coding done for my app, it was time to look into marketing my app.  This was definitely more of a mystery to me than anything.
When it came to pricing the app, I’ve read that apps with higher price points often make more profit; I believe I heard that on an episode of “The Mobile Orchard” podcast.  Regardless, could not imagine my app doing well at a high price point; it is really only an entertainment app that has a very limited utility.  Since, I, personally download $.99 apps as readily as I download free apps, this seemed an appropriate price point.  My app, in all honesty, is not the sort of app you enter the store to buy, but rather the impulse buy that might be placed near the cash register at the grocery store like gum or mints.
With the price set, and the app completed it was time to submit it and begin collecting the names of websites and youtube channels to write to and hopefully convince that my app was worthy of a review, or even a mention.  I ended up with a list of about 50 youtube channels and websites.  From those 50 about 35 were appropriate to contact; many sites either focused on gaming, or expected payment in exchange for a review.

Pay to Play?
Sadly, a large number of the sites and youtube channels I contacted actually wanted to charge a fee in return for a positive review.  One site even solicited me to spend money on a positive review.
Another tactic I used was creating a Facebook page for Robodamus, and inviting random people (who were part of iphone groups) to be friends.  I only ended up with about 70 friends and probably none of them translated into sales.
Something I was doing wasn’t working as I only ended up getting two reviews, one from slappapp.com and one from applesauceblog.com.  They were both positive reviews and I was thrilled to get what I could, but neither site had huge number of daily visitors (I’m guessing obviously) when compared to tuaw or engadget, for example.
Oddly, I couldn’t get anyone on youtube to do a video review, or even a mention.  I got plenty of promises, but never did I get any action.  Even some of these channels with low quality and/or low viewership didn’t give me the time of day.
Ultimately I failed to market my app. I tried, but probably spent a lot of my energy and time doing ineffective things.  If I were ever to do this again on a non-hobbyist level I would definitely outsource this part of the project.

What’s Next?
I’m sure I’ll do an update eventually.  I’ve got plenty of features in mind that I want to add and things to improve upon.  I think I would also like to do a version with another character and a set of different animations; I really like modeling an animating, so this provides a good outlet for that.

BTW, you can find “Robodamus – Robotic Fortune Teller” in the app store here.
Tagged with:
May 23

“How long does it take to get into the app store?” is a question I googled many times leading up to the submital of my app.  For those curious, as I was,  here is the timeline of my App from submittal of the binary to appearing in the App store.

May 12 2010 7:11 pm – The binary for “Robodamus – Robotic Fortune Teller” is uploaded to Apple’s servers.  Status is “Waiting for Review”

May 21, 2010 9:08 am – The status is “In Review”

May 22, 2010 9:30 am – The status is “Ready for Sale”

May 22, 2010 ~11:00 am – The iPhone application is present in the app store.

I’m not sure how quickly my app showed up in the app store but, it was fast.  It couldn’t have been there any sooner than 10:30 as I was obsessively checking every 10 minutes or so after 9:30 until I decided that I could better spend my time buying supplies for a home improvement project.  It was not until about 11 am that I relapsed into my obsessive compulsive monitoring of the app store and saw it pop up.

You can find my app here.

So, the answer to “how long does it take?” is about a week gauging from my experience.

Now that my app is sitting in the store, it’s time to try and market it.  Here’s what I’ve done so far:

  • Created a website for the app: http://www.robodamus.com
  • Sent messages to all of the YouTube channels I follow(and like) that do iPhone/iPod Touch app reviews asking them to do a review.
  • Contacted every iPhone app review site I can find that might be interested in my app. Actually I’m still in the process of doing this….
  • Created a FaceBook account for my app’s character, Robodamus.  As of this writing I’m up to 72 friends.  I posted an announcement when the app was available on the app store.  I also posted an announcement on my personal Facebook wall.
  • Posted advertisements on most of my tutorial videos on YouTube.
  • Created a YouTube video demonstrating the app.

Unfortunetly I have no way to gauge if my “marketing” is having any effect.  Regardless, my next steps in marketing my app are:

  • Keep writing to the numerous app review sites.
  • Using the free Google AdSense advertising dollars I have.  A $100 “gift” toward advertising came in the mail recently from Google, so that might be useful.  I’ve always been curious how AdSense worked from the advertisers’ perspective.
  • Doing a voodoo dance and hoping I get lucky.

Like Owen Goss in his “Numbers (aka Brutal Honesty)” blog post, I plan on sharing my sales data after I have enough to share.  I find that sort of information really interesting but difficult to find.

BTW, make sure to check out Owen’s developer blog;  it’s one of my favorites.  His newest game, Monkeys in Space, is pretty sweet, so check that out as well.

-James

Update 7/24/10: I’ve posted my sales numbers for for the first two months of the application’s availability here.

Tagged with:
May 16

Well, I’ve finally handed my first application, Robodamus – Robotic Fortune Teller, over to the app store for approval.  I’m not entirely sure how long it should take to make it through the review process, but in the meantime, here is the preliminary website for the app:

Robodamus – Robotic Fortune Teller

The Robodamus title screen

Robodamus hard at work.

Tagged with:
Apr 29

I’ve finally had an opportunity to get my hands on an iPad. Because Apple has seen fit to place it’s closest store 6 hours away, hearing that my local college bookstore had some iPads in stock was kinda exciting. However, I can’t be too excited by it as I’ve already declared to my friends and co-workers that the thing is “just a giant iphone without the phone, or camera”.

Regardless, here are my impressions:

1) It’s smaller than I expected it to be. I guess I never really spent much time visualizing the dimensions of it. My wife also thought it was smaller than she expected .
2) It’s not that heavy. I had read other people’s comments that is was heavier than they expected, but it was just about as heavy as I imagined it to be.
3) Pixel doubling didn’t look quite as horrendous as I had expected. I did not, however, try a pixel doubled app that had any substantial amount of text. I played a Simpsons fighting game, and a version of Rock Band.
4) You wouldn’t want to do a lot of typing on this thing. Typing without any tactile feedback is just about as rough as you would expect it to be. I’m not too sure I could get used to it. I’ve been doing it for about a year on my iPhone, but with the iPhone (and most mobile devices) there is the expectation that you are only doing minimal amounts of data input.

Overall the iPad looks like a really fun gadget which almost seems useful. I think it might be nice to read on, but I’m not sure a backlit document is the ideal reading device. I think it might be fun to game on, but I can’t see it becoming something I can play some of my favorite side scrollers on without some actual buttons (the same goes for the iPhone, actually). I think it might be convient to surf the internet with while relaxing, but I like to play flash games which aren’t supported. My wife loves those flash games even more, so without flash there is no way I can convince her that we should buy one of these.

Despite the negatives expressed above, the iPad is a pretty cool gadget. This is probably only something that you’ll appreciate once you have it in your hands, at least this was the case for me. It gets very close to being useful but never quite makes it. I’m sure that if I think about it enough I’ll concoct a reason to buy it, but for now my rational side won’t allow me.

Tagged with:
Apr 24
Apple’s iPhone Application Programming Guide lists that the iphone supports png, tiff, jpeg, gif, bmp, ice, cur, and xbm image formats, but of these it recommends the png format.  The guide goes on to say that the “iPhone OS includes an optimized drawing path for PNG images that is typically more efficient than other formats”.  I would like to see how specifically the iphone OS is optimized for drawing PNG images versus other formats, but I suspect that is for Apple to know and for me to pontificate about.

Regardless, png is a good format that leaves little to be complained about; it supports up to a 64 bit color depth, and transparency. Another upside to png is that they are compressed and the method by which they are compressed(the “deflate” algorithm) is lossless.  A jpeg image, by contrast, uses a lossy compression algorithm.

What some don’t know is that your png images may not be compressed as tightly as possible.  I discovered this recently after I generated a set of png images from a 3ds max animation.

For fun, I decided to search out tools that would optimize the size of png images.  I ended up trying four tools; PNGOUTWin, pngout, defltopt, and pngcrush.  PNGOUTwin costs $15 and is available for Windows only, while the others  are available for OS X , Windows, and Linux and are free.  All of the tools are command line executables except PNGOUTwin which has a GUI.

While I did not perform a fully exhaustive survey of the different tools, I did try each of the tools with the image shown above.  This image is one in a sequence of about 100 images that make up an animation within my upcoming iphone application.  As already mentioned, this image was generated by 3ds max in the png format, and was 24,085 bytes.


Orignal File Size: 24,085 bytes
pngout: 21,709 (9.8% reduction)
PNGOUTwin: 22,110   (8.2% reduction) 21,970 (8.8% reduction)
pngcrush: 23,392 (2.8% reduction)
deflopt: 24,051 (0.1 % reduction)

So, from this limited test, pngout was the winner.  However, if you happen to have an irrational fear of the command line, PNGOUTwin came in a pretty close second place.
Tagged with:
Jun 23

So I got my iphone, signed up for the developer network, and loaded my animation test application (see the posting on June 17) onto the actual hardware. The animation is as smooth as it was on the simulator. However, it did take a bit longer to load, and there was about a second pause after I pushed the “all” button (which starts all the animations) before the animations would begin. Regardless, I am fairly confident my current scheme to animate using the UIImageViews should work.

Tonight, I also finished up the classes I am using to save persistent data to the iphone’s sqlite database. Additionally, I used the leak utility to check for leaks, of which a handful were found and corrected. I’ll have to test more thoroughly at a later date, but I’ve modularized things enough that further changes won’t cause too much havoc.

BTW, I am using the SQLite Manager plugin for firefox to view the databases/tables I created as I tested the data persistence classes. The plugin is a little buggy, but works 99% of the time.

preload preload preload