The iPhone SDK

I am a bit bothered by the iPhone SDK’s terms. It is still not as open as it should be, and this says a lot about the way Apple does business. More specifically, the terms disallow:

– Background applications: say goodbye to services, VoIP or a multi-IM application running on the background. They can only run when you have them loaded full screen.
– Interpreters: Say goodbye to J2ME, Python and what not. Sun said that they want to port J2ME to the iPhone, but I wonder, did they actually read the terms of service, or are they betting on buying Steve Jobs lunch and getting away with it?
– Data sharing: While copy/paste might get handled by the system in the future, you are not allowed to include spreadsheet data on a word processor app. It feels like J2ME all over again. Yuk.
– Plugins: say goodbye to, well, all kinds of plugins and extensions. Including a port of Gnash, as our beloved Jesus Jobs doesn’t feel that Flash is appropriate for the iPhone.
– High-bandwidth applications: I wonder, will they limit their iTunes app too? What if Napster builds a music store client too? Will they allow it?
– Too many of the same app: so what if the 4th Sudoku app is better than the first 3 already on the App Store? Will Apple disallow it just because there are too many of them? What about the time and money the developers put into it, who might have actually started working before the first 3 such apps, but were late because they wanted to make it a BETTER app? Bad luck? Well, it’s not bad luck for the devs only, but for the consumers too, who are stuck with 3 inferior apps.

Ok, Apple feels that needs to protect users. But instead of building an operating system that is made for this job (e.g. making sure that no app can crash another app, or steal data), they limit their own market. This is a lot like leaving the door of your house unlocked, but hiring a bouncer to keep the unwanted out.

On the other hand, from the customer’s point of view, they offer a clean solution. But it’s only as clean as iMovie is. Users that heavily do video, usually use iMovie for a while, but soon enough they hit the wall. They need more features. And they move to Final Cut Express or Pro, or After Effects. But there is no such upgrade path for the iPhone. You are stuck with an iMovie-limited software market. Hopefully, Apple will eventually see the light, or users will have to jailbreak the iPhone again and use a third party App Store.


Nita wrote on March 9th, 2008 at 3:11 AM PST:

I think those conditions actually suck very very much. I have a Nokia 6630 (yes, it is old, but then again it works just fine) and I have used several kinds of IM apps on it, all of them running in the background. This allows me to do other stuff while still being available for contact. So I just find the clause Apple has about background apps totally and utterly stupid. iPhone may be a good phone, but Apple is limiting it’s use in so many ways that I wouldn’t use it even if I got it for free.

Nikita wrote on March 9th, 2008 at 3:28 AM PST:

Well, that’s pretty much what would happen anyway – if too many people keep jailbreaking their phones because that would get them better functionality (in terms of running services for example) sooner or later Apple will integrate that into the SDK. I don’t think anyone should be overy concerned over that.


Adam S wrote on March 9th, 2008 at 8:02 AM PST:

The SDK does not have these limitations, the terms of service do. If you had done your research, you’d see that the call that terminates applications can be overridden. Your problem is not with the SDK tech specs, it’s with the terms and conditions that come with distributing apps.

Also, I’m not sure you are really thinking about what you’re asking for.

Making sure no app can crash another app
Can your iPhone do this? Apps don’t crash each other, there is a system by which they shut down running apps. cleanly. Such as when you receive a phone call while you’re going other things.

making sure that no app can […] steal data
How do you propose to do this? If I give you access to the contacts db and the internet, that’s a recipe for disaster on ANY phone. How does one build a complete protection against this? It’s either lockdown or introduce risk. At some point, users have to have some responsibility.

I’m not defending Apple here, but if you’re going to attack them, at least understand the problem entirely. The iPhone has redefined mobile phone usability, and with that comes rules and guidelines. But certain things can’t be eliminated without the platform suffering, and they ought to be addressed more quickly.

This is the admin speaking...
Eugenia wrote on March 9th, 2008 at 9:02 AM PST:

>the terms of service do

Are you blind? This is what I say too (“the terms disallow..”). But no matter if the SDK let you build such apps, doesn’t mean that your app is going to get approved because of these terms.

>Can your iPhone do this?

Yes, apps can do this right now. The only real security the iPhone has is user support, but nothing like it.

>How do you propose to do this?

By being very careful in the design of the OS, maybe even put apps on their own runtime. You separate the apps. And you don’t tell apps use the “kill” command, for example. There are tricks to do this.

Maybe I should let you visit another mobile OS to see such features implemented, but I better not mention it here.

Allan wrote on March 9th, 2008 at 9:01 PM PST:

How do you think the absence of Flash affects adoption by the developer community?

This is the admin speaking...
Eugenia wrote on March 9th, 2008 at 9:26 PM PST:

I don’t think affects ObJC developers, it mostly affects users and Flash content developers.

David H Dennis wrote on March 14th, 2008 at 9:02 AM PST:

Can you tell me where the terms disallow “too many of the same app”?

I’m sure a lot of people will be affected by that one, and I don’t remember hearing about it elsewhere, or reading it in the SDK terms (which I just read pretty much word for word).

Certainly it’s common sense that Apple would not want to release 500 apps that do the same thing, but I’d like to see the specific clause you’re referring to.


David Shellabarger wrote on March 14th, 2008 at 10:54 AM PST:

@Adam S
Eugenia is right. Android solves all of these problems.

I’m developing an app for Android, and thinking about developing the same app for iPhone. However, the iPhone will limit what I want to do (run a background service).

And come on. No cut and paste for the iPhone! I mean seriously…

This is the admin speaking...
Eugenia wrote on March 14th, 2008 at 2:26 PM PST:

David, I don’t have a specific clause, just the overall idea of how Apple does business. And it won’t take 500 same apps to get a stop on your face, just 2 or 3 will be enough. I expect nothing less of Apple at this point. They control the whole thing and they said so clearly.

Lefty wrote on March 17th, 2008 at 6:54 AM PST:

Android’s not really much better than the iPhone: you can only program in Java (and a version that’s outside the Java Community Process), the security is completely left up to the user (another recipe for disaster), and Google’s continuing description of Android as “open source” is a fabrication.

Google won’t allow access to the Android sources before phones ship–most likely, not before 2009–and once they do, I expect to see a thousand forks bloom in short order…

Comments are closed as this blog post is now archived.

Lines, paragraphs break automatically. HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

The URI to TrackBack this blog entry is this. And here is the RSS 2.0 for comments on this post.