Ben Szymanski

Software Engineer • Vlogging about efoils, tech and music • 🇺🇸 & 🐊

I'll start by quoting the beginning of the “Motion Effects” section in the fourth edition of iOS Programming: The Big Nerd Ranch Guide.

Since this section is new in this edition, I figure that this section was possibly written by Christian Keur. It says:

When you drive down the road, the signs along the shoulder appear to move much more quickly than trees in the distance. Your brain interprets this difference in apparent speed as movement in space. This visual effect is called “parallax”.

I agree with him on this point. This is parallax. He then goes on to say this:

With iOS 7, you have probably noticed this on the home screen where the icons appear to move relative to the wallpaper when you tilt the device.

Where he relates this motion effect to parallax. I disagree with him on this point. The text following that almost reads like something out of Apple Marketing.

As you‘ll find out, I am not exactly a supporter of the new direction that UI design at Apple is headed in. I have many, many thoughts on this matter, but I just wanted to offer one quick thought about the parallax effects in iOS 7 and 8: it is incomplete. And I cannot stand to move about this world without finally expressing that I feel that this not a valid way to add depth to a user interface, while disregarding drop shadows and other now “passe” UI cues.'

Here's why I think what they have done is incomplete: there is no complimenting perspective effect, which should be used in-tandem with the parallax over/underlays.

It seems so obvious. Parallax is really an old idea, and when I think parallax, I usually think of older 2D cartoons that used this effect to create the illusion of depth. For example, Walt Disney's studios built a camera known as the multiplane camera to help automate this effect. In the Wikipedia article, it mentions that you can find this technique in the movie Snow White. Thanks to one “Rebecca H” for uploading the particular scene described in the wiki article, we can observe this for ourselves (shhh... no one tell Disney ;)).

Analysis

In the first clip, we can clearly see use of perspective and scaling to give us the full parallax effect. At 1:57, the hands of the Evil Queen start to transform into those of an old woman. We also see that the hands are nearly as large as the background clouds, they are scaled up. In the second clip, we see the old woman walking from the right side of the frame to the left side. Look at the proportions of the old woman, compared to the background. The old woman character is drawn on its OWN, enlarged scale, completely independent of the scale that is being used to draw the elements in the background. A full parallax effect.

The parallax effect in iOS 7/8 does not do this. As a rule, it seems that foreground elements are drawn on the same scale as background elements. This is not a full parallax effect. iOS handles the motion effects, but it completely ignores the scaling/perspective issue. That's why their implementation of “parallax” is half-baked and does not succeed in creating an illusion of depth. Disney gets it. Apparently Apple does not.

Apple doesn't get it? Yeah right! Or... maybe not. Just take a quick peek at their “parallax” API here.

It''s only built to handle motion of subviews, relative to their superviews. No scaling, no perspective. Worse, this motion-only “parallax” effect only makes itself obvious if you are shaking your phone or otherwise moving it about some axis.

I would like to make one particular exception to the rule I mentioned above. In iOS 8, the app switcher/card interface, does scale the open application windows down. They follow their own scale that is different then the scale that is being used to draw the background. This is a good example of a true parallax effect.

I am happy that Apple has elected to keep drop shadows to illustrate depth in the flattened user interface of OS X Yosemite. And when designing a native application, please do not eschew helpful visual cues (even if considered passe) at the recommendation of the user interface gods of Apple, Inc. (or, at least not without some serious thought).

Proudly powered by Pelican, which takes great advantage of Python.