This. The lag is minimal, less than a second, but it is extremely agitating. If you try and use the app immediately, your first string of touch input will most likely be ignored. From then on, it is as responsive as ever. The first second, though, is an infuriating user experience.
The reason for this delay is linked to how iOS ‘freezes’ background applications; the period of inactivity experienced is relative to the time it takes to unfreeze the desired application. For the Settings app, the time necessary to become active is negligible, so it feels instantaneous, but for more complicated apps (like Mail) the thawing process takes longer and becomes noticeable in use. Until that point, touches do nothing because you are effectively looking at a screenshot of the application when you were last open — the app doesn’t receive any touch events at this stage.
This delay isn’t normally an issue when using the multitasking tray, as iOS can start to transition the app into the foreground as soon as you tap on its icon, with the ‘carousel’ animation making it feel like there is never a moment of unresponsiveness. This trick isn’t possible when using the gesture navigation, though. iOS doesn’t start the unfreeze until the swiping animation ends, just in case you gesture to go back at the last instant.
As the iPad becomes increasingly powerful, this lag will minimise automatically. However, I don’t expect this problem to go away that soon, because the unfreezing process will often rely on slow disk IO as well as CPU. The increasing complexity of iOS applications prolongs the attainment of this goal, too.
Therefore, it may be time to consider a change to the multitasking manager in iOS. Multitasking in iOS was introduced with iOS 4, designed with the iPhone 3GS and iPhone 4 in mind. It was built with the assumption of severe RAM constraints.
Nowadays, iOS devices have much more RAM; the latest generation of iPad and iPhone have 1 GB in their SoC’s. Hence, I think Apple should consider taming the aggressiveness of iOS’ multitasking policies — the devices can handle it now. At the moment, the OS backgrounds any app that isn’t the one currently being used. If instead the OS kept the last-used app alive in addition to the foreground app, the delay when swiping would be eliminated as the unfreezing step would no longer be necessary.
Obviously, going back further would still require unfreezing to occur, but the user experience for the most common scenario — returning to the last used app — would be much improved. It’s not a revolutionary change, it doesn’t require any “relearning” from users. It’s just a small evolutionary advancement to utilise some of the power of Apple’s latest devices.