Wednesday, July 13, 2011

My experience so far with the App Store as in independent developer - Some tips for new iOS developers

It has been around a month and a half since my app Mirrorless Lenses was launched on the App Store.  This was my first app and my second app was submitted last night.  A lot of the reasons for writing my second app were based on what I had learned from my first app.  This post covers some things...  Quickly.

Just do it

If you're sitting on the fence about writing apps (for the Mac App Store, iPhone/iPad App Store, Android Market, etc...) then just do it.  Put out your first app.  Putting out your first app makes you learn the rules of the game such as building your app, working with designers, coming up with feature lists, seeing how iTunes Connect works, gathering your official work documents, signing up as an iOS developer and getting early access to stuff such as iOS 5, etc...  Basically there's a lot of stuff that goes on before you have finished your first app and hit Upload to iTunes Connect.

Check out the charts and download lot of apps

Do your research.  Don't just look at the Top 10 apps.  Look at the Top 200.  Read descriptions and take notes along the way.  Read the reviews.

If you see an app that looks like something you'd like to make then think to yourself 'How can I improve on this?'  A lot of reviews apps point out features that users would love to see added.  'This app would be perfect if it just did...'  Perhaps the developer of the app doesn't want to take the app in that direction or it would require a big rewrite and interface redesign to implement.  Take that as a suggestion for something you should implement.

Make something you actually want to make

If you're an independent developer then a lot of the time you're either working for yourself or programming while maintaining a day job.  From experience programming at night after a long day at work is pretty difficult.  Your brain is mud after 10pm and complex logical thoughts don't come as easily.  You need to have passion and commitment.  It's hard to have passion and commitment when you're working on something you're not excited or interested in.

If you don't like Games then don't make a game.  It will show in your work.  Or if you don't like games, then challenge yourself and make a game that you (and you're pretty sure others) will enjoy.

Make your app 'sticky'

A lot of apps lose their appeal straight away and never get opened up ever again.  Think of features which will get your user coming back and reusing it.  Think 'What would make a user come back and use this everyday?'

Pace yourself and set achievable goals

When working on something on your spare time it's easy to get distracted by things at 11pm.  There's feeds to catch up on, Facebook status updates to check up on, Tweets to re-Tweet, etc...  It's easy to look at your overall goal of writing an app and get overwhelmed into doing nothing.

Set small goals for yourself each programming session.  At the start of every programming session, I open up a text document and write down achievable items just for that session.  I always add a little bit more so I have a harder goal to work towards.

Here are some example work items from my first app:
  • Create Favorites model
    • One to many relationship with lenses
  • Create linking plist files and functions
    • Create functions to return BrandMount and Lens objects
  • Add Four Thirds lenses (about 26 of them)
  • Implement
    • (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  • Add Launch Images
  • Create iPhone and iPad screen shots for App Store
Think of monetization and experiment

I first launched my app as a free and left it like that for a little over month.  If this is your first app then I'd recommend doing that as it gives you a good user base and depending on your app you should be able to gather a few thousand installs.

The iOS App Store allows to switch your app from free to paid pretty easily.  Note that if you do that you will lose your rankings.  For my second app, I'm starting it out as paid from the get go.

Experiment with price to see if it effects downloads.

Another thing to ask is 'What do I need to add to my app to make people download it?'  Would I spend $x on my app.

Start thinking of future apps and the different models for monetization.  Are you interested in displaying Ads?  If your app has wide appeal, the potential for hundreds of thousands of downloads, lots of re-use then I think Ads sounds good.  If you're thinking about In App purchases then this effects your app and how it functions and is designed.

Push out an update

You should receive some feedback on your first app or your users may report bugs (and crashes).  So get coding and push out an update.  Again, putting out an update teaches you a lot about the process.  For me, my second update took longer for Apple to approve as it was stuck in 'Upload Received' for over 24 hours. Normally this status clears in just minutes. I contacted Apple as this is something only they can fix and my update was reviewed and approved a few days later.

I've put out 2 updates and I've been amazed at the speed of which people download updates.  I would say 50% of your users update within the first 2 days and 90% of your users update within a week.  You will also notice that your app reviews only show the reviews for the latest update on the front page of the App's page.  So that is something to consider.  Also if someone reviewed your app at an earlier version, and then reviews it again, it will only show up in the latest update so there is only one review permitted per user.

Since 90% of your users will update in the first week, I would recommend waiting at least 2 weeks before putting out an update.  Both of my updates have been quite substantial in that they added new major features each time.  So consider what you want to package up into an update since it needs to go through the review process and users will read your notes on what is new.