13 May 2009
ページ ツール |
特にありません。プログラミングやWebアプリケーション開発の知識も必要ありません。
初級
AIRプログラミングに関する基本知識から開発方法の基礎を習得していただくことを目的とする連載です。対象とする読者は次のような方です。
この連載ではプログラミングの経験を問わず、RIA、デスクトップRIAの概念、AIRの基本を理解したうえで、シンプルなAIRアプリケーションを作成できることを目標とします。
本連載の他にも「Flex/AIR無償ハンズオンセミナー」を定期開催(2009年5月~2009年10月)しております。インタラクティブな環境で学習されたい方は、是非お申し込みください。
第1回目はRIA(Rich Internet Application)、デスクトップRIAの基本概念、および既存のデスクトップアプリケーション開発に比べ、どの点でAIRが優れているかをご紹介します。
AIRはWindowsやMac、LinuxなどのOSで動作するアプリケーションを作成し、配布して使ってもらうために必要な環境や開発ツールなどの「道具」すべてを提供するインフラです。今回は、特に初めてAIRに触れる方や、興味を持っているが、まだ理解できていない、よくわからないという方のために、概要と特徴をご紹介します。まず前提となるキーワードを元にして、AIRをご紹介します。
AIRはAdobe Integrated Runtimeの略称です。次のような定義です。
The Adobe Integrated Runtime (AIR)
日本語では次のようになります。
アドビ統合ランタイム(AIR)は、
ここで次のようなキーワードが出てきました。これらの理解することでAIRの概要を把握できます。
ランタイムは日本語では「実行環境」と訳し、アプリケーション本体を稼動させるために必要なプログラムを意味します。AIRランタイムにはFlash Playerが組みこまれています。AIRランタイムはAIRアプリケーションをインストールして実行する前にセットアップしておく必要があります。Adobeサイトから無償でダウンロードできます。実際には、AIRランタイム(runtime)は、AIRアプリケーションが実行するための環境を提供するプログラムです。この「ランタイム」がAIRを理解するためのキーワードになります。
AIR定義1.に「クロスオペレーティングシステムのランタイム」ということがありますが、「ランタイム」はAIRアプリケーションを実行するための土台として働くプログラムです。つまり、AIRアプリケーションはランタイムという補助的なプログラムの助けを借りて動作します。
実際には、ランタイムはAIRアプリケーションをインストールするための環境を提供し、次の図のように、実行時にはOSとAIRアプリケーションの間で働きます。
クロス・オペレーティング・システムは、「同じアプリケーションが異なるOSで動作する」ことを意味します。AIRアプリケーションは「Windowsバージョン」「Macバージョン」「Linuxバージョン」というような、OS別の異なるバージョンを作る必要がなく、一度作った作品はそのまま異なるOS上で動作します。
なぜこのような2重構成になったかを理解するために、「クロスオペレーティングシステム」(以下「クロスOS」と記述します)を実現するための仕組みを考えます。これは「同じアプリケーションがそのまま複数(これが「クロス」です)のオペレーティングシステムで「動作する」ということを意味しました。つまり、Windows VistaやWindows XP、Mac OS、LinuxなどのOSで、同じAIRアプリケーションをインストールして使用できることを意味します。
通常OSが異なると、アプリケーションの実行ファイルやインストーラはそのOSに合わせて構築しなおす必要があります。これば例えば FlashやDreamweaverにWindows版とMac版があり、Windows版はMac OS上では動かないことからもわかります。
クロスOSを実現するために、ランタイムがその役割を果たします。AIRアプリケーションがWindows、Mac OS、Linuxで動作するのは、Windows用、Mac用、Linux用のランタイムが用意されているためです。つまり、AIRアプリケーションは、Windowsマシンでは「Windows用のランタイム」、Macマシンでは「Mac OS用のランタイム」、Linuxマシンでは「Linux用のランタイム」がインストールされていれば、動きます。Windows用やMac OS用のAIRランタイムにより、一度作成したAIRアプリケーションは作り直すことなくクロスOSで動作するのです。
詳細は異なりますが、AIRランタイムと同じようなクロスOSを実現する類似の形態として、Javaバーチャルマシン(VM)や、.NET Framework実行環境があります。
次の図は、同じAIRアプリケーションがWindows、Mac OSおよびLinux上で動作することを表しています。
AIRは、リッチインターネットアプリケーション(RIA)をデスクトップアプリケーションとして実行する環境です。RIAという言葉の意味とあわせて、この概念を理解しましょう。
RIAとは、統合前のMacromediaが2002年に提唱した概念で、現在ではFlashに代表されるGUIベースの高度なユーザ体験をもたらすインターネットアプリケーションを意味します。
一般的な特徴として、RIAはWebアプリケーションであるため、ブラウザ上で実行されます。そのため、通常Webサーバに接続してコンテンツをダウンロード/アップロードします。したがって、RIAコンテンツを実行する場合、インターネットエクスプローラ(IE)やFireFox、Safariなどのブラウザが使用されます。(ただし、インフラによってはブラウザ不要の実行形態をサポートするものもあります。)
AIRの定義2.は、「リッチインターネットアプリケーション(RIA)をデスクトップアプリケーションとして実行させることができる」ということでした。ここで「デスクトップアプリケーション」とあえて宣言するのは、「ブラウザ上で実行しない」という意味です。
RIAの特徴をまとめると、次のような機能を持つアプリケーションということになります。
つまり、RIAとは「GUIベースの美しいレイアウトによる、ユーザフレンドリーかつ高機能、高パフォーマンスなWebアプリケーション」です。技術的には次のような定義になります。
ちなみに、RIAのようにクライアント側で多くの処理を行う形態を「Fat Client」、逆にサーバ側で多くの処理を行う形態を「Thin Client」と呼びます。Fat Clientが発展してきた背景には、パソコンの基本性能が大きく向上したことが挙げられます。
AIRの場合RIAでもあり、同時に「デスクトップアプリケーション」でもあります。これは、AIRが次のような特徴を持つことをさします。
実際には、AIRアプリケーションには上記の基本機能だけでなく、その他の多くの優れた機能を持たせることができます。それらの一部を本連載の後半でご紹介いたします。
Adobeは次のようなオプションにより、多くのWeb関連技術者や製作者がAIRアプリケーションを開発しやすい仕組みを提供しています。
これらの豊富な開発の選択肢が、冒頭で述べたAIR定義3「デスクトップソフトを作成するのに習得済みのWeb開発スキルを活用できます」に該当します。
つまり、Ajaxアプリケーション開発者、Flashコンテンツ開発者、Flex開発経験者のいずれもすぐにAIR開発に入れるわけです。
次に、AIRとFlexの開発方法や開発時の共通点、および違いを比較します。Flex経験者の方や、興味がある方は参考にしてください。
すでに見たように、AIRは「デスクトップRIA」の実行環境と開発インフラです。作成する人のスキルごとに作成方法が選択できます。Adobe製品を利用して具体的には次のような充実した環境が提供されています。
一方、Flexアプリケーションの開発では、Flex Builderが主な開発ツールとなり、AjaxやFlashオーサリングツールによるFlexアプリケーション開発はできません。
Flex Builderを使用する場合、AIRアプリケーションとFlexアプリケーションの開発方法は大変近いものになります。
次の図はFlex Builder 3のプロジェクト(アプリケーションを作成する前に作成する管理単位)作成画面ですが、「アプリケーションの種類」という次のような選択欄があります。
前者がFlexアプリケーションで、後者がAIRアプリケーションになります。どちらを選択しても共通の開発方法と開発言語により、アプリケーションを作成できます。このように、AIRとFlexはどちらもFlex Builderで開発し、テストを行うことができます。
その他の大きな共通点として、AIR、FlexどちらもFlexコンパイラが使用されます。これはコマンドラインによる作成時もFlex Builderによる作成時も同様です。Flex
今回はRIAの基本概念、デスクトップRIAというAIRの特徴とアドバンテージをご紹介しました。AIRはデスクトップRIAであるため、Webサーバを構築しなくても手軽にパソコン上に環境を構築してアプリケーションを動かすことができます。次回はAIRアプリケーションの実行と開発を行うために必要な環境の作成方法をご紹介いたします。
Tutorials and samples |
AIR blogs |
More |
AIR Cookbooks |
More |
| 01/20/2012 | Skinnable Transform Tool |
|---|---|
| 01/18/2012 | Recording webcam video & audio in a flv file on local drive |
| 12/12/2011 | Date calculations using 'out-of-the-box' functions |
| 11/29/2011 | Button compatibility with NativeComboBox |