We love the simplicity of he SpriteKit framework, but have been wondering if there's a way to get better battery performance when our game doesn't need to animate at 60 fps. For example, in simple casual games or puzzle games (consider Solitaire), where we don't need things changing every frame, it feels like a waste of battery to have to setup and submit the entire render frame when nothing has changed. Ideally, the frameworl would know that nothing has changed and automatically skip render, but we can imagine that this is tricky. Please note that we are not looking for a way to set our frame rate to 30 fps of something like that. We are explicitly looking for a way to only have render occur when the screen needs to change, as opposed to doing it every frame "just because."
One solution might be to allow us to override render and allow us to cancel it (meaning our override doesn't call super::render) when we know that nothing has changed.