
Flex/AIRウィジェットのデザインをCSSでカッコよく
クラスメソッド株式会社
福田 寅成
2008/2/27
編集部注:この連載をより深く理解するためには、連載「Apolloプログラミング入門」&「Apollo改めAIRプログラミング入門」も併せてご覧ください。
ついに正式リリースされたAdobe AIR 1.0
- - PR -
2008年2月25日、ついにAdobe AIR(以下、AIR) 1.0やFlex 3、そしてその開発環境であるFlex Builder 3の正式版がリリースされました(参考「Adobe AIR 1.0がついに公開〜Web技術でデスクトップアプリを開発〜」)。
編集部注:Flex Builder 3とそのインストールについて詳しく知りたい読者は、「Flex/AIRの開発環境Flex Builder 3を使ってみよう」をご覧ください。
AIRウィジェットを実行する環境であるAIRを最新のもの(Adobe AIR 1.0)に更新しておきましょう。「Adobe AIR Download Center(英語)」からインストーラをダウンロードして既存環境に上書きインストールすれば、OKです。
注意! |
| 前回の「いまさら聞けないAdobe AIR「超」入門」では、ベータ3版を扱っていましたが、記事に沿ってアプリケーションをコーディングしていくうえでは問題ありません。しかし、AIRの設定ファイル「SimpleTimer-app.xml」のバージョンが古いので、実行時にエラーが出ます。 すでに作成しているAIRウィジェットをFlex Builder 3上で動かす場合は、SimpleTimer.mxmlの内容を別のファイルなどにコピーしておいて、いったんSimpleTimer.mxmlを削除します。そして、再度Flex Builder 3上でSimpleTimer.mxmlを作成して退避しておいた内容を作成した新しいSimpleTimer.mxmlにペーストします。AIRの設定ファイルは再度自動作成されて最新のものとなります。 |
カッコいいRSSリーダーのウィジェットを作ろう
前回はAIRの開発の基礎を簡単なサンプルウィジェットを通してお届けしました。今回から本格的なAIRウィジェットの開発に移っていきます。本格的な開発の題材として「RSSリーダー」を制作していきたいと思います。まず、今回ウィジェットの見た目(ユーザーインターフェイス)の部分を中心に開発していきます。次回以降、一般的な「RSSリーダー」が行っている処理のいくつかを実装していきます。
■ RSSリーダーの要件の定義
まずは、RSSリーダーの要件を確認しておきます。その前に、今回の記事で作成するRSSリーダーの最終画面イメージを見ておきましょう。
| 今回の見た目だけのRSSリーダーのサンプルをFlexアプリにしたもの(このまま動かせますが、実行にはFlash Playerが必要になります) |
このサンプルを見ながら要件を確認していきます。
- RSS一覧があり、登録されているRSSが一覧できる
- RSS一覧からRSSを1つ選択すると、その記事一覧が表示される
- 記事一覧から1つ記事を選択すると、記事の内容が表示される
- RSSは追加したり削除したりできる
- RSS一覧の情報はローカルに保存されている必要がある
この要件を上記画面で実現していくイメージがわいたでしょうか? 最後はあまり画面には関係ない要件ではありますが。
■ RSSリーダーAIRウィジェット開発の技術要素
次に、この開発で必要な技術要素を列挙してみました。
- 画面のレイアウト
- スタイルシートによるレイアウトとデザインの分離
- 画面とロジックの分離
- RSS取得処理
- RSS(XML)の解析処理
- RSSデータの画面への表示処理
- 購読するRSSの追加、削除処理
- さらに追加機能……
今回の連載では上記技術要素のうち、画面のレイアウトとスタイルシートによるレイアウトとデザインの分離に関してお話していきます。
RSSリーダー用のAIRプロジェクトを新規作成
それでは、ウィジェットの開発を始めましょう。前回セットアップしたFlex Builder 3を起動して、[メニュー]の[ファイル]→[新規]→[Flexプロジェクト]を選択します。プロジェクト名を「RSSReader」にし、アプリケーションの種類から「デスクトップアプリケーション」を選択します。
![]() |
| 図1 [新規 Flexプロジェクト]ダイアログ(一部抜粋) |
前回はここで[次へ]ボタンをクリックせずに、[終了]ボタンをクリックしていたのですが、今回はほかの設定も確認したいので、[次へ]ボタンをクリックすることにします。
■ 出力の設定
すると、出力を設定する画面に遷移します。ここでは、作成したソースをコンパイルするときの出力フォルダを指定しています。デフォルトで「bin-debug」となっています。[このフォルダはプロジェクトフォルダ内に作成されます。]とありますので、プロジェクトフォルダのルート直下に「bin-debug」が作成されることになります。
コラム 「AIR/Flexにおける“コンパイル”とは?」 |
||
「コンパイル」という言葉が初耳の方はいますか? Flex Builder 3上では同じような意味で「ビルド」が用いられています。AIR/Flexでは開発者はソースファイルにテキストベースでコードを記述して開発をしていきますが、実行するためにはソースファイルを「ビルド」することにより、AIR(ランタイム)やFlash Playerが実行可能な形式に変換する必要があります。AIR/Flexではコンパイルされたソースは「SWF」形式のファイルに変換されます。このSWFファイル形式は「Flash動画」のことです。
|
次の設定を確認するために、[次へ]ボタンをクリックします。
■ ソース関連の設定
ここでは、ソースやライブラリに関する設定を行っています。
![]() |
| 図3 ソースに関する設定(一部抜粋) |
図3の[ソースパス]タブではソースの置き場所を設定しています。基本的に下の方にある[メインソースフォルダ]ですべてのソースを管理することが多いです。[メインソースフォルダ]の名前はデフォルトでは「src」です。
[メインアプリケーションファイル]は、AIRは最終的には1個のアプリケーションになりますので、そのアプリケーションを起動したときに最初に呼ばれるファイルを指定しています。デフォルトでは「プロジェクト名.mxml」となっています(ここでは「RSSReader.mxml」)。
AIR/FlexではMXMLファイル1個が1個のアプリケーションに対応しています。そのため、複数のMXMLファイルを作成し、アプリケーションとアプリケーションが連携して1つの大きなアプリケーションとして振る舞うようなアプリケーションを作成可能です。
[アプリケーションID]はアプリケーションを識別するためのIDです。地球上で一意であることが望ましいです。今回は「jp.co.atmarkit.air.RSSReader」としておきます。パッケージ名の命名規則=URLの逆でIDを付けるとよいでしょう。
![]() |
| 図4 ライブラリに関する設定(一部抜粋) |
図4の[ライブラリパス]タブではライブラリの設定を行っています。「ライブラリ」とは再利用可能な状態にまとめたActionScriptのクラス群やMXMLコンポーネント群のことをいいます。形式はさまざまな種類が用意されています。デフォルトでは、「Flex 3」と「libs」フォルダが登録されています。
前者はFlex 3のSDKのライブラリで、Flexの根幹をなしているファイルです。ライブラリの参照パスが「C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0」となっているのが表示されています。この場所にライブラリの実体が格納されています。ライブラリ左の「+」をクリックすると詳細を確認でき、複数のSWCファイルで構成されていることが分かります。SWCファイルはライブラリの形式の1つです。
後者の「libs」フォルダは「プロジェクトで使うライブラリを入れておく場所」を表しています。プロジェクト直下に「libs」フォルダが作成され、そこに独自にSWCファイルを置いておけば、自動的にFlex Builder 3が認識してプロジェクト内でライブラリを参照できるようにしてくれます。
■ 設定のまとめ
ここまでの設定をまとめておきましょう(前回登場の「表2 新規プロジェクト作成で作られたもの」と同じ感じです)。
| 表1 設定まとめ | |||||||||||||||||||||
|
■ プロジェクト作成の実行
![]() |
| 図5 作成されたファイル |
ここまでで設定をすべて確認できましたので、[終了]ボタンをクリックします。
すると、ここまでの設定でプロジェクトが構成され、各種ファイル、フォルダが生成されます。RSSReader-app.xmlも生成されていることが分かります。初期状態のMXMLをコンパイルしたものがbin-debugにも入っていることも分かります。
以上で、プロジェクトの作成が終了しました。
次ページでは、MXMLを使ってRSSリーダーの画面レイアウトを作成し始めます。
| 1-2-3-4 |
| INDEX | ||
| 作って学ぶAIRウィジェットの基礎→応用(2) Flex/AIRウィジェットのデザインをCSSでカッコよく |
||
| Page1 ついに正式リリースされたAdobe AIR 1.0 カッコいいRSSリーダーのウィジェットを作ろう RSSリーダー用のAIRプロジェクトを新規作成 コラム 「AIR/Flexにおける“コンパイル”とは?」 |
||
| Page2 MXMLによる画面レイアウトの作成 |
||
| Page3 コラム 「タグを手繰(たぐ)る“e4X”とは?」 コラム 「一見の価値あり! Flex 2 Style Explorerとは?」 |
||
| Page4 画面デザインをCSSでカッコよく! 誰でも、簡単なAIRウィジェットがサクッと作れますように |
||
作って学ぶAIRウィジェットの基礎→応用 バックナンバー
- 第1回 いまさら聞けないAdobe AIR「超」入門
- 第2回 Flex/AIRウィジェットのデザインをCSSでカッコよく
- 第3回 Flex Builder 3でサクっとActionScriptコーディング!
- 最終回 SQLiteのDB操作を追加してAIRウィジェットを完成
| リッチクライアント&帳票 全記事一覧へ |
ホワイトペーパー(TechTargetジャパン)
- 現場の無駄な流血を止めるための「プロトタイプ」とは (2010/3/12)
サイトやWebアプリ/RIAの設計やデザインを効率良く進めるには、プロジェクト関係者の想定を一致させていくことが大事だが… - Flashを閃光のごとく高速化するための基礎知識 (2010/3/9)
Flash高速化のための基礎知識や実践的テクニックを紹介する連載。初回は“処理負荷”を調べる具体的な方法を解説します - Windows 7でどんだけ“おばか”なアプリが作れるの? (2010/3/4)
おばかの発想の源やアプリの作り方などについて、おばかアプリ選手権の歴戦の受賞者や、マイクロソフトの代表者に話を伺った。アイデアのご参考に - APIでGoogleスプレッドシートの追加/更新/削除 (2010/2/24)
ワークシートの追加・削除、メタ情報の更新、行単位でのデータの追加・更新・削除する方法を徹底解説します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 New! |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |

| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |

| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |
| ◆ | 直属上司が海外にいるのエンジニアに見る 【実例】場所に捉われないワークスタイル |

| ◆ | 「仮想化工房」のマイスターが選んだのは VMware、Hyper-V、そしてVirtageだった! |
| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

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




![図1 [新規 Flexプロジェクト]ダイアログ(一部抜粋)](02.gif)








