Flex/AIR開発でデザイナとの
協業を楽にする「yui」
特集:デザイナとプログラマを“結”ぶオープンソース(前編)
クラスメソッド株式会社
渡邊 佳一
2008/10/1
RIA開発におけるデザイナとプログラマの協業問題
- - PR -
昨今、Web開発では高品質なアプリケーションを短期間で開発することが求められるようになっています。またRIA開発においては、昔のWeb開発のようにプログラマが主となる状況ではなく、そのアプリケーションの性質上、デザイナの役割が重要になってきます。
これらはさらにWeb開発を難しいものにしています。デザインはプログラマにとって敷居が高く、一朝一夕で身に付くものではありません。しかも状況に輪を掛けるかのように、RIAに期待を持ったクライアントの仕様は膨らむばかりです。
それから、RIA開発においては「デザイナとプログラマの協業」というものが叫ばれてきました。「デザインとプログラマがお互いに自分の得意分野を出し合って、開発することでより高品質なアプリケーションが開発できるようになる」というものです。しかし現実問題として、なかなかデザイナとプログラマの協業は一筋縄でいくものではありませんでした。
そんな中、「開発をシンプルに楽しく」というモットーを掲げて
「yui-frameworks」(以下、yui)の開発は始まりました。Adobe Flex/Adobe AIR(以下、Flex/AIR)開発における「デザイナとプログラマの協業」を実現するオープンソースのフレームワークとして、2007年7月7日にAlpha版がリリースされました。
yuiは、クライアントサイドにおけるMVCを実現することで、役割を明確にしてデザイナとプログラマのお互いが依存しないような仕組みを作りました。しかも、単純にデザイナとプログラマが依存しないだけでなく、アプリケーションの拡張性や保守性なども考慮して作成されています。
そんなyuiが2008年9月16日にBeta版としてリリースされました。Alpha版に比べ、さらにさまざまな機能を取り入れ、より開発をシンプルにし、完全なデザイナとプログラマの分業に近付いています。本記事では、Flex 3/AIR開発においての問題であるデザイナとプログラマの協業を可能にし、デファクトスタンダードのフレームワークとなり得るyuiについて、皆さんに紹介したいと思います。
コラム 「Flexのフレームワークといえば“Cairngorm”ってなかったっけ?」 |
| 2008年10月現在、Flex 3/AIR開発時に採用するフレームワークとして一番存在を知られているのは、「Cairngorm Framework」(以下、Cairngorm)でしょう。筆者は現在Flex技術のコンサルティングサービスを主な業務としていますが、その経験の中で顧客に採用するフレームワークを聞くと、最初に声が上がるのがCairngormになります。 しかし、Cairngormは1つのプロセスを実現するために、最低でも3つ以上のクラスを記述しなければならないなど、「開発の効率化において満足を得られるものではない」と筆者は感じています。筆者の携わる開発現場においても、積極的にCairngormを採用したことはなく、独自のフレームワークを作成し採用していました。いまのところは、「公のFlex 3/AIR開発の現場ではデファクトスタンダードとなるフレームワークは存在していない」といえるでしょう。 Cairngormの詳細は以下の記事をご参照ください。 |
「yui-frameworks」って、どんなもの?
例に倣っていうと、yuiは「Flex/AIR開発におけるプレゼンテーションレイヤのオブジェクト指向フレームワーク」です。Flex/AIR関連のフレームワークやライブラリをSeasar2ファミリーと連携させるためのSuiteプロジェクトである「akabana」で開発されています。
yuiを使用することによって、プレゼンテーションレイヤの役割を明確化し、デザイナとプログラマの協業を可能にします。では、具体的にはほかのフレームワークとどう違うのか、まずyuiのアーキテクチャについて解説したいと思います。
■ yuiのアーキテクチャ
yuiでは、アーキテクチャのレイヤを以下のように定義しています。
![]() |
| 図1 yuiのアーキテクチャ |
- View
MXMLコントロールの配置など、画面レイアウトを定義 - Action
Viewが送出するイベントに対応したイベントハンドラを定義 - Logic
外部インターフェイス呼び出しに対する処理やビジネスロジックなどを行う - Service
外部インターフェイスを定義 - Helper
Viewに表示するデータの適用やViewの振る舞いに対する処理を行う
Flex/AIRを利用して開発するRIAのクライアントで行うロジックには3つの種類があります。仕様に特化した「ビジネスロジック」、データを加工する「データロジック」、動的なユーザーインターフェイス(以下、UI)を構成する「ビューロジック」の3つです。
Alpha版のyuiはシンプルな「Logic」「View」「Mode」といった役割で構成されていました。先ほどの3つのロジックの分類でいうと、Logicがビューロジック、ビジネスロジックといった2つの役割を担っており、コード量が膨大になる傾向にありました。
Beta版では、Viewに依存する部分を「Helper」として切り出し、イベントのハンドリングを行う「Action」というレイヤを作りました。こうすることで各レイヤオブジェクトに明確な役割が与えられ、シンプルでテストがしやすくなっています。
次ページでは、引き続きyuiの概要や、“7”つのライブラリ、“3”つの思想、“5”大機能について解説していきます。
コラム 「Flexであまり考慮されない“テストのしやすさ”」 |
| この「テストのしやすさ」というのはこれまでのFlexフレームワークにはあまり考慮されていなかった部分です。アドビシステムズからFlex用のテスティングフレームワークとして「Automation API」なども提供されていますが、敷居が高くなかなか浸透していないのが現状です。 |
| 1-2-3 |
| INDEX | ||
| 特集:デザイナとプログラマを“結”ぶオープンソース(前編) Flex/AIR開発でデザイナとの協業を楽にする「yui」 |
||
| Page1 RIA開発におけるデザイナとプログラマの協業問題 コラム 「Flexのフレームワークといえば“Cairngorm”ってなかったっけ?」 「yui-frameworks」って、どんなもの? コラム 「Flexであまり考慮されない“テストのしやすさ”」 |
||
| Page2 コラム 「yuiを理解するのに必要な3つの設計思想、CoC・DI・POJOとは?」 分業を楽にするyuiの“5”大機能 |
||
| Page3 yui(結)でデザイナとプログラマを“結”び付けよう |
||
デザイナとプログラマを“結”ぶオープンソース バックナンバー
- 第1回 Flex/AIR開発でデザイナとの協業を楽にする「yui」
- 最終回 yuiを使ったFlexアプリを作って、便利さを体感しよう
ホワイトペーパー(TechTargetジャパン)
- 画像を美しく魅せる効果を加えるjQueryプラグイン3選 (2010/3/17)
2つ重ねて比較するBefore/After、部分ごとに切り替えるpanelGallery、ズーム/カーテンなどができるcycle - 現場の無駄な流血を止めるための「プロトタイプ」とは (2010/3/12)
サイトやWebアプリ/RIAの設計やデザインを効率良く進めるには、プロジェクト関係者の想定を一致させていくことが大事だが… - Flashを閃光のごとく高速化するための基礎知識 (2010/3/9)
Flash高速化のための基礎知識や実践的テクニックを紹介する連載。初回は“処理負荷”を調べる具体的な方法を解説します - Windows 7でどんだけ“おばか”なアプリが作れるの? (2010/3/4)
おばかの発想の源やアプリの作り方などについて、おばかアプリ選手権の歴戦の受賞者や、マイクロソフトの代表者に話を伺った。アイデアのご参考に
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |









