A PCalc 1.1 Post-Mortem

Ok, so perhaps “post-mortem” is not the right term at all, as that implies PCalc died horribly under mysterious circumstances and that the CSIs are trying to find out who the murderer is.

Oh, no, wait a minute. Now that I think about it, that’s exactly it.

It’s been about a week since the PCalc 1.1 update hit the App Store, but most of you probably didn’t even know it was out. The real question is “why?” and I’ll try and answer that.

Let’s backtrack a little bit, back six months or so to when the iPhone SDK was first available. My standard approach to any new code framework is to try and port PCalc to it – I originally wrote the thing 16 years ago as a way to learn Mac programming when I was at university. I don’t have this amazing love of calculators I must confess, more that I like designing really good user interfaces.

When the SDK was announced, another PCalc port was an obvious thing to do. As on the Mac when I first wrote it, the default Apple calculator wasn’t exactly sophisticated. The nice thing about the PCalc code is that the main maths engine is very separate from the UI, and that code is itself very portable. So, I could get the maths engine running on the phone (which I did in about a day of downloading the SDK) and then could start writing a completely new UI around it from scratch.

That gave me a really good head start on making a product. It was a well defined problem, and I had a lot of core functionality already working. So I could really concentrate on learning the Cocoa Touch side of things and getting into the iPhone mindset, rather than having to write something brand new.

My plan was to do PCalc quickly, so I’d have it ready on day one of the store opening, and see what the response was like. The App Store was even more opaque at the point when I first started working. Developers didn’t know when our apps would need to be finished by, what the store would look like, or even whether we would be accepted into the developer program in the first place.

So, it was intended as a toe into the iPhone software market. If it did well, I’d consider making my next big project an iPhone one. If it bombed completely, then I’d steer clear for a while – at least until things became more mature.

I worked away on it for months, and we were eventually accepted as official iPhone developers so I could now develop on an actual device. Skip forward to July 10th, and the App store went live. It took a while before we saw sales figures, but when we did, they were Really Really Good. We’re not talking Super Monkey Ball sales here, but compared to how PCalc sells on the Mac (and, DragThing sells, for that matter), they were much better than I thought they would be. Put it this way, PCalc on the iPhone out-sold PCalc on the Mac within the first few months. I mean, total sales of PCalc on the Mac ever. Not counting the million or so copies that were bundled with Macs in the US of course.

Ok, so there’s a lot of well-documented pain involved with iPhone development – the NDA is now gone of course, but that’s only the tip of the pointy iceberg – but extrapolating the first few months of sales out to a year suggested that this was not only a viable business, it might actually be much more viable than all of the rest of our business put together.

Sales started to slow down over time, but with each of the 1.0.1 and 1.0.2 updates they went back up into the stratosphere as PCalc moved to the front page of the Utilities section again.

Here’s where it gets interesting. On the Mac, developers have long known the power of an update. You put out a new version, and as well as making your existing customers that bit happier, you get some press coverage and a nice boost in sales. There’s typically a big spike that lasts two or three days, and this drops off fairly quickly back to previous levels once all the coverage dies down.

On the iPhone however, the spike was more of a gentle ski slope – sales jumped up ten times, but didn’t die off in two or three days – it was more like two or three weeks. It seemed like dark magic to this Mac developer. It just didn’t behave like I expected at all. And it seemed to be the store itself that was casting the spell. Most people seemed to be just looking at the first few pages of any given category, and not venturing into the far corners of the store. And not many people seemed to be influenced by the press coverage, with some exceptions.

Anyway, the main point being that iPhone software had a much longer “tail” of sales after an update than Mac software, and that’s really tempting to a developer. When PCalc 1.0 shipped, the sales were so good, the only real option of what to work on next was more PCalc.

After a couple of minor updates to respond to the first wave of feedback, and add some cool but relatively small features, I decided I should spend a long time addressing some of the big ticket items that I never had the time to do for the first release.

It was worth it, I thought – PCalc is still selling well, so I can spend a good month or two of solid development trying to address most of the requests people had made after 1.0. Specifically, they wanted much more flexibility in the layout and appearance of the calculator, as well as to have it behave more like some of the classic HP calculators from days of old.

So, I started on a fairly ambitious project to rip out a lot of the UI I’d already written and replace it with a new system whereby the appearance and layout weren’t fixed or related, they were loaded from separate XML files.

Inside PCalc, there are now folders of ‘.pcalclayout’ and ‘.pcalctheme’ documents, which describe each aspect. The user can choose which they want to use independently for the horizontal and vertical modes of the calculator. And, in theory, new layouts and themes can be added without any code changes, including the possibility of downloadable content.

The theme code was actually simpler than I imagined. DragThing has had dock themes for a while, and, despite being an evil Carbon application the graphics code is about as modern as it gets – it’s just pure Quartz which is the common graphics layer on both the Mac and the iPhone. So I had the idea, “Why don’t I just use the code I’ve already written?”. And, it was simpler than I thought – I got it running inside PCalc on the phone in a few days, a week or two to get it running fast enough on a slower device like the phone without using up lots of memory in the process.

That made me really happy, because the DragThing theme engine is very powerful and it goes to show the kind of – if you will forgive the word – synergy you can have between the Mac and the iPhone from a development perspective. You can pretty much use exactly the same low-level code on both platforms. There’s a big advantage to being an iPhone developer from a Mac background.

Anyway, right towards the end of development on 1.1, I heard that the App Store was going to change so that updates were no longer going to count towards the release date of your app. And worse, everything was now going to be sorted by the initial submission date of the app. And since PCalc was there on day one, it meant it was now on the very last page.

“Hmm…”, I thought, “that’s not going to be good”. And I was right. Sales went from very healthy to call-in-the-coroner levels.

I submitted the final 1.1 build on Tuesday, hoping that it would turn up six days later on the store (which seems to be the usual delay I’ve seen). As it was, it turned up exactly a week later, otherwise known as New MacBook Day. Since there was very little point in sending out press releases due to the noise, I held off until the day after.

One of the advantages of sharing code between the phone and the Mac is that the changes can go the other way too – I’ve been moving the iPhone changes back to the desktop as well, and while waiting for the App Store to approve 1.1, I was also working on a 3.3.1 release for the Mac. It was ready, so I combined both releases last Wednesday, hoping for a bigger splash.

On Wednesday morning, I could see the sales figures from the App Store – there was no sales spike at all. Without any PR to help matters, sales were exactly the same as the day before, and PCalc was still languishing on the last page of the Utilities section.

I took a deep breath, and sent out the press releases… And nothing. Virtually nobody picked up on the new versions, with the notable exception of John Gruber at Daring Fireball. So, I’m pretty sure that the Mac-style 2-3 day modest spike I saw in sales on both iPhone and Mac was entirely down to him. Thanks John.

So, where does that leave things? Good question.

I’m pretty sure PCalc is a great iPhone application. Lots of people have said very kind things about version 1.0, and 1.1 is much better than it in many ways. I don’t think the current lack of sales is anything to do with the quality of the software.

As it stands, the App Store is too crowded to find anything if you don’t know exactly what you are looking for by name. Last time I checked, searching for “calculator” didn’t even locate PCalc, despite it being in the description. There are dozens of calculators too at this point, of widely varying quality and price. Yes, we cost $9.99, which is apparently now considered a luxury item price, but I think that’s quite reasonable for what you get.

It is due to the global economic meltdown? Perhaps. But I don’t think people have stopped buying iPhone software. If you aren’t a featured item on the front page, or in the list of top-selling apps, once you slip off the front page of your category, your sales are likely to drop significantly. So, the only way to be a top-selling popular application is to be a top-selling popular application. Or somehow catch the attention of the mainstream.

So what should I do now, gentle reader? “Build it and they shall come” no longer seems to work in the iPhone world, just like it’s long since stopped in the Mac world. Getting press coverage is increasingly hard, and people seem to be paying less and less attention to it anyway. This doesn’t seem to be a particularly sustainable situation.

How should you promote software? Sending out press releases to the top twenty Mac websites doesn’t always get you coverage, and based on my referral logs at least, some of the bigger sites aren’t as popular as they once were. Stories that really just restate your press release aren’t likely to hold the attention of their readers anyway. Do I need a full-time PR person who will schmooze on my behalf? Should I cut the price? Would I sell more than ten times as many copies if the price was ten times lower?

It’s hard to justify another big update to PCalc if I can’t turn around sales, but I do really want to keep working on it. Should I just write a completely new iPhone app each week and sell them all for 99c? Is there much point working on big iPhone apps at all with the App Store in its current form?

All your comments and suggestions are most welcome.

In the meantime, why not visit the App Store and buy a copy?