Why not all iOS 4 compatible app are "awesome"

Not all app in Apple's growing "awesome iOS 4 apps" list are "awesome" -- at least not in their implementation of iOS 4 or for iPhone 4.

We touched on this already in our iPhone 4 review -- in iOS 4, Apple has set up several types of behavior that, when taken together, create the multitasking experience for the user. What the user sees is the fast app switcher that launches when you double click the home button, and the carousel animation that sends one app to the "background" and another to the "foreground".

For this to work in a user-friendly way, however, developers need to implement something called "saved state", so a snapshot of the app's current position is stored in memory, and when you return to it, restored to exactly that position in the app. This is supposed to eliminate what used to happen with 3rd party apps in previous versions of iOS -- when you left an App Store app and came back to it later, it relaunched from the beginning. This was especially frustrating, for example, if you were playing a game, got interrupted by a phone call, and then went back to your game only to have to start over.

Ideally it shouldn't happen any more on iOS 4 compatible apps. But it is. What some developers are presenting as updates, and Apple is listing as iOS 4 compatible apps, aren't implementing saved state.

While I'm not certain, it appears the baseline for iOS 4 compatibility is simply that the app isn't supposed to crash when launched in iOS 4.

And that's not enough.

Users need a consistent experience. iOS 4 supports multitasking. They download an "iOS 4 compatible app", use the fast app switcher to leave and come back, only to have the app re-launch and they think multitasking doesn't work or iOS 4 doesn't do it.

I watched, rather incredulously, that very thing happen on a TV review of iOS 4 a week ago. First I though the host should have (and probably did) know better. Then I realized the reviewer didn't matter -- users would probably experience the same thing and could justifiably come to the same conclusion.

Likewise, iPhone 4 adds Retina Display support to the top of the update list. Pushing out an iOS 4 update without an x2 icon at the very least is strange. (Pushing one out a first party app the day of iPhone 4 pre-orders without an x2 icon is bewildering -- looking at you Apple Store).

No doubt there's work involved and time required. I'm not a developer so I can't speak to how hard it is to implement saved state; I am a designer and I have some idea what's involved in making x2 artwork, but in both cases it obviously requires effort.

Some developers are clearly putting in that effort, however, and providing a wonderful iOS 4 multitasking and iPhone 4 Retina Display and even gyroscope implementations. Predictably they're the usual suspects like Real Racing and Twitterrific, and other apps where the developers clearly love iOS and really want to provide the best user experience possible.

Why isn't everyone?

(That's a serious question, if you're a developer and I've got it wrong, set me straight in comments or via email. If you're Apple, please consider not listing something as iOS 4 compatible or "awesome" unless it implements the awesomeness that is iOS 4.)

Have something to say about this story? Leave a comment! Need help with something else? Ask in our forums!

Rene Ritchie

EiC of iMore, EP of Mobile Nations, Apple analyst, co-host of Debug, Iterate, Vector, Review, and MacBreak Weekly podcasts. Cook, grappler, photon wrangler. Follow him on Twitter and Google+.

More Posts



← Previously

Steve Jobs: iPhone 4 over the air HD video upload coming "in the future"

Next up →

UPDATED: Fake or not?! Steve Jobs converses about iPhone 4 reception problems?

Reader comments

Why not all iOS 4 compatible app are "awesome"


First... and yes, a number of my apps are not doing saved state. No wonder I come across threads full of comments that iOS' multitasking is not working or worse still, people asking how they can disable multitasking...

Oops... someone beat me to it.. and at the start of the article, it should say "First things first" (correction for "dings")

There is a good bit of code that has to be added. The amount of additional code and changes depends on the sole function of the app. The multitasking experience IMO will differ from app to app due to different devs have their own ways of coding. example: two apps that utilize your location. One dev may want to gather this information while in the background, where is the other dev may decide not to.

I'm at a loss as to why they haven't managed to protect the image of iOS multitasking with a little more care. They have very quickly stepped into the realm of android with an inconsistent user experience.
Clearly many people will be both disappointed and confused when they discover that multitasking is in most cases poorly executed, even in apps certified by Apple to be iOS4 compatible. Get it together Apple!

This would have been more compelling (both in the reading and in developers' responses) if you had identified the apps you feel are not meeting basic standards for iOS 4. Giving us examples of the good apps is stating the obvious.

Here's something else that's missing : An EXIT AND TERMINATE button from nav apps. When I exit Copilot Live (my personal favorite), I have to open the stupid carousel and shut it down so the gps isn't running in the background eating battery. There should be a way to exit without background from these battery hungry programs.

^Hold power until you see the slide to power off screen, let go over power and hold down the home button until the apps quits. Its not exactly as intuitive and user friendly as it should be, but it works.

Tom, I had an example I came across over the weekend, but I can't remember which program it was. (I'd gone through a lot of random appage over the past five days.) I've seen incorrect implementation of this 'multitasking' thing. And an iOS4 still crashed on me.

iOS4 doesn't really multi-task then. The apps just pause themselves while the phone just switches to a different app.
If you're playing an emulator, then use a save state and switch to another game, you're not playing two games as the same time. I can see that the iOS apps are not closed, but they're not running either.
Android and Blackberry multi-task, I can play music/watch a movie, surf the internet, use AIM and Facebook. Each app running in the background. They're not pausing themselves so the OS can switch.
But I guess it works.

There is a known bug for retina icons in iOS 4. Many apps that are supplied with a high-res home screen icon are not shown in the home screen with the high-res icon, but rather the half resolution one.
Interestingly, you can see which apps this bug affects by looking at the app icon on iPhone 4 WHILE THE APP IS BEING DOWNLOADED AND INSTALLED. You'll see a high-res icon. But as soon as the installation is complete, the icon reverts to low resolution. Apple needs to fix this. Of course this only affects apps that have been supplied with a high-res icon.

You can do all those things as well...play games, listen to music, browse, etc. The problem is that the developer has to implement it. I'm not a developer but I'm pretty sure it's not a lot of code because it's part of the developer's API in the SDK. The apps that have implemented the multitasking features work flawlessly and my battery life has been better. Probably because the app doesn't have to reload every time I come back to it. So...looking at you developers...

@Josh- Thanks. That does work. It stays in the carousel but isn't running. But wouldn't an exit and terminate button in the app make much more sense?

Again, other reason to love proswitcher, that multitasking is more like a modern "save" system... Beside, there's a lot of lazy programmers over the world

@HungWell: In TomTom it only continues to run in the background if I have a route active. If I don't want it to be running in the background I just clear the route. Does CoPilot not do the same?

Maybe devs figure if they gotta make that many changes, then why not make a few more and sell 2.0 of it.
Or perhaps they don't think users care beyond the app working without crashing. I think many iphone users would have blank looks on their faces not realizing that apps have to be updated in order for multitasking to work. They assume they are multitasking because 4.0 has multitasking. It's what they've been told. They switch apps by double clicking. That's multitasking to them.
It's hard to believe apple implemented something they won't have full control on. But they do have full control in a way. They approve 4.0 capable apps. It's up to apple to be a bit more stricter if they want this to work.

Seems like it would depend on the application. Most games would benefit from saving state, but I can think of some utility apps that I would not want state saved in. For example, a calculator app should not save state in my opinion. I don't want to have to clear out everything I entered in the previous session every time I launch the app; I had rather it start with a clean slate each time.

Yeah I have plenty of Apps with blurry icons right now and it really bugs me. I only have about 40 third-party apps on my device and only like 16 of them I think have been updated with a few of them still without updated icons. It makes me sad because for a few of my apps I'm kinda feeling like the developer doesn't care enough to update it. sigh

I agree, what is taking so long? They knew they were going to sell this iPhone4 for about one year now.

None of this from a developer standpoint is trivial. Obviously artwork can take a lot of time to get updated - especially if you're using non-apple provided images.
From an app perspective, you've got to take into account that a user could exit at anytime, and even that they may exit through fast app switching and then completely exit the app when it's backgrounded. So state saving isn't just saving state, but saving data - and it could be on any screen in the app at any level.
Then there's things that the dev has no control over that don't return properly after a backgrounding of the app. For example, if the app is using the camera. The dev will load up the UIImagePickerContoller. Then you as the user background the app, go to YouTube and watch a couple videos. Using fast app switching you relaunch the app. Guess what? Sometimes (depending in memory usage) the UIimagePicker may get returned to the app properly, sometimes it doesn't and there's no way for the app to be notified if it comes back correctly or not. There's a ton of little things like this that not only complicate the programming, but complicate the testing of an update.
So, while I like everyone else would love to see everything updated and working 100%, I also understand how difficult implementing fast app switching is and I'm willing to accept some lost user experience for the time being until my favorite indie devs get their apps updated.

So far for me, the only iOS4-compatible app that doesn't do fast app switching is Kindle. Not sure how Amazon shanked that since they did add retina display support. What bugs me are all the apps that are MIA for iOS4: Skype, Navigon, and all my games- I'm looking at you. Really games are what you need it for most since they take so long to load (Twitter and FB always loaded fast enough although the new iOS4 versions are even better). Haven't seen any updates for Spore, Super Monkey Ball, Final Fantasy, Rolando, Soosiz, etc. Canabalt is the only game I have that was updated.

I do have apps with blurry icons. I don't like it.
In Steve We Trust! We all know Steve is working hard for us the Consumer to fix all iPhone4 issues. I am sure he has this very quote on his white board right now.
"The ultimate measure of a man is not where he stands in moments of comfort and convenience, but where he stands at times of challenge and controversy."

agree with the article, i have been realising the same thing, it does not go back to the same saved stage while i come back

i can confirm two things:

  1. Implementing Saved State is done by recompiling the app in the iOS4 SDK - there is no additional coding that needs to happen
  2. Implementing the Mutitasking API's does require additional coding.

I believe in the near term, you'll see many apps updated with saved state (since it's a 5 minute job) and developers will be working on a new version of their apps that implement the new API's and higher resolution images.
This is what i'm doing....

I'm also wondering if some developers are testing their existing apps on the OS4 firmware-without recompiling the app in the SDK- and calling it "iOS4 compatible"

I don't understand why all the music apps (radio station anyone?) still don't allowed background playing. Come on, the betas have been out for the last 3 months.
Just love Pocket-tunes which upgraded Monday including that feature.
I don't understand Skype, who's the one profiting more than any apps of all the iOs new features, that has not provided an upgrade yet.
Byline (RSS reader) did an upgrade recently, claiming: "Byline 3.2 with multitasking in iOS 4 and retina display graphics is now ready for sale!" ... but it doesn't allow for background rss download, which is the greatest benefit the app can get from iOS 4!

Note: just because an app saves state, doesn't mean it will do so indefinitely. If the system gets low on memory, it will kill paused apps so that the next time you launch, it will launch from scratch. On 3GS I usually don't get more than 4 "paused" apps before the system starts terminating the least recently used app. On iPhone 4 I can simultaneously have many more apps retain their "paused" state. I find it to be analogous to Mobile Safari tab caching in iPhone 2G/3G compared to 3GS (more memory = more caching).

Coming from a jailbreak, I can definatley till you that the backgrounder/proswitcher combo is better than apples multitasking BUT it is a step in the right direction. I'm sure in about 3-4 months more apps and especially the new apps would have adopted the saved state multitasking thus forcing older apps to update also or fall behind.

Oye Steve !!!
Is this multi-tasking? Well if u think so, u must b crazy.. Check out multi tasking from nokia, htc n other devices. Whr r the EXIT buttons???
It's a pain in the ass to delete each n every app frm tht multi tasking window.. :@ :@ :@
U better cme up wth 4.0.1 sooooooon...

Coming from JB I can tell you that Apples way of doing it is far better than backgrounder/proswitcher.
And to the people who say I can surf/navigate/play games/listen to music all at once, get real. It's a 3.5" screen in which you can only see one thing at a time. How exactly do you play a game and surf the web at the same time?

This is sooooo Apple. Allow the phone to perform a function, then when it is not what they said it was, BALME THE DEVELOPERS!! I have said for along time that Apple hides behind the app store. It allows them to put out a so-so product (and don't start with me; my iPhone 4 is on my desk) then expect others to make it great. Yes it will do this and that, IF SOMEONE ELSE MAKES IT. I think that what Apple is missing, and what I had with my Bold, is the "out of the box" feeling. They even tell you this. Get your phone, activate it, THEN HEAD OVER TO THE APP STORE TO MAKE IT GREAT. Other platforms do not need an app store to have great products. THEY make them that way. And before anyone opens their mouth about the app store allowing you to "customize" the phone your way, how do you like the NEW SMS tones we got with iOS4?? Oh wait, WE DIDN'T GET ANY. And, we CAN'T ADD ANY. One thing with Apple that you can count on is that the way they explain one thing goes completely against what you can't change about another. I can install Tom-Tom on my phone, but can't change my email alert. THAT makes no sense. Never has, guess it never will.

I am proud of Rene for not twisting this to make Apple seem like angels. Yeah I kind of wish Apple could have implemented it in the software similar to how WebOs, Android, and BB do it. Oh well though. Maybe in 4-5 months this won't be a very big issue.

To end an app which is currently running in the background, double click the home button (which will show running apps) and push and hold an app icon (like if you were going to move it on your homescreen) and hit the minus... that should stop it from running in the background.

I just had an update for "iSlots". This app does exactly what the article says....claims it has updated for "iOS4 Tweaks", yet the icon is low-res, the app does not fast-switch or save state. I'm sorry, but what in the hell did they tweak? This is a great article and like the author, I share the frustration. I wish Apple would get their s*it together on the iOS4 apps.
I really don't like how they've promoted the new iPhone 4 features, and have done absolutely nothing to even implement those features themselves or ensure that the developers of the extremely popular apps are implementing the features. As a developer, why would you NOT list that your app was iOS4 compatible...since that is what us consumers are looking for when we are browsing the app store on our new phones. Thank you Apple for a sh*tty experience so far (to include the reception "Death Grip" issue and how fragile the new phone is when dropped.).
Speaking of apps, where in the hell are the excellent iPad apps? Seems everyone has forgotten about the iPad in a rush to "update" their phone apps for iOS4. Did all of the good developers jump ship to Android? What is going on? I find it hard to believe that it takes 4 months to implement features that Apple provides API's for. The developer community has had iOS4 for months. There is no excuse for not being ready at launch.