510 likes | 737 Views
Genius Framework について. 吉津 卓保(S2ファクトリー株式会社). 自己紹介. seagirl という名前でブログをやっています。. http://blog.s2factory.co.jp/yoshizu/. Agenda. Genius Framework とは 開発動機 Genius のアーキテクチャ Genius の便利なコマンド. 1. Genius Framework とは. Flex アプリケーションの開発(mx パッケージのライブラリと mxmlc コンパイラを使った開発)における、アーキテクチャレイヤのフレームワーク. ??.
E N D
Genius Framework について • 吉津 卓保(S2ファクトリー株式会社)
seagirl という名前でブログをやっています。 http://blog.s2factory.co.jp/yoshizu/
Agenda • Genius Framework とは • 開発動機 • Genius のアーキテクチャ • Genius の便利なコマンド
Flex アプリケーションの開発(mx パッケージのライブラリと mxmlc コンパイラを使った開発)における、アーキテクチャレイヤのフレームワーク
と言われる… orz →もうちょっと簡潔に
プログラムをどうやって分けるかプログラムをどこに書くかプログラムをどうやって分けるかプログラムをどこに書くか
ということを決めたルールのようなもの → アーキテクチャ
ルールに従うことで、色々幸せになれる • 仕様変更に強い • 複数人数で開発しやすい • 余計なことで悩まない
Web で見かけるサンプル <?xml version="1.0"encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> <mx:Script> <![CDATA[ privatefunctioninit():void { message.text ='Hello, world!'; } ]]> </mx:Script> <mx:Labelid="message" /> </mx:Application>
MXML を使えば簡単にWeb アプリが作れる!! → おお 素晴らしい!!
だけど、こんな感じに書いていって、本当にちゃんとしたアプリケーションが作れるの?だけど、こんな感じに書いていって、本当にちゃんとしたアプリケーションが作れるの?
あっという間に数千行のスパゲッティなコードになるので、おすすめ出来ない。あっという間に数千行のスパゲッティなコードになるので、おすすめ出来ない。
Cairngorm • Adobe 公式 • ケアンゴームと読む • ほぼアーキテクチャのみ
Cairngorm のアーキテクチャを構成する登場人物 EventDispatcher FrontController ModelLocator View ViewHelper ViewLocator ValueObject Service ServiceLocator Delegate Command Responder Event
複雑すぎる! 分割が細かすぎる! めんどくさい! 楽になってない!
ちょっとした機能を追加するだけなに、5 個も 6 個もクラスを作らなければならない。
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-flex-code-behind-pattern/http://blog.vivisectingmedia.com/2008/04/the-flex-code-behind-pattern/ 詳細
Thread • コントローラ層( ユーザーイベントのハンドリングやモデルの操作など) • サービス層( 外部サービスとのやりとり)
耐久性 クラスファイル 300 個くらいの実案件で使っています。
プロジェクトや各クラスの作成はコマンドで一発!プロジェクトや各クラスの作成はコマンドで一発!
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 など
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/