MVC入門2013/12/18こんにちは。2013の18日目の記事です。AIRの記事を書こうとしたのですが、AS3の話題でもギリギリセーフかなと思いMVC入門記事を書こうと思います。CalendarのAIRの方も触れておきます。Android)のAIRアプリを作ってます。Android)向けに1ソースで作れます。(実際は最適化の必要があるので、部分的な切り分けは必要です)モバイルの場合は、デスクトップと比べてパフォーマンスを気にする必要があります。何も気にしないと、すんごく遅く表示されて「何これ、使えね!」となります。List・これまでWebページでずっと使われてた・激しい動きのないもの(ツール系など)に向いている・レンダリングモードはGPUがいいかも(CPU,Directモードはコンテンツによっては最適だったりするので、試してみて速かったらそちらにするという感じがいいと思います。Away3Dが有名という感じです。3Dは早いのですが、その分開発に若干時間がかかります。あと、ツール系は苦手です。AndroidのネイティブっぽいUIを作りたいときは、ライブラリの候補としてMadComponentsがあります。この間、何かいいのないかなーと探していたら見つけました。実際にちょっと前の端末のiPhone4(Sでなく)で動かしてみたところ、30fpsぐらいは出ていたので、1ソースでiOS/Android両対応のアプリを作りたいのだとしたら、現実的な落としどころだと思います。Stage3DのUIを作るライブラリのFeathersは、あんまり好きになれなかったのですが、こちらはぱっと見の印象として頑張ってみようかなという気になりました。実際に使ってみた後、またブログに書こうと思います。iOSにはAppストアに出さずに、企業内の閉じた環境でだけアプリを配ることができるEnterpriseライセンスというものがあります。この間、これを使って納品まで済ませましたので、そういった業務で使うアプリの開発も大丈夫です。ここまでがAIRの話題でした。MVCって何?さてここからがMVCの話題です。MVCというのは、クラスを切り分ける考え方です。結果を表示みたいなアプリに向いています。Controllerの3つの役割に分けます。Modelデータを保持します。Controllerの参照は持ちません。Viewユーザーに画面を表示したり、ユーザーからの入力を受け付けます。Modelのデータを描画したりします。(全てのModelのデータを描画する必要はないです)WikiによるとModelのデータを参照して持つようです。自分の場合ViewがModelのデータをプロパティとして保持し続けるのはイマイチかな?と思ってるので、Controllerにその役目を持たせています。Controllerの参照を保持し続けません。ControllerModelとViewのつなぎ役。両者をコントロールします。書いたのですが、いきなりこんなの書かれても、わかんないかもしれないです。いうか、私は最初に見たときイマイチわかりませんでした。実例をあげて実際にコードを書いてみるとなんとなくわかってくるかもです。あと、MVCはどこに何の役割まで持たせるのかをよく議論されるため、どれが本当に正しいMVCかなんてないと思います。言語やそのアプリの目的(ゲーム系やツール系やアート系やら)によりケースバイケースかと。今回の場合も、私が考えてる、非常にベーシックなMVCの考え方だと思って、参考にしてもらえるとうれしいです。今回はボタンを押すとその押した回数を表示するアプリを作ってみます。