https://developer.apple.com/reference/quartzcore/calayer
An object that manages image-based content and allows you to perform animations on that content
Layers are often used to provide the backing store for views but can also be used without a view to display content. A layer’s main job is to manage the visual content that you provide
Layers Provide the Basis for Drawing and Animations
Layer objects are 2D surfaces organized in a 3D space and are at the heart of everything you do with Core Animation.