必要条件

この記事に必要な予備知識

特にありません。プログラミングやWebアプリケーション開発の知識も必要ありません。

ユーザーレベル

初級

はじめに

AIRプログラミングに関する基本知識から開発方法の基礎を習得していただくことを目的とする連載です。対象とする読者は次のような方です。

  • デザイナーでAIRによるデスクトップRIAの概要や開発方法を知りたい方
  • Visual Basic、Visual C#、Visual C++、Delphiなどのデスクトップアプリケーション開発者で、AIRアプリケーション開発に関心がある方
  • FlashやDreamweaverでサイト構築をしている方でAIRアプリケーション開発に関心がある方

この連載ではプログラミングの経験を問わず、RIA、デスクトップRIAの概念、AIRの基本を理解したうえで、シンプルなAIRアプリケーションを作成できることを目標とします。

本連載の他にも「Flex/AIR無償ハンズオンセミナー」を定期開催(2009年5月~2009年10月)しております。インタラクティブな環境で学習されたい方は、是非お申し込みください。

第1回目はRIA(Rich Internet Application)、デスクトップRIAの基本概念、および既存のデスクトップアプリケーション開発に比べ、どの点でAIRが優れているかをご紹介します。

学習できること

AIR-名前の由来と基本概念

AIRはWindowsやMac、LinuxなどのOSで動作するアプリケーションを作成し、配布して使ってもらうために必要な環境や開発ツールなどの「道具」すべてを提供するインフラです。今回は、特に初めてAIRに触れる方や、興味を持っているが、まだ理解できていない、よくわからないという方のために、概要と特徴をご紹介します。まず前提となるキーワードを元にして、AIRをご紹介します。

I.AIR-名前の由来と概要

AIRはAdobe Integrated Runtimeの略称です。次のような定義です。

The Adobe Integrated Runtime (AIR)

  1. : is a corss-operating system runtime
  2. : allows Rich Internet Applications (RIAs) to run as desktop applications
  3. : leverages existing web development skills to build desktop software

日本語では次のようになります。

アドビ統合ランタイム(AIR)は、

  1. :クロスオペレーティングシステムのランタイムです
  2. :リッチインターネットアプリケーション(RIA)をデスクトップアプリケーションとして実行できるようにします
  3. :デスクトップアプリケーションを作成するのに、得意のWeb開発スキルを活用できる環境を提供します

ここで次のようなキーワードが出てきました。これらの理解することでAIRの概要を把握できます。

  • クロスオペレーティングシステム
  • ランタイム
  • リッチインターネットアプリケーション(RIA)
  • デスクトップアプリケーション

ランタイム[Runtime]

ランタイムは日本語では「実行環境」と訳し、アプリケーション本体を稼動させるために必要なプログラムを意味します。AIRランタイムにはFlash Playerが組みこまれています。AIRランタイムはAIRアプリケーションをインストールして実行する前にセットアップしておく必要があります。Adobeサイトから無償でダウンロードできます。実際には、AIRランタイム(runtime)は、AIRアプリケーションが実行するための環境を提供するプログラムです。この「ランタイム」がAIRを理解するためのキーワードになります。

AIR定義1.に「クロスオペレーティングシステムのランタイム」ということがありますが、「ランタイム」はAIRアプリケーションを実行するための土台として働くプログラムです。つまり、AIRアプリケーションはランタイムという補助的なプログラムの助けを借りて動作します。

実際には、ランタイムはAIRアプリケーションをインストールするための環境を提供し、次の図のように、実行時にはOSとAIRアプリケーションの間で働きます。

クロス・オペレーティング・システム[Cross-Operating System]

クロス・オペレーティング・システムは、「同じアプリケーションが異なるOSで動作する」ことを意味します。AIRアプリケーションは「Windowsバージョン」「Macバージョン」「Linuxバージョン」というような、OS別の異なるバージョンを作る必要がなく、一度作った作品はそのまま異なる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上で動作することを表しています。

II.RIAとデスクトップアプリケーションを理解する

AIRは、リッチインターネットアプリケーション(RIA)をデスクトップアプリケーションとして実行する環境です。RIAという言葉の意味とあわせて、この概念を理解しましょう。

リッチインターネットアプリケーション(RIA)

RIAとは、統合前のMacromediaが2002年に提唱した概念で、現在ではFlashに代表されるGUIベースの高度なユーザ体験をもたらすインターネットアプリケーションを意味します。

一般的な特徴として、RIAはWebアプリケーションであるため、ブラウザ上で実行されます。そのため、通常Webサーバに接続してコンテンツをダウンロード/アップロードします。したがって、RIAコンテンツを実行する場合、インターネットエクスプローラ(IE)やFireFox、Safariなどのブラウザが使用されます。(ただし、インフラによってはブラウザ不要の実行形態をサポートするものもあります。)

RIAとしてのAIR

AIRの定義2.は、「リッチインターネットアプリケーション(RIA)をデスクトップアプリケーションとして実行させることができる」ということでした。ここで「デスクトップアプリケーション」とあえて宣言するのは、「ブラウザ上で実行しない」という意味です。

RIAの特徴をまとめると、次のような機能を持つアプリケーションということになります。

  • HTMLベースではなく、Flashコンテンツと同様のGUIベースである
  • ページ更新を行うためにWebサーバにアクセスしなくてもよい
  • サーバからデータを取得する場合、必要なデータのみを取得でき、ページ全体を更新する必要がない

つまり、RIAとは「GUIベースの美しいレイアウトによる、ユーザフレンドリーかつ高機能、高パフォーマンスなWebアプリケーション」です。技術的には次のような定義になります。

  • GUIによる高い操作性や視認性(リッチなユーザーインタフェースと表現力を提供)
  • クライアントマシンで多くの処理を行うので、サーバの負荷が軽い
  • ネットワークの負荷が軽い

ちなみに、RIAのようにクライアント側で多くの処理を行う形態を「Fat Client」、逆にサーバ側で多くの処理を行う形態を「Thin Client」と呼びます。Fat Clientが発展してきた背景には、パソコンの基本性能が大きく向上したことが挙げられます。

デスクトップRIA-AIRの場合

AIRの場合RIAでもあり、同時に「デスクトップアプリケーション」でもあります。これは、AIRが次のような特徴を持つことをさします。

  • デフォルトでWebサーバにアクセスする機能を持つインターネットアプリケーションである
  • 実行にブラウザは必要なく、OSにインストールされたアプリケーションとして動作する

実際には、AIRアプリケーションには上記の基本機能だけでなく、その他の多くの優れた機能を持たせることができます。それらの一部を本連載の後半でご紹介いたします。

Web開発経験者がすぐに取り掛かれる-AIRアプリケーションの作成方法

I.得意のWeb開発スキルを活用できる

Adobeは次のようなオプションにより、多くのWeb関連技術者や製作者がAIRアプリケーションを開発しやすい仕組みを提供しています。

  • Ajaxを使用してAIRアプリケーションを作成できる
  • Flashオーサリングツールを使用してAIRアプリケーションを作成できる
  • Flex Builderを使用してAIRアプリケーションを作成できる

これらの豊富な開発の選択肢が、冒頭で述べたAIR定義3「デスクトップソフトを作成するのに習得済みのWeb開発スキルを活用できます」に該当します。

つまり、Ajaxアプリケーション開発者、Flashコンテンツ開発者、Flex開発経験者のいずれもすぐにAIR開発に入れるわけです。

II. AIRとFlex開発方法の比較

次に、AIRとFlexの開発方法や開発時の共通点、および違いを比較します。Flex経験者の方や、興味がある方は参考にしてください。

AIRは開発環境の選択肢が多い

すでに見たように、AIRは「デスクトップRIA」の実行環境と開発インフラです。作成する人のスキルごとに作成方法が選択できます。Adobe製品を利用して具体的には次のような充実した環境が提供されています。

  • Dreamweaverを使用してHTML/Ajaxベースのアプリケーションとインストーラの作成が行える。
  • Flash オーサリングツールを使用してAIRアプリケーションとインストーラの作成が行える。
  • Flexコンパイラを使用してAIRアプリケーションをビルドできる。この場合、MXMLを使用してレイアウトを効率よく作成でき、Flex Builderでマウス操作による直感的な画面作成やテストも行える。

一方、Flexアプリケーションの開発では、Flex Builderが主な開発ツールとなり、AjaxやFlashオーサリングツールによるFlexアプリケーション開発はできません。

Flex BuilderによるAIR開発手順

Flex Builderを使用する場合、AIRアプリケーションとFlexアプリケーションの開発方法は大変近いものになります。

次の図はFlex Builder 3のプロジェクト(アプリケーションを作成する前に作成する管理単位)作成画面ですが、「アプリケーションの種類」という次のような選択欄があります。

  • Webアプリケーション(Flash Playerで実行)
  • デスクトップアプリケーション(Adobe AIRで実行)

前者がFlexアプリケーションで、後者がAIRアプリケーションになります。どちらを選択しても共通の開発方法と開発言語により、アプリケーションを作成できます。このように、AIRとFlexはどちらもFlex Builderで開発し、テストを行うことができます。

共通のFlexコンパイラが使用される

その他の大きな共通点として、AIR、FlexどちらもFlexコンパイラが使用されます。これはコマンドラインによる作成時もFlex Builderによる作成時も同様です。Flex

最後に

今回はRIAの基本概念、デスクトップRIAというAIRの特徴とアドバンテージをご紹介しました。AIRはデスクトップRIAであるため、Webサーバを構築しなくても手軽にパソコン上に環境を構築してアプリケーションを動かすことができます。次回はAIRアプリケーションの実行と開発を行うために必要な環境の作成方法をご紹介いたします。

次回のトピック