Thursday, November 12, 2009

Rogue Amoeba

Today, Rogue Amoeba announced they were giving up on iPhone development. It's definitely not a good thing to have a second high-profile developer publicly leave the platform in a little over twenty-four hours. Clearly, Apple has a public relations issue to deal with.

The blog post in which this was announced was, it appears to me, intended to paint out a black-and-white picture. Apple was wrong. Rogue Amoeba was not only right, they were taking the only reasonable course of action available to them.

I'm going to risk the ire of the maddening crowd once more, but I think somebody needs to come to Apple's defense this time. I love a good mob scene as much as the next guy, and I keep my pitchfork nice and sharp just in case the need should arise. But… the picture that Rogue Amoeba has painted in their farewell post doesn't look quite so black and white to me. Certainly, Apple could have handled many things about the situation better, but so could have Rogue Amoeba. Let's strip it down to the basics.
  1. Airfoil Speakers Touch included pictures of Apple products;
  2. These were images owned by Apple;
  3. The iPhone SDK Agreement specifically prohibits the use of images, icons, and logos owned by Apple in iPhone applications;
  4. The first rejection clearly and unambiguously stated why the app was being rejected and how it could be fixed.
There's simply no reasonable argument that Airfoil Speakers Touch didn't violate the SDK agreement, and we're not exactly talking about an obscure clause of that agreement. This is a term that every iPhone developer knows. It is common knowledge among iPhone developers that if you use Apple's images, icons, or logos, you run a strong risk of rejection. The implication of Rogue Amoeba's post seems to be that they should have been given special treatment and been granted an exception for two reasons. First, because Apple allowed the images in the previous version of Airfoil Speakers Touch, and second, because the icons they used are available through public API calls in Mac OS X.

The first argument is silly. It has a certain emotional appeal, but it lacks any substance whatsoever. If you were pulled over for speeding, you wouldn't suggest that the police officer should let you go because you've sped down this same road every day for the last month. That you've never been caught before is no excuse when you finally do get caught. The review process is an imperfect, manual process, and they don't catch every violation every time. You can't seriously expect that they're going to grandfather violations in simply because they failed to catch them previously.

The second argument is that the images were available through public APIs on the Mac. And that's absolutely true, but it's hard to see the relevance. If these images were vended by APIs in the iPhone OS, then it would be a very valid point. But the iPhone is not the Mac. They don't have the same APIs and they don't have the same rules. That something was available on the Mac has absolutely no relevance to whether you can use it in an iPhone application. These images are NOT available in the iPhone SDK using public APIs.

There was a third, implied, argument that Apple should have allowed the application on the store despite the violation because not letting the application on prevented users from receiving an important bug fix. Again, there's a certain emotional appeal to this argument, but it doesn't hold up to scrutiny. Rogue Amoeba knew exactly what the problem with their app was back in July, and they were told exactly what they had to do to get the app through review. The reason that users of the application couldn't get an update for three months was because Rogue Amoeba didn't want to "bend" back then. They felt that they were in the right, despite the fact that their application was in clear violation of the SDK agreement, an agreement whose terms they had accepted. Rogue Amoeba chose to try and force the issue rather than fix the problem. It was essentially the corporate equivalent of throwing a temper tantrum, and Rogue Amoeba wants Apple to take the blame for the consequences of their own actions.

I can certainly sympathize with Rogue Amoeba's frustration and can understand why they're choosing to focus on the Mac. I don't blame them whatsoever for the decision. Working on an unrestricted platform has its benefits and a definite appeal. I'm looking forward to getting back to some Mac development myself once this book is done, not in protest, but just for a change of pace. But, the Mac has disadvantages as well. For one, it's a lot harder to reach potential customers. You don't have 50 million potential customers who are but a few taps away from buying your app at any time. Maybe that doesn't have value to Rogue Amoeba, since they already have a user base and web store infrastructure in place, but it does have value to many developers.

Rogue Amoeba's final, parting shot was to suggest their customers who want Rogue Amoeba to return to developing for the iPhone should contribute to the EFF by sending them to this page.

If refusing to bend was the corporate equivalent of a temper tantrum, then this is the corporate equivalent of running to your mom when someone picks on you. This isn't a freedom issue, and the linked page doesn't present an accurate description of the situation. It says Apple "prevented" Rogue Amoeba from delivering a bug fix "because of trademark concerns". That's not what happened. That's such a one-sided misrepresentation that I would call it only a hair's breadth away from lying. Apple prevented Rogue Amoeba from delivering an application that violated a contractual term that Rogue Amoeba had agreed to. In other words, Rogue Amoeba agreed not to do X, then did X. It then took three months before Rogue Amoeba accepted that they actually couldn't do X. On this page, they also fail to state that the "code provided by Apple expressly for this purpose" happens to be code provided on a completely different platform and not actually on the iPhone OS. The code most certainly is NOT provided so that people can display these images in an iPhone application. The statement is misleading and, again, darn close to being a lie.

Bottom line, this is a contracts issues, not a free speech issue. If Apple had rejected the version with the link to the EFF page, then there might be a free speech issue, but Apple didn't reject that. Rogue Amoeba has valid concerns, but they don't have anything to do with constitutionally protected rights. I don't have a right, for example, to sell products in Wal Mart if Wal Mart doesn't want my products on their shelves. Wal Mart owns their stores and gets to say what goes on the shelves. It's not a violation of my rights that I can't force Wal Mart to sell whatever I want them to sell. Same goes for Apple. If the terms aren't acceptable, you're free to go develop for another platform. But don't suggest that your rights have been trampled on because you don't want to comply with the terms of a contact that you agreed to.