The Power of Free – How One Guy Reached 3 Million Users In Two Weeks

Save the Pencil now has now been played over half a billion times. Saying that number still feels strange, writing it even stranger. Especially when you consider my previous post about the game’s somewhat disappointing launch. As an independent developer you hear countless App Store success stories which fill you with hope, but also perhaps a false sense of reality. Rather than asking why, with all this competition, will the next success story be me, it’s all too easy to become so attached to a project that you begin to ask, why not me? As a consequence, it’s also easy to become disheartened too quickly when things don’t quite go according to plan. Like many, I was guilty of this, and like many, this was premature. Success in the App Store is hard to achieve, and its becoming harder by the day. It is however still possible.

Let’s start with a bit of background. In February 2011 I lost my job. I had been working in Investment Banking in London. I’d always liked the idea of having an app in the App Store, had bought a book on Objective-C but had never really gotten round to actually doing anything. I took a few months off, doing very little in terms of work, and then decided it was time to start making better use of my days, swapping golf clubs for books (although not completely). This was late May ’11.

By early July I had my first application, Convertizo, approved and ready for sale in the App Store. It was a simple unit converter, a thoroughly unoriginal concept, but a logical and fairly simple place to start. I was happy with the results, and surprised that with such a tiny amount of publicity / marketing, it sold (and continues to do so) a small number of copies every day.

Next I wanted to create a game. But with no experience I didn’t have a clue where to start, I also had no concept. Enter Ray Wenderlich and his excellent book on Cocos2D game programming. I followed the book from cover to cover, and by the time I had finished, had decided that a very basic Simon Says game would probably be an achievable first Cocos2D project. Mr Mem was born and performed far better than expected (which subsequently prompted me to release an iAd supported Lite version).

By now it was September ’11, and it was time to come up with what I would regard as my first complete, original and noteworthy application. Something I could be proud of. I decided to leverage my newly acquired Cocos2D skills and make it a game. A month (and several prototypes) later however, I hadn’t managed to come up with anything which I felt worthy of a large time investment. I mentioned this to my friend Tim and he started shooting over ideas any time something came to mind. At some stage, join the dots was mentioned, a simple idea, but something I felt could be a good seed for a more interesting concept. I began to develop some prototypes and day by day, the overall concept gained clarity. It was now mid-October ’11 and by December, Save the Pencil , a stationery based puzzle game, was complete and ready for launch.

Now the purpose of this post is not really to explain how ideas were conceived and expanded upon between myself and Tim, or how the game itself was developed. I just felt that a brief summary of my background was necessary to put the achievement which is about to be described into context.

The launch date was set for December 8th. Press releases were issued, sites contacted, posts made in forums, a promo video created, the usual Facebook / Twitter posts, etc in what felt like a small but ultimately sufficient marketing programme. I didn’t (and never will) pay for advertising on sites or for reviews/coverage. Despite all this work, the launch was incredibly disappointing.

The disappointing trend continued, as illustrated by the sales numbers below.

As you can see, between launch date in early December and February 2nd, paid sales totalled less than 450. Pretty poor for a $0.99 game. On positive side, the game was well received by review sites, and of the small number of people that had downloaded the game, many left very positive App Store feedback and 5 star reviews.

So at this stage I knew I had a great game. But that game was, unfortunately, also a great failure. I had tried releasing lite versions to no avail; the gameplay was simply too limited on a reduced functionality version and of the many thousands of downloads, few converted into paid sales (lite versions now have to compete with many freemium titles – a battle they are losing). I didn’t have the money to run a robust PR campaign, and the last thing I wanted to do was fritter away several hundred pounds on half-hearted promotion.

On February 3rd, everything changed. Who knew one spontaneous decision would alter the fate of the Save the Pencil so dramatically. On that day, despite having no advertising and no in-app purchases, I decided to make the game free (note – I have since added in-app purchases to leverage the success of the game). I figured even if I wasn’t going to make money, it’d be nice to have a couple more thousand people playing the game by the end of the year. That would somehow make all the work seem more worthwhile.

I could explain what happened next in detail, but a chart probably gives a far better indication.

Over the next two weeks, Save the Pencil was downloaded over 3 million times. It had been the number 1 app in the free charts in a majority of global regions, and managed to hold the top spot in the UK, Canada, Australia and more for over a week. It also spent over a week in the Top 2 in the US.

So how did this happen? I must confess I’m not 100% sure. As an indie dev however, I know if I was reading this article I’d want reasons, so I’m going to make a best guess. A few sites picked up the price drop and mentioned it, which I believe gave it an initial boost. Not a large boost, but enough to get Save the Pencil to climb into the Top 250 free apps. And there’s the key, chart exposure.

Unless you’re lucky enough to be featured by Apple, chart placing is your only direct way of putting yourself in the shop window, literally. If you have a good app, you shouldn’t underestimate the viral nature of the App Store. A small group of individuals looking at the bottom of the charts and subsequently trying out your app can have a significant impact. If they like it, they may tell a few friends (it’s free after all – people are far more likely to recommend something if there is no cost to the other party), those friends download it, and so the cycle begins. The higher you climb, the more rapid the growth, with Top 25, Top 10 and course, the coveted number 1 spot being highly significant in generating an additional download bump.

So, at risk of stating the obvious, exposure generates downloads. But it has to be the right kind of exposure. In the app world, in my view, this gives you four options (note: spending a bunch on marketing is not an option as I don’t believe it works):-

1. Get Lucky
Ok, so perhaps luck is an important factor for everyone and unfortunately something you can’t control. Persistence often creates luck however, or at worst, helps your chances. Make sure you do not confuse luck with hope. I spent too long hoping Save the Pencil would take off, when clearly everything pointed to the contrary. But on February 3rd I stopped hoping and made a decision to change something; luck followed.

2. Get Featured By Apple
Ya right. And I mean properly featured, not New and Noteworthy in a third tier subcategory.

3. Receive Positive Feedback on Review Sites Simultaneously
I had little success with this. With so many big studios now making mobile games it’s becoming increasingly difficult to convince writers to give you column space. They’re far more likely to feature you after you’ve been successful rather than before. And who can blame them. It’s no secret how many hundreds of emails these peeps get every day. Futhermore, a good review on a site is simply not enough. Save the Pencil was featured as App of the Week on one of the top sites during launch, and yet sales still flopped. You need multiple reviews published within the same short time span. This would hopefully generate enough initial downloads to get a favourable chart position, and that App Store exposure.

4. Go Free
This can be for a limited period for paid apps, or permanently for apps adopting a freemium model. Despite popular trend, I would suggest the prior rather than the latter. A majority of Save the Pencil’s revenue has been generated by paid sales following promotional free periods, rather than in-app purchases. To put that in perspective, over 3 million users who got the app free contribute less to the bottom line than new sales. And that’s off a userbase that is fairly active (I’m actually planning a full post about this with more analysis).

So there it is, a slightly longer than expected tale of how an indie developer, with no help, reached over 3 million people in under 14 days with his first full-fledged game. The free charts are an incredibly powerful marketing tool. Their fluidity (in stark contrast to the paid charts which rarely move) gives even small developers a chance to get to the top. Of course, maintaining a high position is nigh on impossible – the drop will undoubtedly be as rapid as the climb – but by then you really won’t care, because all your hard work will have been appreciated by hundreds of thousands, if not millions of people.

If you have a great game that has so far failed to get the success it deserves don’t lose faith, you never know what may be around the corner.

Paul
Perfect Dimension.

How To Sort In-App Purchases By Price

So recently I added In-App purchases into one of my games. A pretty frustrating process, but thanks to some of the fantastic guides online I managed to finally get everything working how I wanted. One thing did strike me though, iTunes Connect doesn’t provide the ability to choose the order in which In App purchase products are returned. I was sure hundreds of other developers would have experienced the same issue, but found very little help online, so in the end, I figured it out myself. Here’s how.

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response

Here’s the delegate method which is called when you receive a response from your In App purchase ‘products request’. The object response has a property called products which returns an array of SKProducts. It’s this array that I was using to populate my UITableView with my In App Purchase products. And until now, it’s this array that was sorted alphabetically, rather than how I would like. This is how I fixed it…

NSSortDescriptor *mySortDescriptor = [[NSSortDescriptor alloc] initWithKey:@”price” ascending:YES];

1. Create a sort descriptor which sorts using  the key ‘price‘. Price is a property/key of an SKProduct which returns the product’s price.

NSMutableArray *tempArray = [[NSMutableArray alloc] initWithArray:response.products];

2. Create a MUTABLE array from response.products (which is passed to the delegate method).

[tempArray sortUsingDescriptors:[NSArray arrayWithObject:mySortDescriptor]];

3. Sort that array using the sort descriptor previously defined.

self.myArrayOfProducts = tempArray;

4. I choose to store the resulting array in an instance variable in my class (using properties/dot notation), but you can use the mutable array to populate your UITableView directly if you prefer. If so you must do this before you release it.

[mySortDescriptor release];
[tempArray release];

5. Tidy up memory. Release the sort descriptor and the mutable array.

6. You’re done. Now you should find the array of SKProduct’s is sorted by cost and your In App purchases look great in their new tidy and logical order. Ahhhhh!

How To Add Custom Fonts To Your iOS App in Xcode 4

Ok, so lots of people probably know how to do this already, but recently I found myself needing to use a custom font in my app (something I haven’t done in awhile) and was surprised how difficult it was to find a clear explanation. Hopefully now you won’t have to suffer like I did!

Adding a custom font is a very simple process.

1. Copy the font .ttf file into your application bundle, i.e. the Supporting Files folder. (Note: Don’t forget to check the ‘Copy items into destination group’s folder’ box).

2. The next step is to add a new key in the application’s info.plist. Open up your info.plist file (which should be in the Supporting Files folder) and add a new row (you can do this by right clicking or clicking a small + sign next to any key).

Name the key as follows: Fonts provided by application (Note, Xcode will probably autocomplete for you). Make sure the type is set to array. This is the parent key. Next, you simply need to add all the different fonts you want to use as sub items. To do this click on the triangle to the left of the key you just created to reveal all the members of your array. Then add the fonts one by one. Make sure you use the font’s file name, including the extension. This is where most people go wrong.

3. Now you’re ready to use the font. In this example I have created a UILabel on my storyboard and set it up as an IBOutlet (hopefully you know what this is!) in my View Controller, calling it demoLabel.

In the view controller’s viewDidLoad method I will set the label to use this font. To do this I use the following line of code:-

self.demoLabel.font = [UIFont fontWithName:@”FontNameHere” size:40];

Note, this is another area people often go wrong. The font name should be the name of the font as it appears in Font Book, NOT the filename. See below as an example.

In the above case, and as in my example project, the line of code would read:-

self.demoLabel.font = [UIFont fontWithName:@”Neo Sci-Fi v2.0″ size:40];

Add there you have it, very simple and a great way to make your apps feel original.


Useful Resources For iOS Devs. 1st Edition!

Most iOS developers will be aware of the numerous helpful resources available online, but I thought i’d start outlining a few of my favourites in periodic posts, particularly for those who are just getting started. So, here goes…

Cocos2D
Cocos2D is a fantastic, free platform which greatly simplifies the programming of games on iOS. If you’re worried you might be sacrificing something by using this, rest assured, you aren’t. Tiny Tower, Apple’s iPhone game of the year, was written in Cocos2D. I’m sure i’ll be corrected if wrong, but I also believe its creator now works for Zynga. So as a Cocos2D developer, you’ll be in good company.

Stanford University’s iOS 5 Programming Course
This course is great for beginners to iOS programming (although must have some prior knowledge of Object-Orientated Programming), but is also useful for those looking to utilise a part of the SDK they haven’t previously. It’s also a great reminder of best practice when coding.

Ray Wenderlich
Sometimes as a developer you come across a site and think, how can this person be so generous with their time? Ray Wenderlich is one of those sites. Originally heavily focused on Cocos2D programming but now offering numerous tutorials on various aspects of programming for iOS devices. Particularly useful for those who are looking to get started coding games.

App Viz
IdeaSwarm’s AppViz is a Mac app which not only downloads all your iTunes Connect data, but also grabs rankings, ratings, reviews, etc from each global store. At first glance you may think it’s a little on the expensive side, but after your 30 days free trial expires, I can pretty much guarantee you’ll be buying it. What’s more, their customer support is incredible. Fast replies, and they really take user suggestions onboard.

App Annie
If you don’t want to shell out for AppViz (although you really should), App Annie is a good free (for now) web based alternative. Although it doesn’t offer the same granularity of AppViz, it does have a few unique features of it’s own. Of particular interest (and the reason I use both App Annie & AppViz) is the featured section. This tells you where your apps are featured within the App Store, for example, New & Noteworthy, What’s Hot, etc. This info is of great interest to us devs :)

Anyway, just a few sites I thought i’d share to get you started. I’ll probably try to post one of these updates each month to let you know what i’ve discovered and been using!

Happy Coding.

Paul.

A Disappointing Launch?

I recently launched Save the Pencil, a cool stationery based arcade/puzzle game for iPhone & iPod Touch.  I should probably start by saying it has only been a week since release, so it is still very early. I should also add that the feedback I’ve received about the game, whilst limited, has been fantastic. As of now, it’s had 18 reviews, all of which are 5 stars. It has also been selected as an app of the week at TiPB. Infact, the team over at TiPB liked it so much, they even put a banner up on their main page!

So, I know I have a great game, and people will like it if they play it. I also, for the first time, made a concerted effort to get the marketing right. Yet early sales have been somewhat disappointing. So what went wrong?

Mistake One – Future Release Date
I love Apple. I love their products. I love their creativity. And I love pretty much everything they stand for. I believe, unlike many developers, that the 70/30 arrangement is incredible, given the amount of exposure we are afforded and I also have no qualms with the review process. I am however, disappointed with what has happened the past week. Mistake 1 was trusting the availability date in iTunes Connect.

I wanted to set a date in future for release, a date I knew the app would be approved by and a date I could target my marketing effort towards. In the end, I opted for December 8th, hoping to catch some of that Thursday magic (I’ll get to that later). I did this prior to uploading the binary. Everything went smoothly, I checked various App Stores on the morning of the 8th and the game was live. I then checked the new releases section, and was surprised to see that Save the Pencil wasn’t listed. I assumed that part just hadn’t been processed yet and continued to flick through page after page of new release. Then suddenly I saw my icon. For a date almost a week earlier, a date which suspiciously coincided with the date my app was approved.

I tried not to think the worst and hoped it was something that would come out in the wash after a couple of hours. Yet it didn’t. Nothing changed, for a couple of days and by then, it was too late. It’s no good being listed as released on the 8th when it’s already the 11th and thousands of apps are ahead of you in the list. This got me thinking about the lite version of my app, which had been approved on the 6th of December but was not available for sale. I decided on Tuesday the 13th to make this app live in the App Store. I hoped for the best but feared the worst. The latter happened. Despite being made live in the App Store on the 13th, my app was listed as released on the 6th, pages and pages back in the new releases list. The result, almost zero downloads. This comes in contrast to the >1,000+ I would have expected based on previous apps.

Now if you are a big player and you subsequently have a big marketing budget, this is perhaps insignificant, but as an independent developer you rely on the initial impetus that being high up on new releases list gives you. Without it, your position in the charts is abysmal and it’s incredibly difficult to recover. So that’s one mistake I won’t be making again. In future I will have marketing material ready prior to uploading the binary, and then when approval happens, I’ll be ready to go. I’m sure this issue will be fixed, probably soon, but it’s just not a risk i’m prepared to take again.

Mistake Two – It Has To Be A Thursday
It’s become almost folklore in the iOS developer community that Thursday is the only day to release a new app. The thought process behind this is that just as your app is experiencing that new release boost, the weekend arrives and with it far more active iOS users (and therefore sales that are in general significantly higher). The logic makes sense. What often doesn’t get mentioned however, is that (in my opinion at least) this strategy has become a victim of its own success. If you look at the number of applications that are now launched on a Thursday, it’s pretty scary. Especially as the major studios / players / publishers seem to abide by this strategy. So not only are you now competing with a larger number of apps for early momentum, but the quality of those apps will, on average, be higher. So mistake two, aiming for Thursday. If it hadn’t been for my desire to do this, I may well have not had to live with the consequences of mistake 1 also.

Mistake Three – Assuming Sites Will Review Your App
When you make a good app, it’s easy to sit back and assume that sites will be fighting to be first to give you a review. In reality, that couldn’t be further from the truth. With the amount of big studios now releasing apps, competition is tougher than ever. Big sites are under pressure to review big name apps. Unless you have something highly original, and are able to communicate that effectively, you’ll be lucky to get more than a fleeting mention. It’s incredibly important to engage with review sites PRIOR to launch, they are much more likely to feature you if you have already offered them some exclusive content. Furthermore, if you begin this process early it’s likely you will already have generated several useful relationships which you can leverage for coverage.

In addition, you’re better off communicating with 10 sites effectively, than 100 sites with a general mail out. I thought I had drafted a perfect email to sites which contained all the necessary details, a promo code, links to all the resources they could possibly want. I had one non-automated reply. Since, my colleague has separately selected just a handful of sites which he felt would be a good fit for us, and has engaged them far more successfully. I’m sure the relationships he is forging will continue to help us in future.

One other tip, although not specifically directed at iOS apps, Ben Kuchera (Game Editor @ Ars Technica) gave an interesting talk at Run, Jump, Dev on marketing. You can watch it here.

Mistake Four – Waiting Too Long To Build A Following
I won’t really elaborate much here, as it pretty much goes without saying…but don’t leave it too late to generate a Twitter following and subsequent buzz. This past week i’ve learnt what a valuable tool Twitter can be. In addition, make sure you give visitors to your webpage the chance to sign up to an email newsletter. The conversion rate from these individuals will be better than anything else.

The End (You Made It!)
Hopefully some of you can benefit from my experiences here. None of it is ground-breaking, but just emphasises the importance of tasks which can be overlooked, or certainly left until it’s too late. I for one, thought I couldn’t have planned better for this launch!

Although I’m still confident the game will be a success (there will be a follow up post!) I’ve definitely learnt a lot from this experience.

Happy Christmas.

Paul.

Save the Pencil App Store
Save the Pencil Home Page
YouTube Trailer 

PDiTO.com Lives – Welcome!

Thanks for taking the time out to visit pdito.com. This website was formed so I can blog about my experiences working as an independent developer on the iOS platform.

I’m Paul, I live just south of London in the United Kingdom. I spent my early career working in banking but in mid 2011 saw the light and decided to try my l luck making my own apps and games for iOS full time. I’m certainly poorer, but I am also also a lot happier, and, when you love what you do you tend to find success….eventually!

Aside from music, I like to handle everything myself. I spend well over 50% of my time working on UI and graphics despite describing myself as a developer. I’m either a really efficient coder, or a really inefficient designer. I’ll let you decide which.

You should expect plenty of anger, but will also (hopefully) find some useful thoughts and advice based on what I learn and discover on my adventure.

I’d love to hear from people, so if you do like a particular post definitely leave a comment or get in touch on Twitter.

Thanks for visiting and happy reading.

Paul.