ModelはNSManagedObjectとCALayerを多重継承すべき!みたいなことを言ってもいいぐらい、CALayerはObjective-CのModelクラス群の中でも中心的存在になってもいいんじゃないか、と思ったけど、実戦で一回も継承したことない
むしろ、継承しなくてもよいような仕組みがいろいろ備わっているので、そういうことなのかなと思ったりもするけど、よく分からん
つまり、永続化が必要ならNSManagedObjectを継承する(Core Data使う)みたいに、ModelをビジュアライズするならCALayer継承する(Core Animation)、って意味でのModel設計における中心 (当然場合による)
CALayerは.frame, hiddenみたいにViewっぽいプロパティを持ってるのでNSView/UIViewみたいに考えちゃうことがあるけど、NSManagedObjectと同じようにModel設計の一個の選択肢に入れられるものなんだ、と今さら思ったということでした
場合による、の一個の例は、Quartz 2Dでコンテンツを描画する場合、割と採用しやすい予感がする。ともかくCore AnimationはQuartzと仲良し。
OpenGLで描画しないといけないような3Dバリバリとかパフォーマンス追求型っぽいのは最初からOpenGLなんでCore Animationの出番無し
Quartzでコンテンツ描画するときは量が増えると遅いし、Core Animation以外でアニメーション(つまり、毎フレーム描画内容を変更)させようとしてもFPS 10とかになるので\(^o^)/オワタ