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.
When you realize with the new cracked firmware, you can already run any code you wish.
If you outlaw _________, only the criminals will have _________.
Just -1, Troll talking to another.
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.
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.
how about the developer site of sony ericsson:
http://developer.sonyericsson.com/site/global/products/phonegallery/w910/p_w910.jsp
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.
How do they figure? I know when I'm running Apollo (AIM client) on my iPod Touch and switch over to Safari to browse, I'll get pop-ups from Apollo when people IM me. Not being a programmer, I gotta ask, doesn't that make Apollo (and it's appropriate daemon) a background task while I'm in Safari? Same thing with having music playing, with Apollo running, while using Safari. Seems to multitask alright to me. Not as friendly as true OS X but not bad for a device that weighs as little as my shoes at 4.2 ounces.
bad comparison. because the IBM PC did soooo badly - look what I am typing this on.
then again.. the clones did well, they reverse engineered the BIOS, the all ran DOS and IBM did not get that much of the profit - so perhaps there is a long term message for Apple here about short term versus long term gains. they have everything in place here to be the proud owners of a new standard in interface, layout, design and overall system - if only they would relax their grip to allow a few systems^h^h^h^h^h^h^h^h grains of sand out.
Microsoft. It's easy to create a program for Windows Mobile without Visual Studio, and stupidly easy with it.
That's the worst analogy in history. The IBM PC was exceptionally OPEN. You got schematics of the entire computer, all parts were publicly available, and even source of the BIOS was printed in the manual shipped with the computer. Furthermore, everybody could create and run programs on the computer (very new in IBM-land at the time). That's not very closed in my book.
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.
Suspension isn't really backgrounding, it's just saving the state of the program while you're off doing something else (i.e. making a call). If the iPhone doesn't support some sort of suspension (and I'd be very surprised), I guess programmers will have to be aware that they should save the program's state when they receive a kill signal from the OS.
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.
from what i understand, it does.
still, right now my non-smart sonyericsson Z710 can have j2me stuff running in the background. i can have a im client (ebuddy) running while doing other stuff.
the funny thing is that the only app that cant be backgrounded on that phone is the built in browser. the built in mail can, but not the browser for some odd reason...
comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
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.
Your "How Signing Certificates Work" article is incorrect. It claims the Apple program is the cheapest available program at $99. However, this ignores that the total start up cost to develop for Windows Mobile is $0, $99 cheaper than Apple's developer program, clearly making the Microsoft platform the cheapest to develop for. (It should also be noted that unlike with the iPhone platform, you are not forced into distributing via Microsoft simply by virtue of developing a Windows Mobile application too)
For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
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.
Are you serious?
The ONLY language that runs on over 80% of the smart phones out there now and Apple doesn't support it. In fact they go out of their way to stop it. A language, that by most parts is one of the top programming languages used.
So, I as a programmer of Java and owner of one Iphone am expected to want to learn a new language; one that is proprietary to Apple just to have the privilege of running my application one one phone vendor.
I like the Iphone, and will use it, but to be honest the next phone I buy for myself (Iphone was for a family member), will probably not be an Iphone, but an Android (Google) phone. I own almost exclusive Apple equipment otherwise and would LOVE to jump in and start working with Java on the Iphone, but as it is now.... It isn't going to happen.
It is my "hope" that Apple gets a clue and allows Java to run on the Iphone. Even our business who makes software for phones (not my specific area) has said that they will NOT work on an Iphone port. Yet if the Iphone supported Java then someone like me who actually kind of likes Apple (company hates Apple), could have a shot of getting the code running (if it was written in Java), then show our company that it runs without any major issues. Lastly the company could then support the phone, but as it sits now, well... Apple better garner 80% of the entire smart phone market, and that isn't going to happen and even if they somehow managed to do that our company, like many others probably won't support it.
As for your write once, test and certify everywhere comment.... you need to go back to 1995. Thanks to Microsoft no longer supporting a JVM, and the certification process growing over 1,000 times more complex, those days are behind us. It isn't perfect but it is by far and above the best portable code out there.
I would even understand "if" Apple said there can be a JVM but they won't allow Applets AND they would still need to certify every application. I have to believe that the only thing holding Java back on the Iphone is Steve Jobs hate rid of anything that he is not in control of.
Will I learn Objective C? Why? I would rather focus on Scala or one of the other more interesting languages than one that runs on a very small amount of the worlds systems. In my case I plan on learning Scala next and also far more Javascript/Ajax.
The more I learn about science, the more my faith in God increases.
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.
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.
Off topic, but, heh, yeah, I know that feeling all too well. I'm not Ethan, but same idea.
Actually this guy was worse, if that's even possible. At least Ethan's coworker seems to have more than a CS story. Mine had exactly one.
Every day he'd play on the same map. No idea why, maybe he just got his best scores there or something. Every day he'd sneak behind the same warehouse, climb on the same ladder, drop through the same vent, crawl through the same pipe, drop in the same room, and shoot the guy camping in the corner. (CS fans probably recognize the map by now.) And then relate that in detail the next day. Every bloody day.
What started as "hmm, really? pretty clever that", ended up a case where my brain wanted to crawl out an ear and run for the hills. I can't even put into words how boring it can be to hear the exact same story, in the exact same sequence, the two hundredth time, over several months. But what really makes me cringe is the thought that he was actually enacting that repetition several dozen times a day, each day.
Actually, that's a lie: there was a second story, that of how he defended on that map.
I actually watched him do that once after hours. (Ok, so sometimes I'm too stupid to say "no.") So he quickly buys a gun and run in front of a vent some 6 ft above the ground, and starts jumping up and down in front of it. After about a minute, some enemy drops from the vent on the roof into that duct, my co-worker shoots him. Reloads and keeps hopping there in place, like a kangaroo. Next round, the same thing. Next round, the same thing. Ad infinitum, almost literally.
Two whole hours, he jumped up and down in front of a square grate. That's it.
*hop* *hop* *hop* *hop* *hop* *hop* *hop* *hop*
*hop* *hop* *hop* *hop* *hop* *hop* *hop* *hop* *BANG!*
*hop* *hop* *hop* *hop* *hop* *hop* *hop* *hop*
*hop* *hop* *hop* *hop* *hop* *hop* *hop* *hop*
[...]
*hop* *hop* *hop* *hop* *hop* *hop* *hop* *hop*
*hop* *hop* *hop* *hop* *hop* *hop* *hop* *hop* *BANG!*
*hop* *hop* *hop* *hop* *hop* *hop* *hop* *hop*
I actually stood there and watched it for two hours, mostly out of sheer morbid curiosity. It was so monotonous and mind-numbing, that I was starting to fear I'm losing neurons just watching it. But, you know, I couldn't believe that someone would actually keep doing it. I expected him to go "ah, fuck it, let's do something else" any moment now. No. Round after round he bought his gun and ammo, ran to that vent, and hopped like a deranged kangaroo in place in front of it.
The only thing I can compare it, is that Charly Chaplin movie where he's at an assembly line and twists two screws every couple of seconds.
I won't even try to speculate about what kind of mind would find that entertaining to do, for several hours a day, every day, for months.
A polar bear is a cartesian bear after a coordinate transform.
I don't think Apple is desperately trying to shovel all the existing Java ME crap into the iPhone.
While MS might have killed off Java on the desktop, J2ME's inability to work well across phones is not something Sun can blame on MS.
If you know anything about the Cocoa Touch dev system, a JVM simply makes no sense on the iPhone.
You'd learn Obj-C if you had salable ideas for apps on the iPhone, and/or wanted to target development for the Mac platform, which is doing fairly well. Saying you want to learn Scala helps frame the rest of your comments.
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.
These things aren't artificial and they aren't done (just) to get fractionally more money out of you. The fact of the matter is telcos don't want you running VoIP etc. on the packet network because the mobile packet networks are not built to handle it. This is their own fault(s) for not having more capacity, but they built their networks with X amount of channelized voice capacity and Y amount of packetized IP capacity based on customer usage. If everyone used VoIP, it would saturate the mobile data networks (at both the BTS and backhaul link levels) and reduce performance to unacceptable levels. Costs would go up to add more capacity on the packet side and you guessed it, that cost would be passed on to you - making voice not such a great deal compared to circuit-switched voice! I believe the long-term path for most carriers (at least in the US) is to make their 4G networks all IP-based with packetized voice, but until that's here (a few years yet at least), circuit switched voice is still the preference for a variety of reasons.
Also, just curious - in what way are circuit-switched voice and SMS on the Public Switched Telephone Network "obsolete?" My understanding is that word means something that cannot perform essential functions due to lack of essential functionality or interoperability, and literally hundreds of millions of people use these technologies daily just fine. Maybe you meant "more expensive than alternatives" rather than "obsolete?"
"95% of all Slashdot