Genius Framework について 吉津 卓保(S2ファクトリー株式会社) 自己紹介 seagirl という名前でブログをやっています。 http://blog.s2factory.co.jp/yoshizu/ Agenda • Genius Framework とは • 開発動機 • Genius のアーキテクチャ • Genius の便利なコマンド 1. Genius Framework と は Flex アプリケーションの開発(mx パッケージのライ ブラリと mxmlc コンパイラを使った開発)における 、アーキテクチャレイヤのフレームワーク 長い! よくわかんない! と言われる… orz →もうちょっと簡潔に プログラムをどうやって分ける か プログラムをどこに書くか ということを決めたルール のようなもの → アーキテクチャ Genius はアーキテクチャを 提案するもの ルールに従うことで、 色々幸せになれる • 仕様変更に強い • 複数人数で開発しやすい • 余計なことで悩まない 2. 開発動機 Web で見かけるサンプル <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> <mx:Script> <![CDATA[ private function init():void { message.text = 'Hello, world!'; } ]]> </mx:Script> <mx:Label id="message" /> </mx:Application> MXML を使えば簡単に Web アプリが作れる!! → おお 素晴らしい!! だけど、こんな感じに書いていって、本当に ちゃんとしたアプリケーションが作れるの? ぐちゃぐちゃ あっという間に数千行のスパゲッティなコー ドになるので、おすすめ出来ない。 プログラムを整理したい フレームワークが必要 Cairngorm • Adobe 公式 • ケアンゴームと読む • ほぼアーキテクチャのみ Cairngorm のアーキテクチ ャを構成する登場人物 Service ServiceLocator Delegate Command Responder Event EventDispatcher FrontController ModelLocator View ViewHelper ViewLocator ValueObject 複雑すぎる! 分割が細かすぎる! めんどくさい! 楽になってない! ちょっとした機能を追加するだけなに、5 個も 6 個もクラスを作らなければならな い。 うんざり 作ろう 3. Genius のアーキテクチャ Thread Model View シンプル! Model • データの保持 • データの処理 View • プレゼンテーションロジック(AS) • UI 定義(MXML) The Flex Code-Behind Pattern 書いているとき 動いているとき ViewBase (AS) View インスタンス View (MXML) 詳細 http://blog.vivisectingmedia.com/2008/04/the-flexcode-behind-pattern/ Thread • コントローラ層( ユーザーイベントの ハンドリングやモデルの操作など) • サービス層( 外部サービスとのやりと り) 詳細 http://www.libspark.org/wiki/Thread 耐久性 クラスファイル 300 個くらいの実案件で 使っています。 4. Genius の便利なコマンド プロジェクトや各クラスの 作成はコマンドで一発! コマンド名 目的 genius プロジェクトのスケルトンを作成 generate Model, View, Thread 各クラスのスケルトンを作成 genius コマンド % ./genius -n HelloSample -p jp.seagirl.sample -o ~/Desktop created ./application/src/main.mxml created ./application/src/application/core/Application.as created ./application/src/application/threads/ChangeStateThread.as created ./application/src/application/views/MainBase.as created ./application/src/application/views/Main.mxml created ./application/src/application/views/IntroBase.as created ./application/src/application/views/Intro.mxml generate コマンド % ./generate UserModel created ./../src/application/models/UserModel.as done. 便利! ただし、 シェル環境が必要 • Mac OS X → Terminal.app • Windows ど → Cygwin な Demo Genius Framework 1.5 本日正式リリース (安定板) http://www.libspark.org/browser/as3/GeniusFramework/tags/v1.5 参考資料 プロジェクトホーム http://www.libspark.org/wiki/seagirl/genius 開発者のブログ http://blog.s2factory.co.jp/yoshizu/ ご清聴ありがとうございました
© Copyright 2024 ExpyDoc