Tuesday, March 11, 2008

Rogue Amoeba

Paul over at Rogue Amoeba has an interesting post on the "Under the Microscope" blog. It's a list of defect reports that people at Rogue Amoeba have filed about limitations with the iPhone SDK that they feel are unreasonable. This is the right way to let Apple know; they do listen, especially if they hear the same thing from a lot of people. So, if you agree with any of his points, make sure you open a defect: There is power in numbers. 

A few of the defects that Paul lists, I happen to agree very passionately with. A few others I really don't have much of an opinion about simply because I just can't seem them impacting my ability to develop the apps I want to develop, or to use the phone the way I want.

There are a few others where, even though I might agree personally, I think that they are just tilting at windmills; AT&T, for example, is not going to allow VOIP applications on EDGE if they have any way of stopping it. And, let's face it, it is their network, like it or not. A VOIP app would let people use their unlimited data minutes instead of their limited pool of voice minutes to make phone calls, meaning nobody would ever bother paying for their more expensive plans. Corporations exist to make money; AT&T is never going to let this one go without a fight.

Now, a few years from now when the iPhone is no longer exclusive to AT&T, and it's a well-established platform with a thriving developer community, that will be the time to try and shrug off these particular shackles, but not now. I'm sure this is not just Apple being arbitrary; I am sure they have specific things in their contact with AT&T that they simply can't do on the iPhone, as well as things that they can't allow others to do.

I'm sure Apple is being cautious also because they are relatively new to the mobile space, and they do not want the bad publicity of being blamed for, say, bringing down AT&T's network with something that they did or allowed to be done. They certainly do not want to see headlines about iPhone viruses hit the wire. In this market, Apple has more naysayers than they do in the computing world, and they have plenty of naysayers in the computing world. 

For my own part, I would love a completely open system, but I understand that the practical realities of the situation just isn't going to allow it now. Just like Apple to agree to use DRM on all tracks on the iTMS at first, I'm sure Apple had to agree to certain distasteful terms with AT&T in order to get their foot in the door in the competitive and highly regulated cellular phone market, and on those turns, developers can yell and stamp their feet as much as they want, but Apple's not going to budge.

Here are, the issues he mentions that I will be opening my own defects for: 

Allow applications to be installed at the user's discretion, not Apples

I'm not really hopeful about this one, but I do agree with it. You pay $400 or more for your iPhone. You own it. You should get to choose what you install on it, without having Apple, Inc. playing Big Brother.  The fact is, the iPhone is already jailbroken so people who want to write malware are not likely going to use the official SDK anyway. As a result, there's really no good reason for maintaining this insane level of control over what third party developers do.

On the other hand, I'm not going to refuse to develop for the iPhone simply because of this.
Allow applications to run in background on iPhone
Oh, yeah. This one really is a make-or-break item in my mind. Without the ability to at least run a small helper daemon. Many of the ideas for killer apps simply can't be done. Several of my ideas hinge on finding SOME way of running code when my application is not open. Apple does this with mail and calender, so there's no technical reason to disallow it and they're setting a very obvious double-standard here. I'm sure they're concerned about what people might do with the ability to run background apps, but since apps have to be approved to go on the iPhone App Store, and the platform was jailbroken months ago, this would seem to be a completely overzealous restriction. 

Allow iPhone applications to access the docking port.

Just like with background processes, Apple does this with a good chunk of their applications, but they won't provide a mechanism for doing it other than doing network communications, requiring a server application running on the host. This one is patently ridiculous as well. We should not have to jump through hoops to communicate with the host computer.

Several of the others he mentions are things that I would like to see, but these three are the ones that will have the most impact on my work. The inability to do background processing is the one that will hurt me the most personally (by far), as most of the ideas I'm working on require at least some ability to do things when my application is not being run.

While I personally would like root access to my iPhone, I don't see it happening, and don't see that most users and most apps need it. VOIP would be cool, but I'm not much of a talker, and doubt I'll even come close to using my 400 minutes of talk time most months, so having a free way to spend more than 400 minutes a month talking on my phone is not really a big draw for me.

No comments: