le lab

Of AppStore and Bad Ideas

January has been for me the month of a very bad idea regarding iPhone Apps : I decided to make a sale. Here's a report of how things have been doing before you decide to do the same stupid thing. Of course your mileage may vary, so take everything I say with a grain of salt.

How things were going before

Well December and beginning of January were reeeaaaallyyyy slow. November was a great month, as you can see from that graph estimating weekly income. I don't know why, but for me it was slow. Maybe the weak economy (but frankly I doubt, seeing the number of iPhones sold here in France), maybe the holiday season, maybe my attempt at making less updates.

Sales weekly

I was quite unhappy wih two things : first of all the comments and ratings of my first and most important application, TrackMe. As I said before, the comments on some stores are from the very early days of the app, and although I admit I've been a bit too fast to release, the version that was on the AppStore end of september was good, working flawlessly and really comparable to other competing apps (some of which much more expensive). And the app is better than the free or low price apps it is compared to. Really better, like 2.49 euros better (that's 2.99 USD).

Second thing I was unhappy about : I had taken more time to polish and improve another app, a Location Recorder, that was published on the AppStore on the 23rd of december. And sales on this new app were really slow, even nonexistent. Most of all, there were almost no comments on it. I didn't want the app to become a stone in the bottom of the app ocean.

What I did

It's been a strange decision making process. Absence of knowledge has led it, for the most part. To start, you must know that january is the month of sales in France. So on January, 7 the sale period was opened for all retail outlets. I decided to open the sale too.

My goal was as I said before to give a little bump to unit sales, and be better at estimating the good price : the price at which you make more money, despite selling for a lower price. My second goal was to get a better exposure. New comments. I hate the comments I see in some store, did I say that already? Then I wanted to reach higher and show people how much better I was than competitors : after all we're all chasing after glory and reconnaissance.

Of course, I didn't reach any of my goals. As I read there, there are lessons to be learned, just don't do it the hard way. Hard for your bottom line.

What happened

Well here is the chart you've been waiting for that dissects what happenend in the last 4 weeks :

Price Drop chart

The day I started the sale is on January, 7 2009. You can see a peak there, and you can see a really better number of unit sales for TrackMe for the end of the month. But hey, look at the money : I have been making much less money.

I've had an update on January 16, that also helped sales (you know you can have a little help and come back to the first page when updating, yes you know, the developer of pcalc told you how). That was, as usual the real helper in unit sales.

Then last week of january I had this crazy idea : let's try free, to see. See what? see if people like the app, if you can at last get some nice comments, etc. So I did, for TrackMe only.

Here's the story of updates and price changes of that app.

Free == Shit

Pardon my french, I am. I don't like 'free' stuff. I like nice stuff that people have spent some time on, I like real support where people spend time, I love indie developers : Coda, MarsEdit, Snapz Pro, Mate, BBEdit, Screenflow, Super Duper, Fission & Audio Hijack etc etc.

I wasn't sure I liked free apps downloaders on the iPhone. On my iPhone, I don't have crackulous, but apps such as fastlane, instaviz, burnball (great game), obama!, things, Dakslide (formerly know as Exposure) Premium. I have the occasional free app, but well, except for really useful NetNewswire happiness, I don't use them. So I buy apps.

Well, when my app became free, the unit sales rose in one day from 30ish to 1200. Still not the figures you'd get from a game app, but reasonable. But who are these guys? Where were they before? Were they people who couldn't afford to pay the app when it was 0.99 USD? Was a student who had trouble buying such an app because of the economic downturn (I read that from a fellow developer)?

So, here is the graph of that stupid week:

Oh my how stupid I can be sometimes]

How to make no profit, kill sales and attract people that would anyway never buy your app....

Lessons learned, well..., the hard way

  • Pricing is tough, and having a very low market makes it even tougher
  • Free is evil : free 'buyers' don't want your app, they want free and that's a relationship where you're gonoing to loose.
  • Going from paying to free and back is like shooting a bullet in your feet while tying a rope to hang yourself.
  • Updates are nice, having a real marketing is better. Playing with price is worthless, except for the top 10 apps on the AppStore.

I am now looking for better strategies to reach the goals I had before, and better strategies for my next apps. I'm thinking about a low, short introductory price to try to makes sales take off, and then back to regular price. When I say short, I mean short. 1 or 2 days.

I'm thinking also about a new model for updates : the more you add in an update, the more expensive the app should get. It's a way to reward even more the user, it values more the work you've done, and it should increase the profits (even if sales are a bit lower).

Commetns are certainly welcome. If you want to continue the discussion more privately, use my email a gmail.com , cgodefroy, or come by on twitter

Why I think AppStore Review system is broken, and ideas to fix it.

I have two apps on the AppStore : Trackme, sold since August, made 1300 euros and 1300 USD so far; Location recorder, didn't pay so far (published in december). I have sold 300 units of TrackMe in december, and thanks to a sale price in January, I'm moving towards a 400 mark for january.

This doesn't even pay the money spent on developing the apps (training, licence, iPhone), and I don't speak about the time spent on these apps, so please don't comment that I am an iPhone dev making thousands and should be happy with it. Anyway, sales are not the subject of this post, but reviews.


I used to use the script provided by Erica Sadun in october on Ars' website and said so in another post (please dig if you want). Thanks to Mobile Orchard, I found a new site taking advantage of the same script. Here are the reviews for TrackMe and Location Recorder. I cannot comment on Location Recorder's reviews : there are two. But the comments on TrackMe are making me angry... That's the reason for this post. If it ain't broke, don't fix it : well, mothership, it needs fixing.

First thing that I dislike : the "review while you delete" system. Is it really a good idea to ask to someone to judge from an app they are deleting if they are happy with it? I guess that 9 out of 10 people don't review, and the last one gives a one star review. Great! I must be the only one who gave a 5 star review to an app he deleted (was Benjamin Button's story), but this was a book : read it, toss it.

Second, the reviews don't age well : if you take the reviews for TrackMe on the US AppStore , all of them are from september / october. Well there have been at least 4 updates since : added KML export, added map for reviews, added average speed, a cleaner way to export really big tracks etc. 'Altitude' has been replaced with 'Elevation'. If people continued to post reviews, they'd age. Or not? If I read other reviews from apps with many reviews, I don't know if the reviews are ordered by age, country, stars, or the color of the trousers of the reviewer. No way to know, really. But sometimes, worst reviews are at the top, sometimes best reviews are.

Third point is the quality of the review. I am sorry to say so but reviewers are sometimes bad. '"I am sure it is altitude not elevation". What's the point? "Can this app track while in the background of the iPhone (or must it's screen being showing all the time)?" Is that a review? No it's a support question. A comment. Not a review of an app.

Fourth issue is the old review system, and how it worked. See, at the beginning, anyone could review any app. You didn't have to actually buy nor test the app to give a review. Of the 5 reviews on the US AppStore, 2 admit they didn't buy the app, one is a question, so we don't know if the guy bought the app. Then, some day, Apple changed its mind and closed the review system to only the people who had bought the app. But the reviews before that were not cleaned (as you can see).

Fifth point is the nature of the iTunes/AppStore international fck?/% system. As a french citizen living in France with a a french visa card, I cannot use the US Appstore, the UK appstore, the canadian appstore : my registration is refused. So I cannot answer to reviewers or comment myself. No interaction, and I look like someone not interested by reviewers and reviews.

I asked to have all old reviews or reviews from people who said they had not bought the application deleted. Twice. The answer from Apple non-person was that as the review wasn't offensive, it wouldn't be deleted. Well, it offends my intelligence.


Some propositions to fix the system

  • put the date the comment was posted. Of course it's another info (one too much?), but it helps to know that comments talking about a missing feature are old comments when the developer says the feature is there. Who's right? Having the date helps the reader to have an opinion.
  • better fields for reviews. An empty text field is definitely not the way to provide an accurate review. A star is better, but worse. I'd personally add two checkboxes. Does the app behave like advertised (Yes/No)? Is the app working well, or did it crash too often (works well / Crashes a lot)? And no default checked box please. These are two criteria to judge the objective quality of an app and help other reviewers. Furthermore, if an app crashes too often, Apple can ask the developer to correct the issue, and take the app out of the AppStore in the meantime : the quality of the iPhone is also the quality of the apps.
  • a communication system back from developers to reviewers, protecting anonimity inside itunesconnect.apple.com. Being unable to address the issues reported by reviewers is an issue in itself. If they don't contact support and use the review system to get support, they're unhappy, and as a developer I am unhappy too.
  • scratch all reviews from before the system was working. Seriously! "Can I put shitty comments on PathTracker reviews? Yes, great I'll ask my friends to do too and direct users to my app, and to put raves for my app". This seems to have occured once too much, and no appropriate action was taken against it.
  • toss the "review when you delete" system. Final. This was a bad idea.
  • a way to ask buyers to review the app after some time, say one week, by code, and a HIG directive on how to add it to the application.

Apple's AppStore is wonderful. I'd like for the store to become even better, and putting all this effort and time to see bad sales because of inappropriate comments and reviews which I'm unable to address is really making me mad. I'd prefer not review system at all, or just a star review system (so I don't know all the bad reasons the review was bad for).

A better UISlider

Just a code Snippet and three files to improve the (broken/too small/impossible to catch) UISlider from Apple.

CGRect rect = CGRectMake (16.0, 262.0, 284.0, 35.0); //last size of cgrect is important : thumb is 34 pixels high
accuracySlider.frame = rect;
UIImage* thumbImage = UIImage imageNamed:@"thumb.png";
accuracySlider setThumbImage:thumbImage forState:UIControlStateNormal;
UIImage* leftImage = UIImage imageNamed:@"left.png";
leftImage stretchableImageWithLeftCapWidth:5 topCapHeight:0;
accuracySlider setMinimumTrackImage:leftImage forState:UIControlStateNormal;
UIImage* rightImage = UIImage imageNamed:@"right.png";
rightImage stretchableImageWithLeftCapWidth:5.0 topCapHeight:9.0;
accuracySlider setMaximumTrackImage:rightImage forState:UIControlStateNormal;

And the images:

Bigger ah?

AppSales

A great app for all iPhone developers / editors. Don't use it too often though, it gets updated only once a day.

http://code.google.com/p/appsales-mobile/

How the AppStore Review process is improving

Disclaimer : I don't know anyone working for Apple, so I don't know how things are really going. I am only reporting observation from my standpoint, as an iPhone developer.

I already have on app on the appstore, TrackMe, a GPS recording application for your tracks. I made another one, in the same field, but with more time spent on getting things to work nicely together, and being easier to understand for the user. This one is still in review, and I don't know yet if it will get published before the end of the year.

The review process for the first one was obscure, long, but went well : after a little over two weeks, I received the magic email : " Your application is ready to publish". Since that day, I have improved the quality of the application, added much needed features. All in all, the application is fine for me as it is. I certainly need to squash some more bugs, and be a little bit more conservative on several issues. I also need to be able to add a Douglas-Peucker algorithm for tracks that are more than 100 points long. Each time, the review has been an easy process : submit the update, wait one week and see the update pop up on the AppStore.

Then there is the new one. Apparently, I have been in relation with a very thorough reviewer, all for the best.

First, the review is getting faster every time : I got my first rejection after 6 days. Yes, six days! That's short. And I'm talking calendar days, so it must've been 4 instead if you don't count the week end. Then I got my second rejection in just 4 days! You guessed it right : the process was done between monday and thursday. It might even be less than that.

Second, the quality of the review is very good. My first app wasn't rejected, so I cannot say there's really been a progress in this area. But the two rejections were for obvious reasons: my application was not idiot-proof. I mean, it's not like I did something unorthodox, I didn't use private headers or whatever. I didn't make a 'pull my finger' app. I didn't download mpeg ac3 video over edge network. It was just that I didn't check what would happen if the phone was without any network connection (in which case some features wouldn't work), and the second time, I forgot to add a full email validation.

I don't know what will happen next. I hope it won't be rejected again : I have tried to adopt the same idiot-proof state of mind when testing the app and added some more feedback in that state of mind , plus of course correcting the two issues that were mentioned. I really hope it won't get rejected for more reasons, because it would prove I am unable to reach the same state of mind. That's all there would be. Plus the frustration of the email title : Application Submission Feedback.

What I know is I am mentally figuring a to do / check list of must-have routines that is growing. I will put a first rough on Fidug's web site for everyone to add and see, and put hints at what can be done in code. All for the better.

Checking email in iPhone Code

I just spent a lot of time doing something that would have been ridiculously easy with Cocoa's NSPredicate : checking an email address to know if it is valid, before sending something to it. NSPredicate is not available on the iPhone.

I used instead RegexKitLite, which in turn uses libicucore, this time available on your iPhone, to check things. I just added the core class, and the RKLMatchEnumerator too, which adds a matchEnumeratorWithRegex to NSEnumerator. Et voilà!

@@

 NSEnumerator *matchEnumerator = NULL;
 NSString    *emailRegEx = @"A-Z0-9a-z._%+-+@A-Za-z0-9.-+\\.A-Za-z{2,4}";

 matchEnumerator = emailAddress matchEnumeratorWithRegex:emailRegEx;

 //Validate email address 
 if (matchEnumerator nextObject == NULL) {
   UIAlertView *alert = [UIAlertView alloc initWithTitle:@"" message:NSLocalizedString(@"EmailNotValid", @"No search") delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
   alert show;	
   alert release;
   return;
 }

@@

The War is Not Over

Yesterday's Apple Keynote (if we can call it that way) was not only about presenting new products. It 's also been the occasion for Tim Cook and the top management of Apple (Steve Jobs being the puppet master) to show how big the rifles were . Rifles for what? Rifles against MSFT, of course. Because I can tell you this people : we're back in the war between Apple and Microsoft.

That war had been stopped in 98 by Steve Jobs when he asked MSFT to re-invest in the Mac Business, both by making better apps and by putting money. And Bill Gates was wise enough to accept the opportunity. It wasn't a war anymore, even if the Mac herd still eyed Microsoft developers as copy machines (remember these WWDC mottos?). And then recently, both during a chat, and then afterwards through a memo that was 'leaked' to the press, the other Steve (Ballmer) decided that it was time to spread FUD on Apple once again.

Why did that guy decide against Apple this time? He feels he's in danger in his core activities.

Microsoft is present on four platforms :

  • desktop
  • mobile
  • music players
  • console games

On platform 3, the Zune player is almost counted amongst the 'others' group when people report on market figures. I haven't seen any here in Germany, or in France where I live. iPod has a 70%+ market share in the US, and a good market share in other regions, apparently;-)

Apple 1 - Microsoft 0

On platform 2, Apple has proven since the announcement of the iPhone back at MacWorld 2007 that it could once again turn a market upside down and has since become the #2 phone seller in the US (I have to check those figures anyway, is it only on the smartphone segment as I suppose?). On the other side, Microsof annournced recently that the new version of Windows Mobile was postponed until late 2009, maybe even 2010.

Apple 2 - Microsoft 0

On the console platform, Microsoft is known to lose a lump of money, and Apple is not yet really present, despite the emphasis they've put on games withe the iPhone and iPod Touch. They don't confront, yet.

Apple 2 - Microsoft 0

On the desktop and laptop (can you make a real distinction anymore?), Microsoft still has their superior market share. But they don't have the mind share anymore, as people are turning away from Vista. When you have a failure, the best communication you can have in Microsoft mind set is to talk about something else. Linux doesn't seem to be a problem (although Asus using it on EeePC might show a new way) on the desktop platform anymore.

Apple has a good record and switching is real. If Windows is still strong on the desktop business, Apple is gaining market shares in areas that it was weak before : education, law, management, physics. Areas that are not only graphic design or video. Figures speak for themselves.

Apple 3 - Microsoft 0

That's too bad. I preferred the Microsoft of the early 90s. The one we're seeing today is like the bull in the arena. 32 times out of 33, the toreador wins. Right now, we're up for a new show as spectators of the Apple- Microsoft war.