Both have most of the same attributes, both support different kind of animations, both represent different data. What are the differences between a UIView and a CALayer?
The big difference is UIView is designed for CocoaTouch on mobile device. It adds some event handler which CALayer did not provide.