iPhone's Development Limitations Could Hurt It In the Long Run
ZDOne writes "Apple might have finally come around to allowing third party developers to create applications for the iPhone, but only up to a point. ZDNet UK claims Apple is leaving itself vulnerable to the competition and to a loss of lustre
by blocking background tasks on the device. The author notes, 'Perhaps it doesn't trust application designers or users very much. Perhaps it wants the best software for itself, where it can limit what it can do in order not to upset its telco friends. Whatever the reason, it reflects badly on Apple. The iPhone is not an iPod; it's a smartphone connecting to a universe of fast-changing data on behalf of innovation-hungry users. The sooner it stops pretending to be a 1981 IBM PC, the better it will be for everyone.'"
Time for a BadApple tag on /. ? ;)
--I thought I was wrong once, but I was mistaken.
There's no monopoly here, so we should let the market decide. If you don't like it, don't buy it. If they've really got things wrong, the market will kick Apple where it hurts. If consumers don't care about background apps, they'll carry on spending.
Me? The beautiful shiny toy is so compromised that I wouldn't touch it with a bargepole.
developer.sonyericsson.com would be a good start, which is linked directly on the front page of www.sonyericsson.com, so you can't have looked very hard in your rush to defend the iPhone.
A) Apple
B) iPhones
Even if they didn't, the device itself could pack more than enough Cocoa Touch enabled power-apps that will not depend on this function to stay ahead of the competition for a long time. I'm personalty waiting for iWork Touch, which it would greatly surprise me if didn't show up by the end of the year.
A bit unrealted: how brilliant of Apple to sneak in a PDA through it's iPod market. For most consumers, it's easier to buy an iPod with PDA features, than a PDA which can play a bit of music. This will be Apple's next step in the digital lifestyle philosophy. You can no longer only carry around your music and photos, but also your docs and planner.
Look over there! It's a bird! It's a plane! No, it's a reality distortion field!
Knowledge is power. Knowledge shared is power lost.
The phone network necessarily has standards of reliability and security far higher than the Intarweb.
Banning uncertified code? Banning background processes?
That sounds pretty damned prudent to me.
The last damned thing I want to see on the phone network is an iPhone worm getting it's hooks into the core of every iPhone in the default settings, PHONE SPAMMING half the planet, and generally turning the phone network into the same power-hungry firewalled, bloaty security nightmare that the Internet is.
I may hate the way Apple does OS X, but when it comes to the iPhone, if they can keep worms off the phone network and prevent background crapware that will drop my battery life down to 12 hours, I say good on them.
We love Apple hardware, but hate Apple business practices. There are many reasons for fanboydom, but limiting the abilities of a phone you've paid out the ass for is not one of them. It really doesn't help that their "security" measures for the iPhone were utter crap that was broken ~1 week after it hit stores, and yet Apple still acts like it is a completely closed business model.
Just -1, Troll talking to another.
Microsoft. It's easy to create a program for Windows Mobile without Visual Studio, and stupidly easy with it.
Everybody. The iPhone is the only modern phone I can think of that doesn't support J2ME, and most smartphones (Symbian, Blackberry) have their own APIs for creating native apps.
Admittedly, most J2ME-only phones don't support multitasking and, like the iPhone, are incapable of running in the background, so TFA is wrong to say that "That's a limitation nobody's had to contend with for a couple of decades". But this isn't the case for most smartphones. This is a restriction that I can see being restricted relatively soon, once developers start to realise just how limiting this restriction is.
You can run unsigned apps on s60v3.
Unsigned apps can access the network (see for example putty), play run stuff on the screen (see for example quake, dooom), run in the background, read & write files and so on.
I can't seem to find this famous list of things an unsigned app can't do.
Watch this Heartland Institute video
Dude, my jailbroken iphone runs background processes on third party software right now. I can run a good number of programs before the thing slows down. Programmers are pretty good at satisfying space constraints.
I'd say 128mb would still run, for the average user, about about 16 spyware apps, 3 trojans, 2 worms, 4 backdoors, 5 adware apps, at least one SMS spambot, oh, and don't forget the LOLcat screensaver.
Among the mobile phone makers, who hands out SDKs for creating applications on the phones?
...), Palm OS (Palm), etc. Symbian is a multitasking OS with Linux-like APIs. And almost all modern phones other than the iPhone can be programmed in MIDP.
Almost every manufacturer, actually: there are SDKs for Symbian (Nokia, Motorola, Samsung), Windows Mobile (Motorola, Samsung, HTC,
I wouldn't even know where to start if I wanted to develop an application for my Sony Ericsson W910,
The W910 runs J2ME and MIPD, just like most phones these days. There are thousands of applications for that and it's easy to develop for.
call me clueless but I don't see anything comparable to the iPhone SDK for any other phone.
Yup, you're clueless. In terms of SDK, the iPhone is about the worst there is among modern phone platforms.
Symbian 3rd edition, hava also limitations to developers, for certain type of capabilities the program must be signed by nokia. And there is a license 10.000$ for developers
That's pure fiction. I have half a dozen unsigned apps on my phone, several of them free and open source.
1. It's not an "evil apple" story, it's just a financial musing that in the long run it might limit its market share.
But it's this kind of fanboyish reactions ("OMG, they said that something Apple does is less then perfect, so they must be evil, sworn enemies of Apple and all that's good and holy") that brings me to the next point. In truth, such stories are written equally about any other company and corporation, by people who don't really give a fuck about whether that company even lives or dies. That's the job of financial analysts and magazine pundits. They scratch their heads and go, "Hmm, ya know, maybe Sun won't take over the world this year" or "I think Intel is going to lose a couple of percent of market share to AMD's Phenom". Talking out of the arse, maybe, but it doesn't make them enemies of Sun, Intel or Apple. But that seems to be lost on a whole slew of True Believers, who can't seem to see any shades between "you're 100% in Apple's camp and singing praise to it" and "you're 100% the sworn enemy of Apple and have an axe to grind." And if god forbid you even mention an apple vulnerability once a year, then that's positive proof that you're biased against Apple and pro-MS.
But, at any rate, it helps fuel the next point:
2. It's, if you will, a case of action and reaction. Apple hypes every fart as if it's the second cumming of Christ, especially if it's Steve Jobs. You know, it will revolutionize this, redefine that, it's the thing that noone else ever thought or dared, etc.
And it also has an annoying army of fanboys to carry the Word, and try to convert everyone to The One True Faith. Not even too skillfully, I'd add. If you look at where, Christian missionaries succeeded, they never went around telling people "OMG, you're all stupid sheep and brainwashed by the competition". It doesn't get people in a mood to listen, you know.
So it just _begs_ to have its stuff put under a microscope and dissected, and the results don't always come as "yep, it's 100% pure perfection." In fact, they usually reveal a fair share of shortcomings that just beg to be pointed out in return.
3. And if you keep pushing, or push too hard, hype builds resentment or even a backlash. Daikatana, for example, was merely a mediocre game, that would have otherwise been quietly forgotten, but the unskilled hype created a rather spectacular backlash. Apple so far managed to avoid creating a backlash, and kudos to Steve for managing to spew this much hype without that. He's good. But it did get a bunch of people annoyed.
You know, it's like if I came to you daily to tell you about how great I am at CounterStrike. (I actually had the mis-fortune of working with someone like that.) And maybe sent a few more people to. What maybe started as "I couldn't care less, let's nod politely and hope he goes away" eventually gets to the point of "Oh, ffs, not again. Go fuck yourself with a cactus already."
Briefly, if you will, the few people who do hate Apple, don't hate it for its perfection, they hate for the unrelenting annoyance that Apple's hype and Apple's fanboys can be.
A polar bear is a cartesian bear after a coordinate transform.
Everyone is quick to point out the 'limitations' imposed by Apple on developers, but I haven't heard anyone pointing out what a rich API is available through the SDK. Why not? Probably because that sort of news doesn't generate enough traffic.
Personally, I have downloaded the SDK. I have an iPhone that I use for business (and fun!) purposes, and I can think of a couple of applications that I would like to see developed, and as an Objective-C/Cocoa developer, I am in good stead to do so. I was amazed at both the quality and quantity of the features available on the iPhone through the SDK, and how simple and straightforward the development process was. As a veteran WinCE developer (and I did wince, lots) I know how not to go about development for resource limited devices, and I can only say that the whole experience so far has been very rewarding.
Thinking about the 'limitations', I can only say that the iPhone is not a desktop computer. It is not tethered to the wall by a power cord, and as a user, I really do put battery life over and above some background task that may or may not add to the quality of my use. I think Apple is right to be concerned about the type and quality of applications installed on these devices, because they care about the user experience.
Any fool can talk, but it takes a wise man to listen.
Banning uncertified code? Banning background processes? That sounds pretty damned prudent to me.
Smart phones have had background processes and uncertified code for many years, and there have been almost no problems with it in practice. Half of Nokia's phone lineup are fully programmable, multi-tasking machines, capable of running ssh, BitTorrent, Python, VNC client and server, Apache web server, and anything else you can think of. There's even software for turning Symbian phones into WiFi access points for sharing the 3G connection.
Anybody who claims that one needs to ban uncertified code and background processes to avert disaster simply doesn't know the mobile phone business... or is lying through their teeth.
Does anyone run SSH on their iPhone? I do. It kills the battery life. Takes it down to 1/4 what it usually is. People at work complaining about battery life of their phone? They remove some nifty-new application that they just added, all of a sudden the battery life goes back to normal. Amazing. Heck, it's so common that the first words out of my mouth are, "Turn off the SSH server."
The iPhone goes into deep sleep at the drop of a hat to extend battery life. Polling connections, doing anything in the background will keep the CPU from throttling down.
From the customer's and Apple's point of views, this is a bad thing. Mostly because Apple will take the heat for the misbehaving application. For more evidence of this, check out the other slashdot story about the number of crashes caused by NVIDIA. Did NVIDIA catch the heat? No, Microsoft did.
It's a reasonable limitation until they come up with an application that the user can ask,
"Hey, my battery life sucks, where is it all going?"
and the application will say,
"The SSH server".
Symbian 3rd edition (v 9.x) is not capable of running unsigned native application. Period. ,WriteUserData). User can allow application which use only those capabilities to run on his device.
The rest - Network control, Multimedia driver, Communication driver, disk admi, PowerMgmt, Location, ProtServ, ReadDeviceData, Surroundings driver, SwEvent, TrustedUI, WriteDeviceData - should be signed online through Symbian website or offline by other certified body.
Some application, restricted in functionality could be signed by developer without developer certificate(LocalServices, UserEnvironment, NetworkServices,ReadUserData
The situation is quite heated right now, after Symbian introduced some more restrictions recently (removed free developer certificates, which allow sign application for single phone - IMEI numebr). Symbian signed forum turning to flamefeast between moderator interventions. http://developer.symbian.com/forum/forum.jspa?forumID=2&start=0
Of cause all this only from legal point of view. Many devices (all FP1 and Nokia N95-1, not 8GB) have their platform security hacked already.
IMHO, the truth of this lies somewhere between the two camps. Background processes have a lot of problems on phones. They stop the phone being a simple "pick up and use" device, because the user has to worry about which apps they leave running. Somebody using a phone doesn't want to have to think about memory usage, they're probably barely aware of what RAM even is. They affect reliability, performance and battery life.
Almost all apps on PalmOS run in the same way - they save state and exit when you switch to another app. By optimising application startup speed, they give the illusion of multi-tasking. Anyone who's used a Symbian UIQ phone knows how slow application startup is on a lot of smartphones. IIRC, there are some phones that allow background tasks until you start the web browser, at which point all other non-system tasks are killed to save memory.
That said, multi-tasking has some very important uses - background polling for messages etc. The solution is probably a system framework with which applications can register small helper programs to perform specific tasks. The framework can then ensure they don't use too much CPU or RAM and optimise their network access to reduce the amount of time the radio is on.
Background tasks, especially networking ones (which frankly, are the most useful type), would flatten the battery really quickly. Even more so with several of them waking up at different times and connecting the network.
On the other hand, making the rule hard and fast is a bit tough. And Apple could provide some means of minimizing drain (waking every task up every few hours for example), but don't damn Apple totally on this one.
Who modded this insightful?
1)- the iphone sdk DOES NOT ban background processes. it disables them by default, but people have been compiling iphone apps that run in the background for months. it's actually ridiculously easy; this is how im apps let you stay signed on while your iphone is off (or you're talking on it).
2)- the official iphone os may ban uncertified code, but people have been running uncertified code on iphones for months. since the number of "hacked" iphones is almost as great as the number of "boring" iphones, this is rather significant.
i'm not a fanboy- personally, i don't like iphones, or people who like iphones. i just don't like misinformation.
First off, you can force something to run in the background, but you shouldn't. The limitation on background processes has nothing to do with control over developers and everything to do with battery life. A simple XML query once every 5 minutes is enough to drain the battery in just 4 hours.
In a mobile device, everything you do drains the battery. Remember also that most of the time the user is not looking at the screen and often has the device muted. Consequently, is there really a need for an application to pop up dialogs or sound alarms that will go unnoticed? Similarly, does it really have to do gather data constantly and not, say, during a sync or when the app is actually run by the user? Apple weighed those slim probabilities against the much larger probability that poorly written apps would needlessly waste battery power and put a sensible limitation on developers in order to protect users.
One last point: users don't know which app is draining all of their battery power. Once apps become available, users may well install several all at once. If their battery life suddenly went to hell, it would be a difficult process of trial and error to figure out which app(s) was/were the culprit(s).
I have an iPod touch. I bought one within a week of its being available. I got the 16G one. It was $400.
Apple locked me out of linux with it -- it won't sync on my computer. I can't add 3rd party apps. And now when I sync it, I keep seeing ads for a $20 upgrade they want to sell me. Whenever I see people who have a touch, I ask them -- and we all feel the same way. We're all kind of offended by that nickel and dime $20 pitch.
It's a beautiful device. As an object, it's pretty much the best gadget I've ever owned. But apple is really making it suck for me, to the point where I don't think I'd buy another iPod.
And it's dumb. They're not going to sell me that $20 upgrade, and not only that, but by pushing it, they're going to lose the next $400 iPod sale. And I can't use the thing if it won't sync on linux. I can't sync my podcasts. I carry my old iPod with me, and leave the touch at home. Seriously.
And again, this is pretty much the coolest object I've ever owned. They've started out with that, and made it crummy and negative.
For nothing.
http://daringfireball.net/2008/03/one_app_at_a_time
It's a really good write up. I love how people instantly try to vilify apple for it's decision, not to allow third party background apps when a majority of Apples own apps for the iPhone do not use background processing. Perhaps simply it's a resources issue. Battery is the resource that everyone thinks of first, but like any small computer system the iPhone has limited CPU and RAM, push those and you are going to kill the battery even faster.
Moderating to further my personal world domination agenda... and to get chicks.
Better yet, if they actually read the T&C's they'll see that you can still run background apps, it's just not advised. Otherwise applications like AIM won't be able to run.
Do you think that Joe sixpack will understand the intracacies of a background app's polling of the transceiver and thus its drain on power? No, he'll blame Apple for his iPhone "not working long."
Not everyone is as smart as you claim to be. If you want to lord your intelligence over everyone, go get a blackberry or something.
Two things: first, the human interface guidelines (HIG) stipulation that a process not background itself is perfectly reasonable. The phone form-factor has limited battery, memory, and processor resources. It wouldn't take much to make resource contention an issue or to torpedo battery-life and phone performance. This isn't a laptop with a big battery, multi-gigabytes of RAM, and a 3GHz dual-core CPU.
It should also be noted that while the HIG asks you not to make your app run in the background, neither the phone nor the SDK enforce it. You can, in fact, do it.
If you want to sell your app through Apple's service, you probably need to communicate to them that there's a good reason for it (for example, implementing hands-free voice-dialing might require it). Apple reserves the right to not carry applications that don't meet the HIG, but there's no reason to think that they won't make exceptions when a reasonable request is made to do so. Certainly, a good hands-free voice-dialing app would be a good candidate for such a thing.
See lowendmac and (for instance) wikipedia
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
The
Battery life sucks for any smartphone, not just WinMo though. I charge my phone every night, otherwise it lasts maybe 36 hours through regular use. A bit more if I turn off data to disable the 3 email accounts, weather info, web browsing, etc, that I do normally. But if you are actually using any programs on it, that battery is toast with all that junk open (Windows Media Player? Is it actually playing music? Why leave it open?). This is like the file copy troll all over again. Why leave programs open? Is that a serious question? If it's loaded into RAM then I don't have to wait for it to load from ROM. Reading from RAM is faster than reading from flash memory, in case you were wondering. To answer your question though, no, it isn't playing songs 24/7. However, I can just do a start - WMP and hit play to start playing any random song I've got on there. Same with every other app I've got open. I can either wait for Live Search to load to view a map, or see the map instantly. This is like the file copy troll all over again. Are you sure it's not you who is the troll? I'm sitting here using the device, and posting my experience from using it. You are posting feedback based on stuff you've heard from clients. Anecdotal, sure, but head over to XDA-Developers some time and ask them about using it. Feel free to message me when you get there, I'm under the same username.