Size sprite images in powers of 2 (64x64 , 128x128, etc)
Try to do as little as possible in loops that have animations.
Use this instead of Sync()
Update2D(0) : Render2DFront() : Swap()
It will speed up render times a little as it skips all 3D rendering.
Implement timer based motion.
Be aware that on Android and iOS your FPS will be seriously hampered. High end Android devices will achieve 60 FPS, but it is unstable. I'm sure iOS devices are simliar, but I've not tested them.
Using collision boxes/shapes on sprites can be very costly. Try to use collision shapes that are square.
If using physics then add a stepper like this:
while ( count < 4 AND timer()-time# >= physicsstep# )
StepPhysics( physicsstep# )
time# = time# + physicsstep#
count = count + 1
endwhile
Sprites that are not visible or are off the screen do not cost in frame rate, but will eat into your memory usage. If you need to load a lot of sprites then do it incrementally if possible.
Use clone sprite liberally. Clones are less costly than full sprites.
Those are all the tips I can think of. Timer based motion is a big one and you should spend time looking at the AppGameKit examples to learn it.