The iPhone needs a big red X like Windows Mobile, errr, better I mean
My buddy Dwight Silverman of the Houston Chronicle picked up a shiny iPhone 3G and he’s been playing in the App Store like a million other iPhoneros. He’s overall pretty impressed but he points out something that most of us who’ve been using the iPhone have noticed. Dwight has done a good job describing what a lot of us have seen, that the App Store is a great resource for programs for the iPhone but that you might be installing them at your own peril.
I too have noticed that once you start installing apps and playing around with them that the iPhone gets a lot more unstable than it was out of the box. It’s not uncommon to fire up a new app and have the phone kick you right out of it back to the home screen. I’ve even had the phone reboot itself a couple of times. Read Dwight’s analysis for a good description of this. Dwight mentions that some of the new apps in the App Store may not be quite ready for prime time and that may be what is causing the problems. I think Dwight is right about that but I also think there’s another thing at play here.
From what I can gather using the iPhone it appears that the memory model is similar to that of Windows Mobile. We’ve long groused at Microsoft that when you click the red X to close a program in Windows Mobile that the app doesn’t in fact close, it just goes into the background. While I’m no expert on the iPhone my observations is it appears to be working the same way. When you hit the home button to leave a program it looks like the program is still taking up memory even when it’s closed. I’ve seen the iPhone get unstable like described without even running an app from the App Store. Try opening up several tabs in Safari with a few of them containing web pages with a lot of data and you’ll almost certainly get kicked out of the program. This tells me that what we’re seeing is that the iPhone gets unstable when it starts running out of memory, and it’s pretty recreatable a situation. So maybe it’s not the apps from the App Store so much as the way the iPhone handles memory. If that’s the case then it would behoove Apple to make sure that big programs actually close when you leave them and not just pause.
Related research and analysis from GigaOM Pro:
Subscriber content. Sign up for a free trial.

Just so you know, I have posted this same issue on the Apple Support Forum.
What you should be doing is hold down the “home” button for approximately 6 seconds and the application will close completely. In addition, the applications should close after 5 minute per SDK rules for applications submitted to Apple Store.
Just a tip.
I’ve been experiencing and thinking about these same issues as well, but I worry that the actual explanation is a bit more troubling.
Apple says that apps aren’t allowed to run in the bkg, right? When you hit the Home button, you’re actually quitting the app, which I figure *should* mean that it gets dumped out of memory. You could be right though, in that the app sticks around and gums up memory for other functions.
But what if running apps is affecting the core OS somehow and causing things to become unstable? Perhaps some apps are taking more control over core functions or not putting things back in place when they’re done. I’m no developer, but I just wonder if the core OS just isn’t quite mature enough for other apps to be poking arround and piggybacking on it’s libraries.
In other news, I typed this entire comment on my iPhone 3G.
I find that you don’t have to run any 3rd party apps to make the system unstable. Just run a bunch of native apps and you get the same effect and why I think it’s a memory issue.
I’d agree with you David, except for one thing: when you go back to an app, it returns in exactly the same state you left in. I think they’re temporarily “suspended” from running, but the memory is still in use.
Sounds to me like the iPhone really does suffer from the same memory management issues as Windows Mobile and Blackberry despite Steve Job’s keynote speech to the contrary.
The question that remains is whether it’s behavior problem as Nutsnbolts suggests– in which case, the tip should be documented more visibly; or whether it’s a true memory management issue in the iPhone itself that it isn’t behaving the way it’s intended, in which case, Apple should be prepping firmware 2.1 with a fix.
I know that on the Windows Mobile Professional side (the touchscreen versions), there are a number of programs that allow you to change the behavior of the X button. HTC’s task manager, for instance, allows you to set the X to “always close” or set it to hold-to-close. I believe the same option should exist on the iPhone.
Holding the Home button until it quits is the equivalent of ‘Force Quit’ in OSX.
Now, I’ve never seen the SDK and I don’t know squat about programming for the iPhone, but I do know something about Unix (the underlying OS for Mac OSX).
In Unix, you can close a program nicely, or you can kill it hard. It’s up to the program to act on the nice close command by cleaning up after itself and saving. Hard kills are for unresponsive or otherwise locked up applications. What may be happening is when you switch apps, you may be placing it into the background, but still in memory, so that if you switch back, it’s where you left it. If the apps are supposed to close after 5 minutes according to the SDK rules, then what should happen is that going to the background should kick off a timer thread, which after 5 minutes, calls the close/quit routine. That may not be happening. If you push and hold the home button, it may be sending a signal to all backgrounded apps to close nicely, or it may be sending a kill signal to force them to close. Don’t know, since I’m not an iPhone programmer.
It may be possible for somebody to release an app to tweak runtime settings, since most of those are controlled via stuff in the /proc filesystem and with .plist files in the /Application directories. It would be good for Apple to tweak the OS to capture application errors and write them to a log file or at least an error message, rather than just dying silently.
Hope that helps!
/Mike
Looking at Dwight’s examples and comparing them to yours, it looks like a networking issue. All of Dwight’s examples are server-based services. Loading up Safari tabs means pulling in a lot of data from multiple sources at once. If the crashes are happening when you’re jumping between notes, clock, and iPod, then that points more solidly to a memory issue. However, since the examples are all connected apps, logic points to a connectivity issue. I would compare wifi and 3G to determine if it’s specific to a network. If common to both, then it must be in the device.
You know what bothers me. There are many more tips I can share that is not documented and that is scouraging (right word?) the apple forum. The worst part, they disabled search due to high traffic. Nevertheless, here is another tip, new iPhone version!
Make sure you back up everything first.
Go to iTunes > hold the command (ctrl) key and click on restore.
5A345 to 5A347
I can’t seem to find a decent release notes but one of the fix was to correct the warm screen.
enjoy!
One more thing, the firmware or holding the “home” button down doesn’t mean it will correct the issue.
So far, I haven’t experience any issue. I have been religiously holding the “home” button down for applications that I know are “other” non-important applications I don’t need to keep running.
David:
“Apple says that apps aren’t allowed to run in the bkg, right?”
I don’t think this statement is true. They are allowed to run in the background, only for 5 minutes and it should close automatically.
Whether it’s doing it or not…you got me?
I know for one thing, I will test and try launching several applications and recreate the issue and wait like 10 minutes to see if the issue goes away, hopefully invoking the auto close after 5 minutes.
Where did I get 5 minutes from? It’s stated in their SDK submission rules to the APP store for 3rd party applications.