...and another thing. The rotation animation doesn't actually do its job. It's supposed to provide a smooth transition from one state to the next. But instead it takes a snapshot of state A, squishes it into the shape of state B, and then afterwards shuffles everything around to a good layout for the new screen. "Squished A" is a lie, showing me a bunch of buttons that don't really exist and I can't actually press. This is something that the iPhone also gets wrong.
My suggestion for fade out/fade in is exactly for this reason. That's an easy way to animate from an old state, that can no longer be used, to a new state that really can. This gives me a chance during the animation to predict where to put my finger - and move my finger away in time if it's about to press a button I don't want to press.
I can imagine two other options. One is to animate every UI element separately, with each button simultaneously rotating and floating over to its new position. That sounds like it could be a complete mess though. The other option is to continuously resize the window as it rotates, as if I were dragging the bottom right corner of the window on a desktop machine. That would probably lead to a sequence of "big bang" state changes that might be confusing, but it would give me a much better chance to predict the final location of the button I'm after.
...and another thing. The rotation animation doesn't actually do its job. It's supposed to provide a smooth transition from one state to the next. But instead it takes a snapshot of state A, squishes it into the shape of state B, and then afterwards shuffles everything around to a good layout for the new screen. "Squished A" is a lie, showing me a bunch of buttons that don't really exist and I can't actually press. This is something that the iPhone also gets wrong.
My suggestion for fade out/fade in is exactly for this reason. That's an easy way to animate from an old state, that can no longer be used, to a new state that really can. This gives me a chance during the animation to predict where to put my finger - and move my finger away in time if it's about to press a button I don't want to press.
I can imagine two other options. One is to animate every UI element separately, with each button simultaneously rotating and floating over to its new position. That sounds like it could be a complete mess though. The other option is to continuously resize the window as it rotates, as if I were dragging the bottom right corner of the window on a desktop machine. That would probably lead to a sequence of "big bang" state changes that might be confusing, but it would give me a much better chance to predict the final location of the button I'm after.