Maarten Edgar has created many technically complex applications using all (yes, literally all) subsystems available in a mobile phone.
This has led to having to become quite intimate with the workings and non-workings of Android’s SurfaceView, as professional apps have to run on a wide range of devices. This, in combination with work on his latest game (a randomly generated, fully 2D wrapping and scrolling, seamlessly textured world using fractal Simplex 4D noise) have taught him a thing or two about using SurfaceViews and what is needed to optimize them for complex, realtime use.

Session Description:
Using experience from developing a number of user-tested realtime applications and games, this session will provide a number of optimisations to rendering your SurfaceView at speed. Starting with a short explanation of how a SurfaceView works, Maarten will discuss a number of improvements, from the obvious of limiting fillrate and how you can do that with a SurfaceView, to matters such as tricks for limiting and eliminating object creation during runtime. Then Maarten will discuss the less obvious such as how user interaction can kill framerate and how you can bypass that. Maarten will also delve into topics such as proper timing, the rendering loop and threading and buffering techniques. All this will be supported by production proven code so the attendee will come away from the session with the knowledge to create their own butter-smooth SurfaceView.