I’m finding that the animated transitions on a Nexus 10 are jerky to the point of only rendering one or two frames. It doesn’t seem to take any longer for the transition to happen, but there’s virtually no animation, just a very jerky movement between states.
It seems fine on older and far slower devices (but with lower resolutions).
In other parts of the app. I have an image carousel based on the standard swiping components, and it’s smooth on every platform.
I’ve been chopping away at various code executed when the new screen is displayed, on the basis that the stutter is caused by one or more promises maturing and the code excuting in the “then” statement somehow slowing things.
However nothing really makes any difference aside from the presence of the sidemenu, Commenting out the processing code (and the injected services it depends on) and leaving the sidemenu intact didn’t affect things much.
Restoring the processing and DI and then just commenting out the sidemenu present in the html had a significant effect - not as smooth as the blank sidemenu project, but an order of magnitude better.
I’ve spent a couple or hours this morning / afternoon trying to get a small enough slice of code to see the effect.
I started out with the sidemenu sample project from scratch (native-style smooth) and then gradually added more code representative of my setup, in particular:
the slow transitions seem to be to / from views that have sidemenus attached to them
the content of the sidemenu is fairly complex with prompts / icons etc. shown and hidden dependent on various scope level functions and values.
By progressively ramping up (2) with some cutting and pasting, I can just about convince myself that the animation is silghtly slower / less smooth the more content resides in the side menu, but I’ve been editing, rebuilding and looking at it for so long now, it’s not certain. It’s certainly nowhere near the jerkiness of the actual app.
I could see there might be an issue with the conditional code in the side menu making the digest cycle etc. more complex and leading to resource problems at the point the animation takes place, but I don’t have any compelling evidence for that.
The fact it doesn’t seem to have the same issue on older / slow hardware also makes me think it may be that the Nexus 10’s horsepower is working against it; it’s rendering the animation and trying to process the sidemenu / main code and failing to do it smoothly and so noticeably, whereas a more resource restricted device performs the animation and tidies up afterwards but the apparent experience is better.
I’ll return to the issue and see if I can provide something more helpful, but at the minute the plan is just to ship with that jerkiness as it is and address it down the line.