In the previous chapters, we focused on high-level technologies such as UIKit; then, we moved a step below these to talk about core animation. In this chapter, we will dig even deeper down the system architecture layer and finally reach core graphics, a framework that gives you a multitude of instruments to fully handle 2D drawing on different contexts, such as views, PDF, and bitmap, thanks to the Quartz 2D engine.
All this awesomeness comes at a cost: the effort needed to achieve complex designs is obviously much higher than when you're just using UIKit or core animation. On the bright side, you gain control over powerful tools that grant access to all the freedom you need to create 2D designs programmatically.
Through this chapter, we will talk mainly about these topics:
The graphic context and graphic state
UIKitCore graphics helpers
Drawing with paths