How Apple's App Review Is Sabotaging the iPhone 509
snydeq writes to recommend Peter Wayner's inside look at the frustration iPhone developers face from Apple when attempting to distribute their apps through the iPhone App Store. Wayner's long piece is an extended analogy comparing Apple to the worst of Soviet-era bureaucracy. "Determined simply to dump an HTML version of his book into UIWebView and offer two versions through the App Store, Wayner endures four months of inexplicable silences, mixed messages, and almost whimsical rejections from Apple — the kind of frustration and uncertainty Wayner believes is fast transforming Apple's regulated marketplace into a hotbed of bottom-feeding mediocrity. 'Developers are afraid to risk serious development time on the platform as long as anonymous gatekeepers are able to delay projects by weeks and months with some seemingly random flick of a finger,' Wayner writes of his experience. 'It's one thing to delay a homebrew project like mine, but it's another thing to shut down a team of developers burning real cash. Apple should be worried when real programmers shrug off the rejections by saying, "It's just a hobby."'"
Re:So... (Score:3, Informative)
By putting it in an app, he is gaining the benefit of the Apple distribution system, and he is even hoping he will make money by doing so. In fact, I doubt he would even have tried making the app if it weren't for that (has he released a blackberry version?). He is not benefiting users particularly with this app (that is basically a fancy text file), he is cluttering up the app store with a moderately lame application.
Which is fine, anyone should be able to write a moderately lame application, but Apple shouldn't be forced to distribute it for them. The bigger problem here is that Apple isn't letting anyone install apps on the phone in any way other than their distribution system. But once again, in this case it doesn't matter, because he wasn't trying to get on the phone, he was trying to get on the distribution system.
So this isn't just a non-issue for those of us who don't have iPhones, it is a non-issue for almost everyone except those who want free advertising from Apple.
Annoying process, but still worth it. (Score:5, Informative)
I too have found this process annoying. Apples now ruling on UIWebView is ridiculous. I tried to work with them on not allowing any links to work, and they weren't happy enough with that, I still need to give it maximum rating.
But the most frustrating aspect is having no communication with customers. A customer spots a bug, leaves a review that is it. You can fix it, but there is no way to get in touch with that customer, or leave a reply saying you have fixed it. There is even no message that a customer has left a review, you have to trawl through all your apps for reviews every so often, or you will never find out about this.
It is a great system, I will keep producing apps because of this, but it certainly could be better.
Re:And yet... (Score:1, Informative)
Its a quality argument
It's a big fat whine from a bunch of whiners. It's Apple's play pen and it's going to stay Apple's play pen. Deal with it and whine less.
I note that in the now substantial history of Apple's App Store system there have been no reports of widespread exploits or other public relations nightmares. Congratulations Apple; you've created a paradigm that doesn't suck as bad as Microsoft.
Re:So... (Score:3, Informative)
If you read deeper, you'll find the answers to some of your questions. First, the AppStore has proven to be worthless for driving any interest in my books. You can't even find the book by typing the name of the book into the search field. It doesn't help to add quotes around the name. You get other apps with odd names. Don't ask me what's going on.
Second, this isn't about free advertising. I paid Apple to be included in their dev program. You can't even submit free apps without paying.
There's been a healthy debate about the best ways to distribute books for the platform. I like many of the readers. They offer more features than I was able to hack together. But the readers add another layer between the author and the user. They deserve to be compensated. I'll probably experiment with them in the future too. But this was all about experimenting with the AppStore.
Finally, I did build an HTML version and it works reasonable well. You can find it here:
http://www.wayner.org/books/ffa/webkit/ [wayner.org]
But it has limitations too. The marked up version of the book is more than a megabyte. Anyone can read it on their iPhone by hitting this URL. But the caching isn't great and they may need to reload it. The performance is much better as a direct App.
In any case, I still think that iPhone users and iPhone developers should be able to find each other without waiting for Apple's clearly overburdened team to approve the interaction. That makes a good platform.
Re:And yet... (Score:5, Informative)
Actually they did publish it. Then they took 2+ weeks to publish the dozen or so new lines of code that fixed bugs.
At the same time they rejected a very similar version. The only difference was some extra HTML. The Cocoa code was equivalent.
So it was fairly random.
Re:And yet... (Score:5, Informative)
Are you for real? Do you have any idea of what it was like to develop mobile apps before Cocoa Touch was available?
-jcr
That's not the point. It didn't take me long to write the software. It took me weeks to get rejections and the rejection reasons were nonsensical. One dinged me for using open source software because it was a "framework".
Re:And this is different from what? (Score:5, Informative)
It's not that other phones have a marketplace with an approval process, it's that the marketplace is the only way to load programs onto your phone. With a Windows Mobile phone, you can download and install a .cab from anywhere you want. If it's not signed you get a brief warning message, and that's it.
Re:Comparison (Score:3, Informative)
It's a lot different in the fact you don't need to be a large company and spend thousands of dollars on special developer units, and licenses, and software to do the developing. Apple has a one time cost of $100 to anyone, all you need is a Mac, which are sadly cheaper than an Xbox dev unit. (I don't know about Wii's, but the process is the same.) And, the development SDK is free for anyone. Verizon's process is, you have to spend about $500 on a certificate from Verisign, you have to be a big enough company to convince Qualcomm to give you testing rights on your phone (which you also have to buy several different ones to test on) and then Verizon might review your application. The BREW application development process is terrible.
Re:And yet... (Score:5, Informative)
From the sound of it he's tried getting the app passed numerous times despite knowing that what he's doing is not allowed.
Really? What am I doing that's not allowed? I pop up a UIWebView and stick in some HTML. That's it. Yet I got some rejection letters telling me that I was either accessing a private API (I wasn't) or somehow interpreting code. (I wasn't.) The UIWebView was doing that and it is perfectly okay for Apple's frameworks to interpret things.
Here's what the rejection note said:
No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple's Documented APIs and built-in interpreter(s)."
Well, everything I do is pumped into the UIWebView which is well documented.
Furthermore, how can Apple really make any deep decisions like this? I don't upload code. They don't compile it. They look at raw binary code.
Re:Have you tried the alternative store? (Score:5, Informative)
What percent of the 20+ million devices running iPhone OS do you think are jail broken? It's just not a reliable answer for most people.
Some people see things how they are.
Re:Have you tried the alternative store? (Score:5, Informative)
I'm sure part of the problem with the "unofficial" app store is that it's quite likely that one of these days, Apple will get serious, and make a bootloader without glaring security holes in it. (I mean come ON, Apple, the bootloader isn't that big!...)
When that happens, it may be impossible to "permanently" unlock an iPhone without hardware mods, which will seriously limit the Jailbreak community -- probably into irrelevance.
That's a rather big risk for anyone to take on in their development...
Heck, I'm not even bothering to learn to write for the iPhone as a *hobby*, because it'd be a waste of my time. Pretty much everything I want to write isn't allowed by Apple's rules, and while my phone is Jailbroken, Apple is trying (so far, completely incompetently...) to prevent me from being able to buy a new jailbreakable iPhone ever again. So it seems to me that the iPhone is basically a dead-end platform.
Re:And yet... (Score:4, Informative)
Are you for real? Do you have any idea of what it was like to develop mobile apps before Cocoa Touch was available?
Elaborate, please. I didn't see any difficulties developing apps for Windows Mobile in VS, for example.
Re:And this is different from what? (Score:4, Informative)
Sony Ericsson phones run Java apps, and are not locked. BlackBerry phones run Java apps and BlackBerry apps, and are not locked.
Both may be locked to a single carrier, but they're not locked with respect to what software you can run, and where you can download it from. In fact, the iPhone is the only common phone I know of which has such a control-freak approach to applications.
Re:And yet... Better Experience (Score:5, Informative)
My first application was rejected within a week due to a crash in a certain situation I hadn't caught previously (I should know better than to assume the debug build would act like a release build). Obviously, they go through each of the screens and check the functionality. However, I had expected one of the "nonsensical" reasons I've heard of or the extremely long review process.
I was surprised that the reviewer put in what the error was and how to reproduce it. I reproduced the error and ultimately resolved. Next submission was accepted after about a week or so as well.
Based on this experience, I really worked hard to anticipate issues with my next application before submitting. Made it in ten or so days in one pass. Both applications are rather benign without anything controversial which probably played into this.
I feel fortunate that they made it through relatively easy. I hope the game I'm developing goes as well. The oblig plug -- GMToolKit (RPG helper) and FW Calendar (Calendar with fiscal weeks displayed) are the applications.
Re:And yet... (Score:4, Informative)
Given that you are already ignoring the reasons stated in your rejections from Apple reviewers who have seen your app, it's a bit pointless me reiterating.
But, in your linked whine, you admit to using PhoneGap, and you admit to knowing Apple don't allow it. And you admit to trying to hide your tracks. If I were Apple I'd kick you out of the program for wasting their time.
They obviously have scripts that create and check class dumps and search for tell tale strings.
Re:The review process certainly has its flaws, but (Score:3, Informative)
I thought about this before working on the project and I saw that many other apps were distributing single books. After I tested some of the free ones, I decided that it wasn't a bad system at all. Sure, it added another icon, but I could live with that. When I was done with the book, I was going to delete it anyways to make room for others.
I can understand why you might want a different solution, but it boils down to a question of menu branching. Some people like a shallow tree with many options. Others want a deeper one. So it's a question of taste.
Let me try to understand something (Score:5, Informative)
is your APP pure HTML, or does it contain JavaScript code like the PhoneGap [phonegap.com] project uses?
If it contains JavaScript code, maybe Apple didn't like the way it was designed as it was similar to the old PhoneGap code they rejected, did you update your JavaScript code to the new PhoneGap codebase that was approved, or did you remove the old PhoneGap code with different JavaScript code?
If your APP is HTML with JavaScript, Apple might have an issue with that. Sometimes JavaScript code can do nonstandard things that locks up a web browser or causes incompatibility issues. When I programmed in JavaScript I had to keep changing my code to changing Web browser standards, as soon as a new web browser was released, the way JavaScript worked would change and I had to change my code to accommodate it.
If it is pure HTML, there might be tags you are using that Apple finds non-standard and thinks they might run exploited code.
Here is a story on why Apple rejected the PhoneGap framework in the first place [readwriteweb.com].
Yeah I know, Apple wants to protect their users and set quality control standards high, and they include such rules as not using third party or open source frameworks, and Apple does not want the APP modified on the iPhone after being bought, Apple does not want the APP to run on a competitor's phone (HTML and JavaScript applications can easily be ported to another format), and PhoneGap type applications may not work on future iPhones, it is all a matter of risk management. Apple does not want to risk anything so it sets strict guidelines on what an iPhone APP can and cannot do.
Yeah ironically Apple has exchanged freedom for security, and in doing so shut out developers like yourself. Even something as simple as HTML code and/or JavaScript has to be reviewed and has a possibility of being rejected. It goes against the open source philosophy, I don't know what else to say. Even Microsoft is not that strict on what can and cannot be done on their smart phones or Windows OS. Except to say that Microsoft's products are more prone to exploits and viruses and other malware, and maybe Apple is doing this kind of thing to prevent exploits in their iPhone?
Re:And yet... (Score:4, Informative)
Useless? Perhaps.
But that's not what my rejection notes said. They prattled on about using a "framework" or misusing some part of the API.
And they also told me I couldn't tell anyone I was giving my revenues to charity.
If it was all as useless as you feel, they could have saved everyone a great deal of time by just stamping "useless" on it from the git-go. Then I wouldn't have wasted time fretting about misusing the API and they would have had one more useless App to reject once again with a passive aggressive reason.
Re:And yet... (Score:3, Informative)
When I wrote this piece, I went out of my way to discuss the subject with many other developers. If this were simply a question of my problems, it wouldn't be worth writing. But many other developers are having similar problems with entirely different approaches. That's why I included the long list of adjectives that other developers are using. Go read their posts. Are they all simply dismissed as loons?
Re:Let me try to understand something (Score:3, Informative)
It's not worth speculating on why Apple rejected my application because I don't know. The notes were short and pretty much inscrutable. Eventually they accepted one version while rejecting one that was pretty much the same thing. So maybe it was some Javascript, but that doesn't sound like it should be against the rules. They only insist that code be "interpreted and run by Apple's Documented APIs and built-in interpreter(s)." Well, it sure sounds like Safari and Javascript fit that definition to me.
Re:And yet... (Score:4, Informative)
It's be bad if it was the only thing they do. But as an automated procedure it makes perfect sense as one of the many things they check. It caught you out for a start.
It's spelled out in the rejection you and others have had. You're not allowed to use third party APIs. Apple may have any number of reasons, but that fact that it enables you to change your application code remotely without going through the approvals process is an obvious reason for rejection.
Re:And yet... (Score:4, Informative)
No. Of course not. I've been around the world enough to realize that you don't write what I wrote without expecting the immune system to dispense as many white blood cells as it can muster.
If you read TFA, you'll see toward the end that I'm heading toward pure webapps now. They've got their own issues, but they're cross platform and there's no gatekeeper.
Apple has a one time cost of $100 == !correct (Score:2, Informative)
Re:And yet... (Score:1, Informative)
This guy ignores the reasons stated for rejection
Did you read what he wrote?
He's not ignoring anything - he's saying "tell me what the fuck you're talking about, because I'm not doing what you claim I'm doing".
Now, if you're so fucking smart, why don't you explain how he's misusing the api? Oh, that's right - you can't - because he's not.
Then there's the bit about "donating to charity" - why the fuck does apple care if he states it?
If you would take your head out of Jobs' ass for a minute, you might be able to appreciate that there *are* problems.
Re:And yet... (Score:4, Informative)
I have an iPhone app successfully published, and that doesn't change that fact that Apple's actions in this case are complete BS.
This guy ignores the reasons stated for rejection
The reasons are incoherent. PhoneGap is not an "external API" any more than any other piece of open source code is. Maybe you don't care as long as your apps get approved, but I find it ridiculous and harmful to the platform, speaking as both an iPhone user and developer.
I agree. (Score:2, Informative)
Maybe it's just me and my experiences in real life, but this guy reminds me of a doctor. Smart, capable of doing complex stuff... but always convinced that he's in the right, and that he should always get his way. If he doesn't get his way, that... that's... that's just unacceptable!!
I don't mean to troll, and I don't mean to insult beyond what anyone deserves. But I just want to point out that we have a *very* one-sided view of the situation. From reading his stuff it seems like he is in the right (and I agree with some things he says), but I can't help but think that there just *might* be some bias in a story told by the protagonist with mild hyperbole. If it happens twice, I'm doubly suspicious.
Again, I agree with some things he says. And again, maybe this is a symptom of me and the people I work with. But it seems to me that he complains a lot, is self-centered, and thinks he knows everything (but doesn't). No offense, Peter, but that's how you're rubbing me.
Say what you will about these words - I can be hypocritical at times.
Re:And yet... (Score:3, Informative)
They aren't incoherent. PhoneGap is a cross platform API. It's obvious Apple won't allow it.
If you want to do a web app, Apple allows those. But you live within a strict security model, and you don't get revenue, and the user expects that it will be of web-app quality of interaction.
This is an attempt for people to circumvent the security, functionality and revenue model for web apps.
Finlly, what would happen if all apps used PhoneGap? Then the quality of mobile apps would go down to the lowest common denominator.
No surprise it's not allowed.
There's no point in the submitter crying. Just accept what he's told of the reason for rejection, and move on.
Re:And yet... (Score:3, Informative)
> No matter how badly the OS gets broken, I can always use that backup bootloader to re-flash and start over.
So in other words, its perfectly possible to brick it with software. You just have a handy backup available to un-brick it when you do. Right?
Just like the iPhone. What's this you were saying about "proper design"?
Maury
Re:And yet... (Score:3, Informative)
For everyone's interest, here's the submitter's app:
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=310737253&mt=8 [apple.com]
And here is a list of the reviews it's had around the world so far. Every single review is a one star review. All complaining that the UI is broken.
http://www.moopf.com/appstorereviews/appstore.php?appid=&urlappid=http%3A%2F%2Fitunes.apple.com%2FWebObjects%2FMZStore.woa%2Fwa%2FviewSoftware%3Fid%3D310737253%26mt%3D8&submit=Get+Reviews [moopf.com]
Apple's mistake was this one time they accepted the app. Not the many times they rejected it.
Is there anything left to discuss?