The iPhone SDK will not allow 3rd party apps to multitask or run background services. We've previously covered both initial developer Twitter-rage at this, and pundit counter-points. We've also covered Craig Hockenberry before -- the man who (perhaps poetically) develops Twitterrific for the Mac and jailbroken iPhones, and is now bringing it to the SDK.
Hockenberry, via his furbo.org blog, shares his experience on iPhone development and his views on the multitasking (non-?) issue.
To be blunt, I’ve never seen so many experts without a fricken’ clue. If you haven’t written code using the jailbreak tool chain, your opinions on the iPhone SDK, based entirely on what you see in a simulator, just aren’t relevant. You might as well be explaining the nuances of brain surgery.
Wha-wha-wha-what? Please, allow Mr. Hockenberry to continue:
Twitterrific on the iPhone could definitely make use of a background process to gather new tweets. In fact, a prototype version of the software did just that. And it was a huge design failure: after doing XML queries every 5 minutes, the phone’s battery was almost dead after 4 hours. In fact, the first thing I said after giving Gruber this test version was “don’t use auto-refresh.”
Hockenberry goes on to discuss the power demand problem of the radios, both EDGE and Wi-Fi, and the danger of even well-intentioned developers getting individually reasonable but collectively overwhelming access to background services. He does, however, expect that in a future release Apple may include some method of notifying network apps that the radios are being used (for example, by MobileMail Touch), and allowing brief TCP/IP connections during that period. Bottom-line, at the OS's discretion, not the individual apps'.
Sound reasonable? Sound crazy? Should Apple give unfettered access to everyone immediately an trust users to sort through it themselves? Or should Apple be as strict as possible from the get-go? What do you think?