I am not an expert here, but I think the power of transforms is that you'd leave the frame where it should end up (or even use a pyui, with the as-presented configuration), then use transforms only to move the view. I think that might save one or two lines.
The following code creates a rectangular grid of 64 cells (8*8) with different colors. If you touch a cell, it changes the color. I hope this gives you an idea of how to solve your problem with shader. The following online book explains how to create such shaders. http://patriciogonzalezvivo.com/2015/thebookofshaders/
Also works on iPhone 6s. It feels a lot snappier. Even though I have Pythonista on my phone, I have never used it for other than testing. But when you are coding who needs animations with the programming interface.
Can also confirm, if you do a hard shutdown of Pythonista, on relaunch everything is back to original. That's why I have put mine in the pythonista_startup.py (1.6 only)