What to do when CoreGraphics can't handle your drawings anymore

Last updated: 7 months ago

Abstract

CoreGraphics is an essential part of custom visualization process. It is a go to solution when your design team wants something truly unusual. Visualizing big amount of data can be particularly challenging. And this is especially the case when you want to draw a beautiful, animated plots with your data and let user to interact with it on a high, stable frame-rate. Once you have to draw a lot of markers on a single map or present a very complex series in a plot you can usually hit huge performance bottlenecks that CoreGraphics has.

In this talk we will go though an implementation of awarded Telegram Contest app and explore how to draw extremely intense custom controls at 60 FPS without draining a user's battery!

Target Audience

Advanced iOS developers facing challenging rendering problems in non-gaming apps.

What to expect

Deep dive into creating your own rendering pipeline with Metal under the hood. We will also implement an animation engine ourselves, since UIKit/CoreAnimations mechanism are not available for us in custom rendering. Everything will be done in Swift and will work blazingly fast even on iPhone 5s (even though you might not even care about it).

Outcomes

The talk is designed to give an audience an insight on possibilities available to us as iOS developers which we barely use. Another key thing is to shed a light on low-level things like animations or touch input. Such things are hidden from us with UIKit abstractions and can be hard to explore.