Hacker News new | comments | show | ask | jobs | submit login

If you actually look really closely, a lot of what iOS does with animations are about giving the illusion of responsiveness and smoothness.

I'm not saying things aren't incredibly responsive, but some of the animation techniques are used brilliantly to disguise lag.

Three examples:

1. Mobile Safari doesn't wait to render what it hasn't downloaded/formated before responding to touch gestures. You swipe and the page scrolls. It might display a checkerboard before it catches up with rendering, but the swipe command takes precendent.

2. Those wizzy transitions when double-tapping the home screen, or returning to the spring-board. They start immediately and actually mask what's going on behind the scenes with regard to processing a request. They're the ultimate illusionist progress-bar. And they need to be tuned finely to present the illusion or else it becomes obvious that they're masking tactics.

When people complain about the performance of new iOS versions on older devices such as the 3G, what they're really noticing is the illusion has been broken as Apple is optimising and fine-tuning the illusions for the latest hardware.

3. Those screengrabbed snapshots of apps that have been completely closed and display when an app is restarted. If the load time is short enough, the illusion of instantly re-entering an app is maintained, even if all you're seeing is a stale image of the app your closed earlier.

I'm not sure if Android employ any of these tricks, but they demonstrate the focus and undocumented nature of Apple's drive to create the illusion of perceived GUI 'smoothness'.

Well, of course. And if you think about it further, all user-facing software is, in fact, an illusion. Smoke and mirrors all the time. Apple just pushes the illusionist work even further than what most software developers (who are themselves illusionists, whether they realize it or not) consider as being "real". But it works, users prefer that.

Not only that, but I'm convinced that users are actually more efficient when perceived responsiveness is added: for instance, most users will not start thinking about what to do next on an app until they are seeing the app interface; presenting then with a non-interacting screenshot as soon as possible actually makes the overall interaction more efficient. But the ultimate is what the guys making PCalc discovered ( http://www.dragthing.com/blog/2009/07/how-to-make-your-iphon... ): you can put a non-interactive screengrab in such a way that even though it is a dumb image, touches will actually be recorded and have their effect as soon as the actual interface is set up; users can actually interact very soon. Now that's badass.

(however, most animation stuff doesn't fall in the category of perceived responsiveness, as most often, for instance for transitions, the end result must be ready before the animation begins; also, "undocumented nature"? Apple's obsession with perceived responsiveness is well-known).

Thanks for that link... I'm a designer not a developer, but I find articles like that fascinating.

(You are right about the other things you objected to in my comment.)

Whilst I agree with your main point, I have to nitpick your aside about running iOS on older devices. When I tried iOS 4.0 on my 3G (and the reason I'm now running 3.1.3 again) the UI would frequently completely freeze for several seconds. That can't be explained away as poorly-tuned animations.

One of the reasons I'd switched to Opera over Mozilla/Firebird/Firefox was because it remained consistently responsive. A page would be freaking out dog slow doing heaven knows what... in firefox, the browser would be frozen, in Opera, I could continue interfacing and issuing gestures and keyboard commands. Even on my old Fujitsu P1120 - a dog slow 800MHz Transmeta Crusoe beast with 223 MB ram - Opera, while not visually responsive, was at least queuing my operations, and would respond as fast as it was able. There didnt seem to be any event queue in firefox; if the browser was freaking out, keyboard commands &c would be outright dropped.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact