Attack Of The Clones

One neat Twitter trick to try is using RSS feeds with to track the use of keywords that are important to you. For example, I’ve got feeds on “DragThing” and “PCalc“, and also on “@jamesthomson” to catch any tweets I miss that reference me.

And yes, @jamesthomson is me – feel free to follow me to boost my vast programmer ego even further.

Anyway, first thing this morning as I was heading out to the gym, Twitter flagged up the following tweet by @MDMstudios:

Xcode has been crazy all day. At least we got PCalc ( the calculator ) to Apple finally.

“What? What?! WHAT!?!” I said, channelling an alarmed David Tennant. “I’m just about to submit my 1.2 release today, but I’m pretty sure I didn’t actually do it yet…” Reading on, it looks like these folk have written a programmer’s calculator for the iPhone, called it PCalc, and just submitted it to the App Store.

OK… Well, that’s going to be interesting… It was only a month or two ago, somebody said they were working on a new application for Windows called DragThing and I had to send them a little note.

I’ve sent a polite email to the first address I found, and hopefully I can convince them nicely that pulling the submission and renaming it to something else might be best for both of us, without any threats of lawyerly smiting with trademarks required. Luckily, I caught it at the submission stage, rather than having it appear on the store itself.

Anyway, it got me thinking – I wonder if the Apple submission process actually checks such things? Could I just make a new app, call it, say, Twitterific and submit it and get it onto the store. Yes, of course The Iconfactory have a trademark on the name, and there would be legal recourse, but would Apple reject it before it reached the store?

Or does Apple consider that’s not their job, and will leave it to the lawyers to sort out afterwards? I wonder.

Hopefully there will be a reasonable ending to this particular story anyway. Some further investigation suggests that the developer in question is actually 14. Which depressingly means that they are younger than some of the code in PCalc, which I started writing in 1992 when I was at university…


I just got an email back from them, and they are going to change the name, and apologised for any trouble. Phew!


Apparently, I haven’t written anything here for nearly two weeks which comes as a bit of a surprise to me… When I am coding, time seems to flow quite differently. Anyway, the one of the two main reasons for my silence is that I’ve been working away on a new 1.2 release of PCalc.

It’s got an optional two-line display mode for the RPN folks, and a couple of new themes. It’s a nice update I think. The two-line display has been a very common request since the iPhone version came out, but there was a large number of things I needed to do to make it possible. Most of that work happened in 1.1.

In order to support a variable height display, the button area below it needed to be resizable rather than having all the positions hard-coded as in 1.0.x. That led to writing the dynamic layout code which as a bonus meant that I could support multiple different layouts.

Also, in 1.0 the buttons were all drawn using pre-rendered PNG files. That worked fine, but it meant that every time I introduced a new button, I needed to create a new background PNG file of exactly the right size, as scaling the graphics made them quite blurry. A better way of doing it would be to draw the buttons on-the-fly in code, so they could be any size at all. Luckily, I had just the technology for doing that in the DragThing theme code, so I used that. And, as a bonus I could now support multiple calculator themes.

Point being that all this started with the requests to do a two-line display, and that simple request led to rewriting large chunks of PCalc to make it much more flexible, and now the original feature that started it all is finally done. This makes me happy.

PCalc 1.2 isn’t as big an update as 1.1, but I’ve spent less than a month on it rather than the two months I spent before. I think that’s a reasonable goal for doing iPhone application updates. In two months, you slip so far down the listings that people forget about you.

Hopefully, the release will also improve sales, and I plan to try every trick in the book to get it noticed this time round! It should be submitted to the App Store within the next few days, and I expect it will be on sale in about a week.

Now, while I wait for my beta testers to give me the ok, I will return to the second reason I’ve been a bit quiet – exploring the wastelands of Fallout 3 🙂

Did I Mention It’s Also A Calculator?

Following suggestions, PCalc is now called “PCalc RPN Calculator” on the App Store – that way searches for “calculator” will actually find it, and it’s blindingly obvious what it does on a first glance. I feel bad that I need to spell it out like that, but sales are sales, and pride and self-esteem can be bought back later.

Of course, it’s not just an RPN calculator, so I hope that doesn’t scare off more people than it attracts, but it seems a lot of our users do like it for the optional RPN side of things, and that’s a reasonable marketing hook for now. I might play with the name a bit over time, see if it affects sales one way or another. 

You can change the name as displayed in the store independently of what the app is actually called, so people still end up with something called PCalc on their phone, and updates happen correctly for people who bought it with the original name. Plus you can change the name at any point using the “Edit Application” section of iTunes Connect – you don’t need to wait until you release an update.

Anyway, sales picked up a little bit yesterday – not by any large amount, but statistically significant at least. But I fell victim to one of the classic blunders! The most famous is, never change more than one thing at a time when you are testing.

So, PCalc is now closer to the front of the App Store due to the “Availability Trick”, I’ve changed the name to something more obvious, but I’ve also got a lot of hits on these blog articles. Which of those changes is responsible for improving sales, however slightly?

I’m guessing at this point, to be honest, it’s the blog. I got close to 4000 people reading my post-mortem post on the PCalc 1.1 release, and if only a tiny percentage of them was moved to purchase a copy, that would account for the difference I’ve seen over the last 48 hours.

We shall see – blog traffic is falling off a little now that I’m not on the front page of Daring Fireball, so if sales drop accordingly today, that should give me an idea how much of it is down to that.

Come back tomorrow for more iPhone App Marketing 101!

How To Change Your App Store Release Date

Update 2nd December 2009 – it looks like this no longer works, the sort by release date in iTunes now sorts by the version 1.0 date, ignoring all updates. PCalc is now back on page 341 of Utilities. Oh well…

So, not long after my last post I started getting emails telling me about the mysterious “Availability Trick” that was quietly being passed on from iPhone developer to iPhone developer like some secret incantation.

In short, it lets you change the release date of your app, as listed in the App Store, and overcomes the problem some developers have been seeing recently with our older apps banished to the distant corners of the store, even when we ship significant updates.

How interesting.

So, I tried it. And it indeed works.

PCalc is now listed as having been released on the 13th of October, which is pretty close to when the 1.1 update actually appeared on the store. I’ve still missed the main window of exposure of course, but the 4th page of Utilities is much better than the 31st in terms of discovery.

Now, if I was being sensible, I should just keep my head down, be quiet about it, and use the trick next time I do a release like some other people are doing. But, to be honest, that’s not really fair on other developers, and doesn’t fix any of the underlying problems.

So, how does it work? It’s really simple. In the “Edit Application” section of iTunes Connect, there’s a “Pricing” section. In that, there’s an “Availability Date” series of popups.

This date is defined in the help as “the date in which your application will be available for purchase on the App Store”. My understanding of this was that you used it to set a date in the future that you would like a given release to happen on. So, you could upload some music ahead of time, for example, and it would only appear on the official release date.

But if you retroactively edit the value to some point in the past, less than or equal to the date that the update in question actually hit the store, your release date as displayed in the App Store will be changed to that date, and your app will be moved to the appropriate point in the listings.

So, is this behaviour a bug, a loophole, or how it’s actually supposed to work?

The description doesn’t suggest it will have any effect like that, and it’s not mentioned in the App Store documentation either. And needless to say, developers haven’t all had an email saying “oh, sorry about all the changes we made to the store, here’s what you need to do now to ensure your application is listed correctly”.

This seems to be pretty widely known about however and is being used today, so basically we’re back to the situation we were in before the sorting changes, except the people who don’t know about the “trick” are being penalised in the listings.

Perhaps the whole release date issue isn’t really a policy change at all, and we’re all seeing shadowy patterns and conspiracies where there aren’t any. Maybe it’s all just down to a lack of communication and documentation.

Put it this way, if PCalc is listed on the 31st page of the store again by the time you read this, then at least we know the answer…

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?

I Love Lawyers

Since yesterday’s post on my problems with AdWords, I was passed the contact details of a very nice lady in Apple Legal, who sent an email on my behalf to the very nice Google Advertising Legal team, who just wrote back to me.

So, I am now hereby authorised by Apple “to use its APPLE, IPOD,  IPHONE and MAC trademarks in its Google sponsored links in the United States, Canada, the United Kingdom and Ireland”.

I wish to now state for the record that, contrary to any previous comments I have made on the matter, lawyers are A) surprisingly efficient, and B) lovely.

Your Google AdWords Approval Status

Well, it’s not entirely surprising after the similar “Mac” debacle, but I just got an email from Google AdWords saying that my PCalc advert has been suspended because it uses the trademarked term “iPhone” in the text. This isn’t about keywords it seems, it’s just the body text of the advert they complained about.

Here’s the ad:

PCalc for iPhone
Full-feature calculator with RPN.
Unit conversions, tape, hex/binary.

How exactly I’m supposed to advertise software for the iPhone without actually using the word “iPhone”, I’m not quite sure yet. When “Mac OS X” was banned, I switched to plain “OS X” and everybody seemed to be happy. Suggestions? “PCalc for that phone from that company named after a fruit”?

Yes, I know it’s probably something to do with protecting trademarks and having many many lawyers, but it doesn’t make a lot of sense to me. 

I mean, if my advert said “Don’t buy an iPhone, buy an HTC G1 instead!”, I could understand the concern from Apple’s perspective. But you’d think that since they get 30% of everything I sell, they would be quite happy I’m paying for the advertising myself.

Interesting that the email came today as the new versions came out – could be coincidence, but I’m guessing the increased traffic caught somebody’s attention.

Quick, Write Something!

Ok, so John Gruber just linked to this embryonic little blog, so I better say something interesting.

Let me adapt a little rant that I sent to my beta testers this afternoon…

The recent change to the iPhone App Store so that the listed release date of software is the date of initial submission – and not the date of the last update – seems to have had a very profound effect on our sales, and not in a good way. PCalc is now currently sitting on the 29th and last page of the Utilities section, since it was one of the very first apps submitted to the store, and that means it’s now effectively dead in the water.

PCalc 1.1 went up on the store yesterday without any PR fanfare, and there was no increase in sales whatsoever, whereas previously that would have generated a very significant spike as it made it to the first page. So, what’s the rationale now for developing big updates to your software, rather than just banging out a bunch of cheap and cheerful apps that you never intend to look at twice?

Ok, so the argument is probably that people were abusing the update mechanism by releasing numerous small updates to keep their apps near the top of the pile. But instead of addressing those people, now everybody has to suffer, and there’s now a big incentive to work on something new rather than further develop existing software.

The conspiracy theorist would point out that Apple doesn’t make any money from the updates so that’s in their interest. But perhaps I should just spend more time and money on my marketing rather than my coding…

Well, Everybody’s Doing It

Yes, I realise a developer blog by some starving indie Mac / iPhone programmer isn’t exactly original, but instead of ranting at my friends and loved ones, I thought I would pontificate at you instead gentle reader.

Not decided what form this will take, but I’m sure by the time you actually come across this blog, there will be a lot more insightful posts above this one.

Today marks the release of both PCalc 1.1 for the iPhone and PCalc 3.3.1 for Mac OS X, so please check them out.

Ok, so if we’re being honest, PCalc 1.1 actually appeared on the App Store yesterday, but the chances of cutting through the MacBook press coverage were rapidly approaching nil (NULL?) so I decided to pretend it came out today, simultaneously with the Mac one.

It should have been up there on Monday, but apparently “Ready For Sale” doesn’t mean what I think it does.