Basic animation is powerful. You have a lot of flexibility in the way you can achieve your application animation goals. Often you won't need to go beyond what is provided for you in basic animation. Keep it simple. If all you need is the animator proxy, use it. If all you need is to set a layer property, call that property's set method and let Core Animation handle the rest. If you need to have more flexibility over the animation parameters, use a CABasicAnimation object and set all the animation properties yourself. Just remember that probably more often than not, you only need basic animation.