In this chapter, you learned a lot about animation. You now know that you can easily animate a view's property using the powerful UIViewPropertyAnimator object. You learned what timing functions are and how they affect animations. Also, more importantly, you saw how to make use of springs and UIKit Dynamics to make your animations look more lifelike. After learning some animation basics, you also learned how to add custom animations to view-controller transitions. The complexity of this does not necessarily lie in the animations themselves. The web of collaborating objects makes it difficult to understand custom view-controller transitions at first. Once you have implemented this a few times, it will get easier to make sense of all the moving parts, and you'll see how all the building blocks fall into place.
Despite the amount of information already present in this chapter, it does not cover every single aspect of animation. Just the most important parts of animations are covered, so you can utilize them to build better, more engaging apps. If you want to learn more about animation, you should look for resources on Core Animation. This is the framework iOS uses under the hood to drive all of the animations we created.
With these animations in place, the Hello-Contacts app is complete. Also, with that, the first section of this book is complete. You've learned everything you need to know about creating layouts with Auto Layout, displaying data in lists, and pushing new views to the screen. The next chapter will focus on Swift and how you can make use of some of Swift's most powerful features, such as protocols and value types.