The iPhone is a terrible platform for the vast, vast majority of developers.
No. You want a terrible platform, you try writing software for the Nokia platform. Or heck, try any other phone platform besides the iPhone. It's not a coincidence more apps are sold for the iPhone than for any other platform.
Apple has provided the best user experience and has the most users who are willing to buy apps. They are doing you a great service by allowing third party apps and promoting apps that hit their "best of" lists for free. Just because the experience isn't perfect doesn't mean Apple is "fucking over iPhone devs".
> Or heck, try any other phone platform besides the iPhone.
Developing applications for the Android platform is an absolutely wonderful process; I can build apps in Eclipse on any platform, plug in my phone via USB, instantly upload the compiled code, and run the app with a full debugger suite in Eclipse allowing me to debug apps as they're running on the phone, with breakpoints, full listing of in-scope variables, and a list of all process threads. And I haven't even had to pay a developer fee! Imagine that...
And while I haven't personally put an app on the Market, I've heard that the Market process is really straightforward and simple. And some of the apps I've downloaded have had multiple new versions available in a single week, so it's not slow, lumbering, and full of pitfalls like the App Store process.
The coincidence is just that Apple has spent more on marketing and branding for the iPhone than other platforms, and they were the "first" to have an all-in-one smartphone device with a decent UI, but they are by no means the "best" on the market. They just spend a lot of money and resources to get everyone to think they are.
" And some of the apps I've downloaded have had multiple new versions available in a single week"
Not sure if having to update the same app multiple times in one week is something I'd like to do as a consumer. I like the release early, release often strategy for development, but when the app is running on someone else's device I'd like to see people put a little more attention into the quality of the software they ship. Why exactly does someone need to update their app multiple times in one week?
In this case, it's a game, and there was a feature release with some new configuration options, and then two days later, a bug-fix release for one of the options under certain user conditions. In this case, maybe the bug could have been prevented, but the fact that the developer was able to get a fix release turned out in a very reasonable timeframe is what's important.
Shit happens, and updating to fix a bug should not have a two-week latency where some reviewer could all of a sudden decide that your app is now rejected or no longer meets some amorphous criterion.
This is the age of web applications and permanently net-connected smart phones. Who are you to tell me I can't fix a typo or push a bugfix more than once a week?
No, not joking. I understand that you can fix a website instantly and as often as you like, but these are not websites we're talking about, they are applications that users have to download and install. If any desktop application I ran had multiple bug fix updates per week every week I would be pretty worried about the overall quality of the application and of their development process.
I wouldn't call a service that's rejected apps seemingly on a reviewer's whim with no recourse or dispute process "not perfect"; I'd call that downright abysmal.
I've had one of my apps rejected because I used the an icon incorrectly (it was for submitting a request, but the icon was only supposed to be used for sending messages. huh?). A tiny change in IB and it was accepted a week later. Yet crap like this gets through no problem: http://ralovely.com/downloads/triplog1040.png And that's not even a bad case by a long shot.
Based on Apple's own numbers, about 1 in 20 app store submissions are being rejected. There's no way to know how many of those are legitimate rejections (I'm willing to bet a lot), but that's a pretty scary number of apps that should be let through that aren't.
The changes they need to make to drastically improve the experience for devs are really minor. I don't know why Apple's making them, other than a tradition of insane levels of secrecy in their corporate culture. That or they're just too embarrassed to let people see into their review structure. Either way, something is broken.
I agree with your first sentence but the point is that application acceptance to AppStore policy does not constitute entire platform.
I am curious, why this part of the otherwise very nice platform is so screwed.
No. You want a terrible platform, you try writing software for the Nokia platform. Or heck, try any other phone platform besides the iPhone. It's not a coincidence more apps are sold for the iPhone than for any other platform.
Apple has provided the best user experience and has the most users who are willing to buy apps. They are doing you a great service by allowing third party apps and promoting apps that hit their "best of" lists for free. Just because the experience isn't perfect doesn't mean Apple is "fucking over iPhone devs".