Genius Framework について

51
Genius Framework にににに にに ににS2 にににににににににに

description

Genius Framework について. 吉津 卓保(S2ファクトリー株式会社). 自己紹介. seagirl という名前でブログをやっています。. http://blog.s2factory.co.jp/yoshizu/. Agenda. Genius Framework とは 開発動機 Genius のアーキテクチャ Genius の便利なコマンド. 1. Genius Framework とは. Flex アプリケーションの開発(mx パッケージのライブラリと mxmlc コンパイラを使った開発)における、アーキテクチャレイヤのフレームワーク. ??. - PowerPoint PPT Presentation

Transcript of Genius Framework について

Page 1: Genius Framework  について

Genius Framework

について

吉津 卓保( S2 ファクトリー株式会社)

Page 2: Genius Framework  について

自己紹介

Page 3: Genius Framework  について

seagirl という名前でブログをやっています。

http://blog.s2factory.co.jp/yoshizu/

Page 4: Genius Framework  について

Agenda

•Genius Framework とは

•開発動機

•Genius のアーキテクチャ

•Genius の便利なコマンド

Page 5: Genius Framework  について

1. Genius Framework とは

Page 6: Genius Framework  について

Flex アプリケーションの開発( mx パッケージのライブラリと mxmlc コンパイラを使った開発)における、アーキテクチャレイヤのフレームワーク

Page 7: Genius Framework  について

??

Page 8: Genius Framework  について

長い!

Page 9: Genius Framework  について

よくわかんない!

Page 10: Genius Framework  について

と言われる… orz

→ もうちょっと簡潔に

Page 11: Genius Framework  について

プログラムをどうやって分けるかプログラムをどこに書くか

Page 12: Genius Framework  について

ということを決めたルールのようなもの

→ アーキテクチャ

Page 13: Genius Framework  について

Genius はアーキテクチャを

提案するもの

Page 14: Genius Framework  について

ルールに従うことで、色々幸せになれる

•仕様変更に強い

•複数人数で開発しやすい

•余計なことで悩まない

Page 15: Genius Framework  について

2. 開発動機

Page 16: Genius Framework  について

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>

Page 17: Genius Framework  について

MXML を使えば簡単にWeb アプリが作れる!!

→ おお 素晴らしい!!

Page 18: Genius Framework  について

だけど、こんな感じに書いていって、本当にちゃんとしたアプリケーションが作れるの?

Page 19: Genius Framework  について

ぐちゃぐちゃ

Page 20: Genius Framework  について

あっという間に数千行のスパゲッティなコードになるので、おすすめ出来ない。

Page 21: Genius Framework  について

プログラムを整理したい

Page 22: Genius Framework  について

フレームワークが必要

Page 23: Genius Framework  について

Cairngorm

•Adobe 公式

•ケアンゴームと読む

•ほぼアーキテクチャのみ

Page 24: Genius Framework  について

Cairngorm のアーキテクチャを構成する登場人物

ServiceServiceLocatorDelegateCommandResponderEvent

EventDispatcherFrontControllerModelLocatorViewViewHelperViewLocatorValueObject

Page 25: Genius Framework  について

複雑すぎる!分割が細かすぎる!めんどくさい!楽になってない!

Page 26: Genius Framework  について

ちょっとした機能を追加するだけなに、5 個も 6 個もクラスを作らなければならない。

Page 27: Genius Framework  について

うんざり

Page 28: Genius Framework  について

作ろう

Page 29: Genius Framework  について

3. Genius のアーキテクチャ

Page 30: Genius Framework  について

Model

Thread

View

Page 31: Genius Framework  について

シンプル!

Page 32: Genius Framework  について

Model

•データの保持

•データの処理

Page 33: Genius Framework  について

View

•プレゼンテーションロジック( AS )

•UI 定義( MXML )

Page 34: Genius Framework  について

ViewBase (AS)ViewBase (AS)

The Flex Code-Behind Pattern

View (MXML)View (MXML)

書いているとき 動いているとき

View View インスタンスインスタンス

Page 36: Genius Framework  について

Thread

•コントローラ層( ユーザーイベントのハンドリングやモデルの操作など)

•サービス層( 外部サービスとのやりとり)

Page 37: Genius Framework  について

http://www.libspark.org/wiki/Thread

詳細

Page 38: Genius Framework  について

耐久性

クラスファイル 300 個くらいの実案件で使っています。

Page 39: Genius Framework  について

4. Genius の便利なコマンド

Page 40: Genius Framework  について

プロジェクトや各クラスの作成はコマンドで一発!

Page 41: Genius Framework  について

コマンド名 目的

genius プロジェクトのスケルトンを作成

generate Model, View, Thread 各クラスのスケルトンを作成

Page 42: Genius Framework  について

% ./genius -n HelloSample -p jp.seagirl.sample -o ~/Desktopcreated ./application/src/main.mxmlcreated ./application/src/application/core/Application.ascreated ./application/src/application/threads/ChangeStateThread.ascreated ./application/src/application/views/MainBase.ascreated ./application/src/application/views/Main.mxmlcreated ./application/src/application/views/IntroBase.ascreated ./application/src/application/views/Intro.mxml

genius コマンド

Page 43: Genius Framework  について

% ./generate UserModelcreated ./../src/application/models/UserModel.asdone.

generate コマンド

Page 44: Genius Framework  について

便利!

Page 45: Genius Framework  について

ただし、

Page 46: Genius Framework  について

シェル環境が必要•Mac OS X →

Terminal.app

•Windows → Cygwin など

Page 47: Genius Framework  について

Demo

Page 48: Genius Framework  について
Page 49: Genius Framework  について

Genius Framework 1.5

本日正式リリース(安定板)

http://www.libspark.org/browser/as3/GeniusFramework/tags/v1.5

Page 50: Genius Framework  について

参考資料

プロジェクトホーム http://www.libspark.org/wiki/seagirl/genius

開発者のブログ  http://blog.s2factory.co.jp/yoshizu/

Page 51: Genius Framework  について

ご清聴ありがとうございました