Delegation and Dynamics

Being able to create your own classes and write custom delegation protocols for them is super powerful, though a tad confusing at first, especially when it comes to delegation. Cameron made an awesome analogy, comparing delegation to The Godfather. The Don needs something done, and he wants you to do it for him. He passes you the information, and it's up to you to carry out that action. He delegates that responsibility to you. I'm getting into UIKit Dynamics, which I REALLY want to explore in-depth. Having a motion design background, I think this stuff is awesome. Like making buttons pop out and wiggle... 

There is some math involved in getting the buttons to land in the right spot, but the nuances of the movement have already been taken care of for you by Apple. They've created a class called UIDynamicBehavior that allows you to add animation to objects with predefined behavior. This one above is using a Snap behavior. It even allows you to adjust the damping, which I've only toyed with so far.