Apple Strangely Crippling Legitimate 3rd Party Apps?

As developers and other interested parties sift through the iPhone SDK, many new details are emerging. While most of these are positive, more recently some troublesome details have come to light. Several iPhoneFAQ readers have written in informing us of some strange limitations Apple is evidently placing on applications developed via the newly released SDK.

These limitations may place significant limitations on the types of software that can be developed for the iPhone using the SDK. These limitations include,

"An Application may write data on a device only to the Application's designated container area, except as otherwise specified by Apple."

"Applications may only use Published APIs in the manner prescribed by Apple and must not use or call any unpublished or private APIs."

"Only one iPhone application can run at a time, and third-party applications never run in the background. This means that when users switch to another application, answer the phone, or check their email, the application they were using quits."

Exactly how Apple interprets their own language and how they plan to enforce these restrictions remains to be seen. Certainly, however, one can imagine the clauses above hampering the efforts of ambitious developers. Applications that wish to interact with what would now be seen as "restricted" files on the iPhone may be unable to accomplish certain tasks. Also, applications such as third party chat and messenger clients may have their functionality crippled by the no-background restriction.

Also potentially troubling is the language "except as otherwise specified by Apple." This has some developers worried that Apple is going to award application privileges subjectively, worrying some that large firms will have the ability to produce more functional applications than smaller outfits.

It is important to note that the SDK has been overwhelmingly well received, by developers and iPhone owners alike. Apple has offered up more to the development community than most anticipated with its beta version of the iPhone SDK. Still, these restrictions have raised concerns with some developers.

Comments

If these seem as black and white as they do, this is bull#!@$.

Why finally open up the iPhone only to sweep the leg out of developers just as they were getting a reason to move away from Installer? NO BACKGROUND? GTFO.

I can think of SO many apps that wouldn't be nearly as useful w/o being able to run in the background.

i'm no developer so i can't be sure i understand what all of this means, but it seems really stupid.

take theming/skinning stuff... does this mean something like Summerboard or Customize would have to reload everytime the phone rang or email was checked?

I don't get it. What does Apple hope to acheive by producing these restrictions?

Is the no background rule geared towards reducing instability?

I may be wrong, the iPhone runs on a battery and conservation of battery life is important and if an application runs in the background wouldn't it be drawing power from the battery.
It is too early to tell what will happen, come June we will find out and if the developers don't like it they can vote with their feet and write apps for RIM.

... and, keep in mind, if the SDK provides appropriate hooks this could eliminate the need for background processes sitting idle. I haven't worked with the SDK (unofficial or official), but I'd love to hear someone weigh in who has.

True that. Things you'd want your phone to do in the background are pretty much limited to network tasks (like checking email), and should rightly be handled by some kind of system API anyway. It's not like these problems haven't been solved already!

Strangely Crippling ... Apps

The only thing "strange" that I see here is such an ill-informed judgement being made.

Any developer can easily imagine reasons why Apple would want to set these restrictions; they are chiefly to ensure that badly-behaving or confused apps cannot easily take down the basic phone.

Get real. Jobs announced months ago that they wanted to open the platform but to keep it secure. It's the nature of devs to want to push the envelope, so Apple will probably grant exceptions to those who are VERY unlikely to abuse it. If this is unfortunate, blame the fact that Apple doesn't yet have a fully-formed security model in place. (BTW: you'll note that NO other OS has a fully robust model either.)

Meanwhile, there's a HUGE range of apps that have exactly zero problem with the terms and tools; most were amazed.

The only reason I think that they'd only allow one app built by the SDK operating at a time is to prevent crashes. I'm pretty sure the phone will still ring while you're running any app. I bet email should also be pushed to you.

On the SDK video, one sales app had new leads pushed to the iphone while his app was in operation, so you should have that functionality.

I own Apple stock and plan to purchase more (I think the SDK will be huge), and I am always reading articles that make me nervous (lawsuits, battery life, etc.) and Apple seems to be able to get past it.

I think the language is probably there to allow Apple control if they need it, but I don't think they will exert it unless it is a threat to the device. If you made software that had a great demand, they'd probably run it through the proper testing (not just the emulator) and allow multitasking...dontcha think?

I am holding my stomach, laughing at the comment/threat that developers will vote with their feet and write apps for RIMM.

Take my advice ... do it. Go ahead - don't just threat, follow through. We don't give a fat rats ass if you boldly go marching off to write apps for RIMM. Do it.

We don't care, the developer community does not care, and I tell you buddy, Apple does not care.

Apple is going to keep control of this entire development environment and do it right, for the first time in history. Cry baby developers whining about every little detail before the process has been finished can carry it.

Good riddance, cry baby.