Whine and Cheeze

Posted 2010.11.07 9.17 in Computers/Internet/Technology, iPhone

I’ve recently gone back to doing some iPhone programming. Back in April 2009, I had a list of features I wanted to add to one of my apps, and here it is, a mere year and a half later, and I’ve actually done it.

Quite a lot has changed since then, of course. The state of the art back then was iPhone OS 2.x, with OS 3 just-around-the-corner. Now we’re at 4.1, and 4.2 is coming in November. The tools have all changed too; I’ve lost track of how many times the XCode development tools have been upgraded.

So the first big challenge for me was to re-learn how to actually do the iPhone programming, and then to get my ‘antiquated’ project sources up-to-date so they’d work with the current dev tools. Then after all that, I could finally start with the actual enhancements.

The current XCode tools let me develop for iOS 4.1 (for the iPhone and iPod Touch) and iOS 3.2.x for the iPad. They also let me select a deployment target ‘as far back as’ iOS 3.0. The reason for this is so that folks who aren’t using the very-latest OS could still use my app. Personally I think it’s important to include backwards compatibility. On the one hand, upgrading to the latest OS is free and typically it is highly recommended, but some people simply don’t want to, or don’t feel the need. Or in the case of the 1st-gen iPhones, they simply can not do it — Apple has dropped support for the original iPhone; the latest it can run is iOS 3.x

So, I build my app using the 4.1 tools and specify that it will deploy for 3.x on upwards. In the places where it uses 4.x-only functions, I put those functions in a conditional branch so they won’t cause a crash or anything on the 3.x devices.

And at last, here we find the whine…

In order to distribute the app through iTunes’ App Store, you have to test it on the target devices. So, I can test on my iPhone 4 which is running iOS 4.1.  I can test it on my iPhone 3Gs which happens to be running iOS 4.2beta. It’s not an iPad app so I’m not required to go buy an iPad for testing purposes, right? Oh wait – iPads can run iPhone apps, so yes, you must ensure your app will run properly on an iPad. I also want it to be able to run on iOS 3.x, so I should test it on an iOS 3.x device.

You might think, no problem, just install the older OS on the 3Gs and give it a whirl. Except Apple doesn’t let you downgrade. (Yeah there are ‘ways’ to downgrade but they are unofficial and are ‘hacks’.) So you’re supposed to test on the devices you deploy for, including older OSes, but you can’t up- and down-grade your test devices at will.

In other words, you’re expected to maintain an ‘inventory’ of their hardware that you can use for testing on.

The whole App store thing was supposed to be a level-playing-field. Whether you’re a Google-sized company or an individual hobbiest, you have access to the same dev tools, play by the same rules, etc. However, it’s gotchas like these, that make it very difficult for the hobbiests to compete. Who can afford to keep a stable of Apple hardware that they only use for testing?

I’d like to see a change. I have two suggestions, either of which would make me happy.

First, they should provide an official, supported mechanism to allow developers to up- and down-grade their iDevices at will. They can lock it down, restrict it however they need to, if they’re afraid the public will use it. Maybe have downgrades expire after 24 hours? Require a valid provisioning certificate, or that the device UID be registered to a developer, whatever. But if we have to test the apps on older OS devices then damn well give us the mechanisms to let us do this.

Second, in order to put your app on a device for testing, nevermind getting into the App store, you have to pay Apple a $100-per-year fee. The App store is one of their big marketing tools, they use it to show how much support their iDevices have. But all those apps got there by people (or companies) paying a fee for the priveledge. There’s now about 300,000 apps on there. Some are from one-hit wonders, others from developers (or companies) that have released several dozen. And I’m certain there are developers out there who’ve paid the fee but never got around to releasing anything. So at a wild estimate, let’s say that the 300,000 apps were supported by 150,000 developers? That’s $15,000,000 per year in pure revenue to Apple, from the devs who make their App store what it is. So – how about throwing us a bone, a bit of thank-you in return?

Give us a 5% discount on iDevices. Cap it if you want – say, up to an annual limit of $100 off (the cost of the dev program). They’re still making money on the hardware, and odds are that not all devs would take advantage of the discount. But for those who do, it would be a nice gesture. I mean right now, you pay your $100 and all you get is permission to load your app onto a device, and permission to submit it to the App store.

Just a moment of elaboration incase you missed it – you cannot put your own home-made app on your own iDevice, unless you’ve paid the $100. Even if you never intend to distribute it, if all you want is to make a one-off app for yourself, you cannot run it on the device without paying the fee.

So – that’s the whine. I lied about the cheeze, you’ll have to supply that yourselves.

One Comment

  1. Jim Barker says:

    So let me see if I have this right. Apple, the mega corp, has people pay them 100.00 to maybe get their app posted to their site AND be able to run it on a device that you own? You did buy the iPhone right? To top that off if your good your app sells for what?? .99cents? So you have to sell it at least 101 times @ .99 cents to get your 100.00 back THEN for your time, you sell however many more till your “Time” is paid for.

    This, of course, is if your “App” is one that sells…hopefully big…you know, so you can get paid as well…or do they think people who develop “Apps” have no other life and like writing code for free …

    Wow, What a great scam for apple !! Kudos Jobs, you’ve managed to get all aspects of the market to “Buy in”….

Leave a Comment