Mit Core Animation können Sie viel mit einer minimalen Menge Code tun. Es macht das Verwalten von 2D-Ebenen und deren Animation relativ einfach. Da Animationen für Sie behandelt werden, auch wenn Sie komplexe Pfade oder Timing-Kurven verwenden, müssen Sie keinen Code schreiben, um die Anzeige jedes Frames zu aktualisieren oder das Tweening einer Animation zu berechnen. Core Animation integriert sich auch gut mit den 2D-Zeichenfunktionen von Quartz, mit nativen Cocoa Touch-Oberflächenelementen und Touch-Bedienung und mit Ihrem Objective-C-Code an anderer Stelle in Ihrer Anwendung.
Wenn Sie das Framework wie vorgesehen verwenden, können Sie eine sehr gute Leistung erzielen. In meinen Benchmarks auf meinem alten iPhone der ersten Generation konnte ich 50 durchscheinende Ebenen gleichzeitig auf dem Bildschirm mit etwa 60 FPS animieren. Dies ist jedoch mit vordefinierten linearen Pfaden, die für jede Schicht im Voraus spezifiziert werden, und ohne Unterbrechung der Animationen.
OpenGL ES ist für, wenn Sie einfach nicht denken, dass Sie in der Lage sein werden, die notwendige Leistung zu erhalten, ohne direkt mit der zugrunde liegenden Hardware zu sprechen oder wenn Sie echte 3D-Arbeit tun müssen (Core Animation kann) begrenzte 3-D-Effekte, aber nur mit rechteckigen Ebenen). Der Nachteil einer besseren Leistung und Flexibilität ist, dass viel mehr Code geschrieben werden muss, der schwerer zu lesen ist. Außerdem kann es manchmal ein Albtraum sein, OpenGL ES zu debuggen. Ein weiterer potenzieller Vorteil von OpenGL ES ist, dass es ziemlich plattformunabhängig ist, so dass Sie Ihren Renderer möglicherweise so erstellen können, dass er leicht vom iPhone auf Android, den Desktop usw. transplantiert werden kann.
Im Allgemeinen war meine Empfehlung, Core Animation zuerst zu sehen, ob es tun kann, was Sie wollen, weil Sie in der Lage sein werden, eine Anwendung viel schneller auf diese Weise zu bauen. Wenn das nicht angemessen ist und Sie ein 2D-Spiel machen, wäre vielleicht cocos2d ein guter Weg. Ich habe das Framework nicht selbst benutzt, aber ich habe gehört, dass es den Prozess der 2-D OpenGL ES-Arbeit vereinfacht. Nur wenn keiner dieser Ansätze geeignet ist, sollten Sie zu OpenGL ES wechseln.
Wenn Sie neugierig sind, beziehe ich sowohl Core Animation und OpenGL ES in den Videos für my course on iTunes U, wo Sie durch und sehen können, was benötigt wird, um in beiden Umgebungen zu arbeiten.