I'm not sure what is dishonest unless the product mis-represents itself. Crippleware was big in the shareware scene all through the late 80s and 90s and still works today.
Perhaps Apple could allow a new category, but it is an honest model.
You obviously didn't grow up in the shareware gaming days. All the old Apogee classics (Wolfenstein, Commander Keen, etc) were 1 episode teasers that required you to pay to play the remainder of the game.
I have to say that they (or more rightly Doom) were a revelation at the time: cripple-ware that wasn't crippled.
Most cripple-ware wouldn't give you a fully-functioning product: save didn't work, print had "UNREGISTERED" (or worse) emblazoned over it.
Having a great, polished level for free and the opportunity of buying more isn't my idea of crippleware. There is no feeling of being cheated and no "if only".
(I guess I should clarify that this is an analogy, and that the same applies for desktop software. Dial home = one extra layer against piracy if someone pirated the app.)
Most iOS apps use a standard set of system calls to check if the item has been purchased. I assume the hack works by patching the systems calls to return YES to all queries about in-app purchase items. That's how I would do it if I was building something like that. There are no tokens or keys to validate... it's just "hey system, is this paid for? okay!"
It is a model which allows people to try before they buy, which also expands the audience and allows the game to spread. It is a good thing when implemented well.
It would easily be sufficed with a "free app" and "paid app". Apple just doesn't make this seamless. Consequently, the "freemium" model is born through in-app "upgrades".
As someone who hasn't bought a single in-app purchase (I might if Carcasonne add expansions), are these transferrable across devices like the apps are?
Yes, iOS in-app purchases are transferrable across devices that are linked to the same app store account. It is a somewhat strange experience when you do it the first time because you are basically expected to "buy" the item on the additional device and then at the last moment the system determines that you already paid for it and provides it for free -- I had visions of getting a bill for multiple in-app purchases of the same item but in the end it all worked out.
For this reason (and for clean installs) there's an option in the API for "restore purchases". Applications should provide this option in addition to "buy".
Another benefit of it is that it restores all in-app purchases for this app. Very helpful in case the application provides more than one purchase product.
It's really the only way to do a trial of any kind in Apple's app stores. It's better than a lot of apps in the App Store where you have to pay in full for it without being able to try it at all, including Apple's.
It's been fun watching this comment's points go up and down like a yoyo. At one point it was at -1; it's currently at 10. This is clearly an issue that divide HN readers.
I obviously fall in the against camp — though I can see the argument for it (and many good points have been made).
There is no simple answer other than very clear labelling.
Didn't shareware work like this back in the day? Or are these apps selling themselves as "free!!!!!" and hiding the "(extra features cost $$)" in small, hypothetical print?
Yuck.