Flexフレームワーク雑感
「考慮していない」の部分は実際には問題ないとおもうけど。。。
GeniusFramework
- http://www.libspark.org/browser/as3/GeniusFramework
- http://blog.s2factory.co.jp/yoshizu/ 作者のblog
- ViewはXXX.mxml→XXXBase.as(extends ViewBase, extends Canvas)。つまりCanvasでできている。
- そうめん:http://www.libspark.org/wiki/Thread が採用されたので Cairngorm ライクではなくなったのがよい。
- プロジェクト自動生成スクリプトあり。
- ドキュメントなし。
- フレームワークのクラスを継承しないといけない。
- Viewのvalidationはいまいち。
- ViewStackを考慮している。ページ管理の仕組みあり。
- Moduleを考慮していない。
- AIRを考慮している。
- デバッグログのサポートなし。
- テストコードなし。
- 総評:バランス的に一番よいが名前(天才フレームワークって)が恥ずかしくて採用しずらい。
yui-frameworks
- http://akabana.sandbox.seasar.org/ja/products/yui/index.html
- http://d.hatena.ne.jp/arkw/ 作者のblog。http://d.hatena.ne.jp/arkw/20080619/1213818618 開発再開らしいが。。。
- View(mxml)とLogic(ActionScript)を完全分離が主目的
- 命名規約でView(*.mxml)とLogic(*.as)のマッピング、ViewのイベントハンドラーとLogicのマッピングができる。
- creationPolicyをみていないのでつらい。
- ドキュメントレスなのに Convention over Configuration とは。
- フレームワークのクラスを継承する必要なし。
- RemoteObjectのみをサポート(S2Flex2-Componentsが入っている)。ServiceクラスとしてInjectionできるようになっている。
- Viewのvalidationなし(blogではあるようにかいてあるがソースなし)。
- ViewStackを考慮していない。
- マッピングが初期化時なのでViewStackに適用しづらいYuiフレームワークをもう少し便利に を適用すればよいかもしれないが。
- Moduleを考慮していない。
- AIRを考慮していない。
- デバッグログのサポートが追加された?
- テストコードなし。
- デバッグしずらい。イベントとLogicのマッピングはコードで表現するべきだと思う。
- 総評:ソースは参考になるが実案件では使えない。
Cairngorm
- http://labs.adobe.com/wiki/index.php/Cairngorm
- Diagram: http://myflex.org/books/BestPractices/Cairngorm2.jpg
- サービスの戻りをViewに反映がBindingしかない。
- つくらければいけないクラス多すぎ。http://code.google.com/p/flexcairngorm/ 使ってもまあそんなに変わらないだろう。
- ドキュメントがしっかりしている。
- フレームワークのクラスを継承しないいけない。
- HTTP,WebService,RemoteObjectをサポートしている。
- Viewのvalidationなし。
- ViewStackを考慮していない。
- Moduleを考慮していていない。
- AIRを考慮していない。
- デバッグログのサポート(未調査)
- テストコードなし。
- 総評:一番有名でAdobeの中の人がつくっているのに一番つかえないと思う。
Pure MVC
- http://puremvc.org/
- Diagram: http://www.myflex.org//books/BestPractices/PureMVC.jpg
- 他の言語に移植されている。xUnitっぽい。
- サービスの戻りをViewに反映がBindingだけではない。
- ドキュメントがしっかりしている。
- フレームワークのクラスを継承する必要あり。
- HTTP,WebService,RemoteObjectをサポートしていない。
- Viewのvalidationなし。
- ViewStackを考慮していない。
- Moduleを考慮しているのはポイント高し。
- AIRを考慮していない。
- デバッグログのサポート(未調査)
- テストコードなし。
- 総評:PureなのはいいがFlexのコーディングが楽になるわけではない。。。
Meta
- http://mate.asfusion.com/
- Diagram: http://www.myflex.org//books/BestPractices/Mate.jpg
- PureMVCとCairngormにおけるGUIパターンの比較: http://www.infoq.com/jp/news/2008/07/gui-patterns-puremvc-cairngorm の作者からは「I do not know enough about it」といわれてしまっているのでまだマイナーか。
- http://d.hatena.ne.jp/i2frame/searchdiary?word=%2a%5bMate%5d が日本では一番参考になりそう。
- mxmlを活用する方向に行っているのが非常に望ましいと思う。DIっぽい設定も可能。Injectorsタグがある。
- マッピングがMXMLにかかれていて分散していないので見通しがよい。
- ドキュメントがしっかりしている。
- フレームワークのクラスを継承する必要なし。
- HTTP,WebService,RemoteObjectをサポート。
- Viewのvalidationなし。
- ViewStackを考慮していない。
- Moduleを考慮していていない。
- AIRを考慮していない。
- デバッグログのサポートあり。EventMapで指定可能。
- テストコードなし。
- 総評:フレームワークとしては一番よいとおもう。mxmlのvalueかくmethod名とかの補完が効かないのが痛い(最大の欠点)。Seasarのkijimunaみたいなmxmlのvalueの補完+Validationがツールなどでできないと実案件では使えない。
- GuiceみたいなアプローチでmxmlではなくてasですべてEventMapをかくようにするのがよいのかもしれない。