I'm not a big phone/tablet app user, so I'm ignorant about this: how does that work for new purchasers? Is there a way to say "anyone who buys this from date X on gets these additional purchases included free"?
For instance, if I buy Photoshop today, I get all the features. If I had bought the last version, I'd have an upgrade price to pay for the new features. In the in-app purchase world, does everyone always have to pay the original price + in-app purchase price? Do you just make the new base price lower (but with the low prices of apps in the first place, there's not room for many versions if you knock a buck off each one...)? And even that seems to still be new-user-unfriendly: I would be bummed if I bought an app for $1 and found out that the coolest features required another $3 in purchases, even if the app cost $4 when it first came out a couple of years ago (I probably don't even know that).
I've yet to really think about it like this, but your comment seems spot on. Has any app really gone the route of already being established before introducing in-app purchases? The only utility app I can remember paying for an in-app was Paper — but even then, a large chunk of functionality wasn't available without it (the different brushes) and it wasn't an established app beforehand.
I listened to a talk by a game developer last week, and their thrust was exactly in this direction.
The app is free and revenue is made from in-app purchases.
The basic app is structured so that upgrades are infrequent, because of the time lag.
However, the app connects to back-end servers which contain much of the smarts of the app. Thus they can upgrade them whenever they like, without having to upgrade the app. Then can also introduce premium features to be sold with the existing in-app purchases.
How you achieve this in a non-game setting is a challenge, but I believe it is the key.
IAP is (roughly) limited to unlocking functionality that exists in the app, offering a subscription of some sort, or offering new content.
You sort of could deal with something like OS X Mountain Lion as an IAP, but it would be incredibly ugly - you'd essentially have to ship both code bases, and "unlock" the new one based on whether or not they purchased the "upgrade".
IAP works pretty well if you have new features that are fairly discrete and are worth paying for individually. As a substitute for an actual upgrade, it is an ugly hack.
That works if all the upgrade entails is the addittion of new features, but frequently news version are different than just features. They are frequently a rework of the UI or other core code (Apple's Logic 7->8 upgrade jumps to mind, as do most upgrades to 'large' software applications like MS Office.)
I'm pretty anti-IAP. The core problem is I don't know what the purchases are or for until I've already committed to using the app. So, I naturally assume it's hobbled shareware. I'd much rather have a price and feature list in front of me, like what Tweetie did.
That way existing users still have a core product that will see upgrades.