Rogue Amoeba abandons iPhone because of App Store approval insanity
rogueamoeba.com
rogueamoeba.com
I have had two apps get randomly rejected for things that had existed for several versions. I blogged about this a bit: http://www.gaiagps.com/news/article/Update%20on%20Gaia%20GPS...
This is just bad for everyone involved. Apple could just say "fix it next time or we will reject you" rather than throwing a wrench into my operations.
Oh well... I'm going to keep developing iPhone apps and hope things improve.
These kinds of issues can be extremely hurtful to an ISV. I wonder if upper management at Apple knows how much damage they're doing to their reputation in the developer community.
I rant and curse about this, but at the end of the day, I have to play ball.
"There’s a bigger story here, however. It’s one that’s been told before, but until things change, it needs to keep being told. Simply put, the App Store is broken."
Submit app, assign reviewer (who will also get priority for reviewing any updates), and then you have a dialog with the reviewer.
I've got a couple small apps that I'm preparing to submit, but I don't think I'll spend the time to write anything serious until they fix this.
Seriously, what advantage does the review process offer? Can it be seriously argued that "review" benefits anybody?
The problem is there is no outlet for rejected software, but I don't think you are any more entitled to sell via the App Store than you are to demand that your product be sold in Apple Stores.
- Users require a higher level of reliability from their phone than their computer, and keeping out trojans and buggy apps improves the overall experience.
- Apple is able to maintain a more consistent UI by only allowing apps that conform to certain standards.
- Some apps need to be kept out for legal reasons (BitTorrent) or to make parents more comfortable giving a device to their kids (porn).
I don't mind a review process inherently, but Apple has mismanaged the whole thing in about every conceivable way. If I had my druthers, all apps would be instantly approved, with malware/etc yanked remotely as needed. Failing that, a community review process might also work well.
- Reliability is still important on your desktop, and, though a mobile platform is more constrained by processing limits, it's up to the developer to respect those constraints. You don't get carte blanche to load forty terabyte files on a desktop app; you realize that your success depends on your ability to deliver a reliable app.
- Apple's HIG is actually pretty well-applied on OS X; from a strictly UI point of view I don't think they need to mandate you follow their stringent guidelines. Besides which, after the year or so of the AppStore in play, people have a good idea of what an "iPhone app" should look and feel like, which helps reinforce this.
- You can load up all kinds of filth, theoretically, on OS X. It happens. But it's not a big deal.
That said, I probably agree with your final point. I suspect Apple's throwing around a lot of solutions to the "AppStore problem", but since Apple tends never to leak anything until release, it's frustrating to be in the dark in the meantime.
I would like to see anyone do it better than Apple has. The old cliche applies: It's very easy to criticize. Not so easy to do what they have done.
- No way for small bug fixes to jump the queue.
- No way to pre-screen app concepts, so that the developer can get a rejection notice before doing the work.
- AFAIK, future releases are not routed through the same reviewer as previous versions, resulting in nonsensical rejections for previously existing characteristics.
- Again, AFAIK: No second pass for rejected apps, with an eye to the P.R. impact of the decision. I'm all for employee empowerment, but anecdotally, reviewers seem to make a lot of arbitrary decisions which the company backs with little examination.
- No feedback mechanism on your place in line. The wait would be a lot of more tolerable if I knew I knew how many days or weeks it should take, on average.
Simply put, Apple hasn't made developer relations a high priority, which is unfortunate; failure to do so in the 80s and 90s is part of what kept Macs in single-digit market share. iPhone may be king of the market now, but pissing off devs is not a good way to stay there.
- No way for small bug fixes to jump the queue.
There is, you can get them in within a few days. Not immediate, but it helps a lot.
- AFAIK, future releases are not routed through the same reviewer as previous versions, resulting in nonsensical rejections for previously existing characteristics.
Not the same reviewer. But just speaking in general, this is also a positive point: if an app should really be rejected, but wasn't due to a lapse by a certain reviewer, it can still be rejected by another reviewer in another version. Makes sense. (well, you can say just skip the review process totally or enforce some way to make every reviewer have the same standard, but we know the world's not perfect, and we make do with what we have).
- No feedback mechanism on your place in line. The wait would be a lot of more tolerable if I knew I knew how many days or weeks it should take, on average.
Actually it's been months since they started showing the average number of days X% of updates wait (~2 weeks for ~98% so far).
And for the past few weeks, they have started showing the status for each update posted. ie. pending review, reviewing, rejected, etc.
- Simply put, Apple hasn't made developer relations a high priority, which is unfortunate; failure to do so in the 80s and 90s is part of what kept Macs in single-digit market share. iPhone may be king of the market now, but pissing off devs is not a good way to stay there.
This isn't right. Apple has handled developer relations very well for OS X app developers. From the outside, it almost looks like iPhone dev relations is handled by an entirely different group of people.
Anyway, re: whopa, ah, I see what you mean now. I misread it as saying "Apple doesn't care about developers in general".
Um, you can bet there will be a "review process" if you approach Apple and ask them to distribute your OS X application.
There are few if any parallels between independent PC/Mac distribution and iPhone distribution. A better comparison would be with game consoles, where each manufacturer has a strict list of requirements before they'll give you a distribution key. In that light, Apple's policies are downright liberal.
The difference is you don't have a choice for iPhone distribution. You have to distribute through Apple.
There may not be many parallels between PC/Mac distribution and iPhone distribution-- but there should be.
I'm mostly playing devil's advocate here, because I agree that as long as a device is marketed as a general-purpose computing platform, it needs to be open to succeed in the long term. Still, Apple is under no obligation to distribute anything and everything that people throw at them.
If there had been a streamlined review process, and there should be, it'd need to be automated, running the program through a test to see if private APIs were being used or traces remained in the background, which is stuff Apple should really check about.
no, iphone developers need to take more drastic action to boycott apple's actions than just "telling" the story.
apple needs developers to keep the app store and platform popular and, so far, all of the big developers are singing their tune and continuing to publish new apps and updates, even if they are complaining on their weblogs.
i think if the top iphone developers got together and had the petitioned support of dozens or hundreds of smaller developers, and took some serious action like going to apple headquarters and sitting down with those in charge, they could work to change things.
#1 The biggest developers don't deal with this. You really think EA has to put up with this crap? The Google Voice thing was a highly publicized fiasco, but I'd be willing to bet that sort of treatment of other publicly-traded companies is rare, and even that story probably has much more behind it than we know.
#2. There's so much money to be made that if half the small developers quit, the rest will simply fill the void. It's the same game theory concept that ensures the tuna will be fished into extinction. It would be in everyone's long term best interest to band together and make Apple fix their policies, but in each individual's short term interest to take the money and run.
*Totally did not notice when I said that that the very next article on the list was about the extinction of the Bluefin Tuna. Scary.
that was kind of my point. ea knows very well what other developers are going through, but until they get an app rejected, they're not going to do anything about it. i was suggesting that these top developers stand up and use their pull to convince apple to change on behalf of all iphone developers.
What they are doing is not easy. And the results so far are amazing. There is the odd horror story, but overall it's pretty good, and getting better.
Personally I would prefer an open system. But for a closed system they are doing it pretty well.
So evolving systems can never be broken or bad? And even though the AppStore is not an ecosystem but rather a hierarchical social system, it should be mentioned that the equilibrium state of some ecosystems is death :-)
Considering doing Android ports, but there's not (yet) enough money in it, and the software stack is quite a bit crappier IMHO.
This happened to a product I was working with, as well (albeit with trivial functionality we had no trouble taking out). The logic is extremely silly, indeed.
For every one of these blog posts I see, I wonder how many developers are out there who just gave up in silence.
http://daringfireball.net/2009/11/airfoil_touch_situation
The first is basically just the RA release, but the second is his analysis (or refutation of someone's defense of Apple, more accurately).
Apple couldn't charge for SDK at this stage, and if they did it would have to be something like XNA Creators Club. They could streamline/relax approval process and introduce Seal of quality type of content approval where applications longing for that status would go through a more rigorous process. Kind of like Microsoft has for Windows applications (I forgot the naming for those kind of apps).
However, the bubbles used by the Facebook app are exactly the same as the one in SMS/iChat.
Maybe it passed through the review process by mistake, but you have to wonder…
I think not only do large companies get a much faster and simpler submission process, but I also believe the current landscape of the entire app store has an impact on your submission. If 1000 action games just got submitted and that part of the store is currently saturated, I am positive Apple will hold back any more action game submissions for a while and possibly even reject perfectly valid submissions.
After all, Apple is making money off these apps too, they have a vested interested in maximizing what goes into the store.
They also provide leg-ups by negotiating feature of their applications, etc.
You can blame Apple, but part of the blame also has to go to trademark law, which requires them to do this in order to protect their valuable trademarks. Yes, there are other issues besides trademark issues for which the App Store rejects things, but it's amazing how many stories about this boil down to someone not having read the Apple guidelines, or having read them but not believed them.
Even Android has rules relating to trademarks:
http://www.android.com/branding.html
Edit 2: I've read the RA "refutation" of Lamarche, and it is close to delusional with its implication that a screen shot could not be considered a trademark infringement. The matter is totally open to interpretation, but that is not the point. The important thing is that any company, including Apple, is required to take the strict interpretation if they want to do the best job of protecting their trademarks under the law.
It's silly that Apple accepted it before and refuses the bug-fix release. And RA is right to be mad at them for that. However, for me the "it's a public API on the Mac so we are allowed to use the bitmap returned by that function on the iphone" -argument does not hold.
Images representing standard artwork and icons that you can use in your applications
Drag images you can use in your applications.
Images representing sharing permission icons that you can use in your applications.
http://developer.apple.com/mac/library/documentation/Cocoa/R...
However, NSImageNameComputer, which Rogue Amoeba uses, doesn't have "you can use in your applications":
Images representing Finder items.
Though, it has the following text:
You should use these images to reflect specific elements of the Mac OS X environment. For example, you might use the burnable folder icon if your software allows the user to organize content for burning onto an optical disk. The appearance of images can change between releases. If you use an image for its intended purpose (and not because of how it looks), your code should look correct from release to release.
Does Rogue Amoeba use these images to reflect specific elements of the Mac OS X environment? I guess so.
I would agree they do, but them they don't do it in the Mac OS X environment but using it on the iphone... (Apple managed to create such a seamless integration of the environments that even seasoned developers are getting confused)
It feels very silly to argue about user experience matters like they were laws - but that seems to be where those lawyers are getting us :(
What if they took (or bought) a photograph of an imac etc. by themselves (maybe remove the apple logo as is normally done in stock photography in order not to infringe on trademarks) wouldn't that have been the most customer serving move on RA's part?
This copy is probably unauthorized as regard to copyright.
That being said, I'm not saying that it's right, and the question of VNC clients is relevant as well.
People are releasing updates constantly just to get to the top of the list for new releases. Once you install apps you're constantly bombarded with updates that seemingly change or fix nothing. (because they don't, it's a marketing ploy) There's apparently no way to filter different languages out so I have to hunt through a list of apps with titles in languages. Apps have compatibility problems. The Market is littered with non-sense like "pre-CupCake edition" "Eclair edition" and "DOES NOT WORK WITH insert handset name here" Some apps just crash on startup. Some apps don't support virtual keyboards. I downloaded a random system monitor app that said every possible value like RAM/CPU was NULL. Compatibility is a problem. Some apps install services that cause other apps to work differently. For example I installed some random file manager that caused the photo app to take an extremely long time to startup. Removed it and all was well again.
There's no real easy way to UNINSTALL apps. You have to go to a list that includes everything including system components like com.something.blah.something. The Market doesn't support screenshots? or developers simply don't upload them? App naming is very inconsistent. One app might be AMAZING APP, another might be Amazing App, another might be Amazing App 1.0 Pre-Cupcake. Makes your program list a bit difficult to navigate. Apps can pollute your application list. I have something called UIServer-something or another in my programs list -- when I run it nothing happens. No clue what it is but it sounds important so I don't really want to remove it either.
So yeah... the grass isn't always greener. It's shaping up to be another Mac vs. PC thing where you can probably do more exotic things on the PC (Android in this case) but you pay a price for it with added complexity. The iPhone will offer a more seamless experience but you have to play by Apple's rules.
Android 1.5 = Cupcake
Android 1.6 = Donut
Android 2.0 = Eclair
If this whole back and forth between RA and Apple had taken a week instead of almost 4 months, their response probably would have been very different. They probably wouldn't have left the platform. The process is broken, and it makes things worse for both developers and users.
I mean, a web developer may hate IE, but what would be the outcome if he designs the site as firefox/safari alone. or a software developer for that matter with windows.
If the project is a hobby, sure. anything and everything goes. But what about the business perspective?
It's horrible because the platform views the web as an afterthought, so there are no modern APIs for dealing with it. The Java version is ancient as well, and you have ridiculously small system limitations, like number of open files and such. I could go on, it's so bad it's almost comical.
This is why there isn't a really healthy app ecosystem, only people who are paid enough by their employers to offset the pain develop apps, or people just pay Blackberry itself to develop something for them.
I read a lot of stories like this one and I'm sure I will buy a different phone. People I meet may notice and hopefully I will convince them to look at alternatives too. There is some real influence that comes from geeks and developers - even if it starts small :)
A year ago engineers and corporates around the world made sure they have an iPhone app no matter the expense, and now everyone start to abandon the idea.
However when Apple demands that you explicitly write code in your software to detect if any bits or bytes you push to the iPhone screen originates from Apple somewhere and block that, that is something completely different.
If that is the line they require people to follow, the following is a list of applications I can see requiring rewriting to follow the guidelines: VNC, Web-browsers, picture viewers, feed-readers, audio players displaying artwork. Basically any application displaying anything from any network source, maybe even local sources. Heck, any application displaying any bitmaps at all.
If Apple indeed thinks this is a reasonable line of thought and expect everyone to follow it, they should provide a public API to ease the burdons of the developers. They could make a function like NSContainsAppleTrademarkedComponents and require all applications to use that.
To really make things easier, they could redo some parts of the API, like making a NSShowBitmapAppleOnly function which actually displays a bitmap, and a function available to the general public called NSShowBitmap which automatically invoked and checked via NSContainsAppleTrademarkedComponents.
Somehow I suspect that Apple understands that this is an impossible task, a stupid thing to check for, and that they will in no way be willing to write the code to make this happen, no matter the size of the company and resources they have available.
Yet somehow they expect any small developer to do this.
Apple is definitely the worst control freak out there, restricting absolutely anything they can restrict, and yet people still say Microsoft, with their relatively open and reasonably well documented AIPs (there are horrible exceptions and yes I know), that with all this evidence to the contrary that Microsoft is the bad guys.
I just don't get it. I don't own an Apple computer, just an iPhone, so maybe I lack the essential hardware required for absolute self delusion.
If the way of Apple is the way of the future, I don't want a part of it. When I develop stuff, for a mobile platform or not, you can be sure Apple won't be on the list of supported platforms.