Who are you?
Heya. My name is Shannon Potter, a 30-something tech guy living in San Francisco, CA.1 I’m a long-time iOS software engineer and app developer. Currently, I’m at Rheo, working on tvOS, which has been a great experience. Notably, I’ve worked on apps at Airbnb, Path, and Scan. I’m a lover of great design, graphics, and animation. I spend most of my professional time programming and most of my personal time playing video games, voice acting (just for fun), thinking about motion design, or hanging out with friends.
What’s this blog about?
Glad you asked! Since I’m a total tech nerd, this blog is focused almost entirely on technical topics based around iOS and tvOS’s more foundational framework: Core Animation. Over the years, I’ve become intimately familiar with the ins and outs of how Core Animation works, and I hope to document tips, techniques, pitfalls, and opinions about Core Animation on this blog. I also am a big fan of Core Image, SceneKit, Metal, and other graphics and media frameworks for iOS, so I will blog about those as well.
The content on this site is primarily intended for other iOS and tvOS software engineers, and there will often be a lot of code. However, I intend on including ample visuals to go along with my topics, so software engineers and designers outside of the iOS community might appreciate some of my posts from time to time.
What’s Core Animation?
Core Animation is, in my opinion, the reason why the iPhone felt so magical the moment it landed in consumers’ hands. Core Animation is a foundational software framework created by Apple—by one guy at Apple, to be precise!—that is responsible for displaying practically every pixel you’ve ever seen on your iPhone, iPod Touch, iPad, Apple Watch, and Apple TV.2
In short, Core Animation is iOS’s3 primary renderer and compositor. It encodes layout and display commands programmed by app developers in their application and sends those commands to a dedicated, high priority render server process on the device. This process uses the GPU to efficiently render and composite everything you see on your device’s screen. As its name implies, Core Animation is also an animation framework, and it makes creating smooth animations on iOS very easy for developers.
Core Animation is the reason I became and still remain an iOS software engineer; its power and ease-of-use enables me to develop rich user interfaces and animations for the applications I work on with relatively little effort.
Why is your blog called CALayer?
CALayer is the principle class that powers Core Animation. While most developers interact with views to build their applications, these views are actually backed by layer objects. Layers do all the heavy lifting when it comes to actually displaying content on the device’s screen. When a developer needs advanced control over their UI’s appearance, they drop down to
Since I found myself tinkering with layers so much as I began to explore the more advanced concepts behind iOS rendering, compositing, and animating, I just decided to check if calayer.com was available…and it was! So I bought it.
What’s with the logo?
This blog’s logo is a play off of the Core Animation logo:
I’m not exactly a fan of the flat design aesthetic ushered in by iOS 7, but I found that a simplified shape and style made it easier to read the site’s name in the logo, so I ended up with this:
That’s about it!
My contact information is on the footer of every page, so feel free to reach out.
Try not to be too surprised… ↩
And on OS X in some cases. Technically, Core Animation was first introduced in Mac OS X 10.5, which was announced before the iPhone. However, Core Animation was developed in secret specifically for iPhone OS even though it was included first in OS X. ↩
On this blog, whenever I refer to iOS, I mean iOS and tvOS. They are effectively the same OS, and, to my knowledge, Core Animation runs nearly identically on either platform. ↩