【コラム】

OS X ハッキング!

219 噂の「Apollo」でSafariを発見

    海上忍  [2007/03/23]

    ついにApple TVが出荷開始!!ということで、iTunes 7.1へのバージョンアップなど準備に怠りなきよう。弊誌ではレビューを予定しているので、"チャンネルはそのまま"ということでどうかひとつ。

    さて、今回は「Apollo」について。FlashにFlex、PDFにHTMLそしてJavaScriptなど、Web上にリッチなアプリケーション環境を実現する機能を1セットにした、Adobe肝入りの技術だ。先日α版がAdobe Labs公開されたため、そのサンプルアプリを利用してApolloのあれやこれやを紹介してみよう。

    Apolloの特徴をかいつまんで

    Apolloの特徴を一言でいうと、"WebとFlashとPDFの融合形"。従来、FlashとPDFはWebブラウザのアドオン機能として、そのプラットフォームに乗る格好で実行 / 表示されていたが、Webブラウザの処理系を内包するApolloでは、外部のWebブラウザを必要としない。Apollo用文書は独立したアプリケーションとして実行できるので、Apolloランタイムさえインストールされていれば、Webブラウザやプラグインの有無を気にする必要がない。

    Apolloランタイムに含まれるアプリケーション用の処理系には、Flex 2とJavaScriptが用意されている。つまりApolloでは、FlashベースとAjaxベースの2種類のWebアプリケーションが実行できるのだ。ランタイムはOS XとWindows、Linuxに向けて提供されるため、いわゆるクロスプラットフォーム環境で実行できる利点もある。開発にはFlex Builder 2のほか、いまや業界標準のIDEとして認知されているEclipseも利用できるので、デベロッパ層の厚み=アプリケーションの増加も期待できる。

    Apolloアプリケーションの仕組み

    Apolloアプリケーションを試す

    Adobe Labsのサイトで配布されているサンプルのApolloアプリケーションは、Google Mapsとローカルの電子名刺データ(VCF)の連携による道案内を行う「Maptacular」、ApolloのWebブラウザとしての機能を試すことができる「Scout」など数種類。いずれも拡張子が「.air」の書類を実行、ローカルにインストールする形で動作する。

    ちなみにこのair書類、Apolloアプリケーションとして動作するファイルの数々をZIPで固めたもの。それがOS Xにインストールするとバンドル(*.app)に、Windowsにインストールすると*.exeに"見える"のだ。中身はFLASH(*.swf)などプラットフォーム非依存の書類だが、JavaのようにVMの存在がむき出しになってしまう実行環境と比べると、外枠の存在を感じさせない分スマートといえる。日本語を扱えないなどクリアされるべき課題は多いが、プラットフォームに依存しない"小物アプリ"の充実に一役買うことは確実だろう。

    air書類の内容をunzipで表示したところ

    Windowsにインストールすると、このように*.exeへ早変わり

    Webブラウザとしての機能はSafariと同等?

    Apolloのランタイムは、OS Xの場合/Library/Frameworksに「Adobe Apollo.framework」としてインストールされる。その内部にはさらにいくつかのフレームワークが配置され、その名も「ApolloWebKit.framework」に「WebCore.framework」、そして「JavaScriptCore.framework」。WebCore.frameworkに含まれるInfo.Plistを調べると、CFBundleIdentifierに「com.apple.WebCire」、CFBundleGetInfoStringに「Apple Computer, Inc.」とあることから、Safariと同じWebCoreの技術が利用されていることは確実だ。

    ブラウザとして機能するサンプルアプリの「Scout」でUser Agentを調べてみると、

    「Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Safari/419.3 Apollo/1.0.Alpha1」

    とのこと。Safariの現行バージョン(v2.0.4)では、

    「Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-jp) AppleWebKit/419 (KHTML, like Gecko) Safari/419.3」

    と表示されることから、最新のコードベースをもとに拡張を加えているものと思われる。

    一方のWindowsだが、Program Files\Common Files\Adobe Apolloフォルダ以下の内容を調べたところ、ApolloWebKit.dllなるライブラリを発見。マルチプラットフォーム対応をうたうApolloのこと、コードベースが同じことは予想通りだが、Windows版Safariは未発表 -- コミュニティベースのSwiftはあるが -- ということを考えると興味深い。こちらのUser Agentも、Windowsである点を除けばOS Xと同じ(AppleWebKit/420+、Safari/419.3)。User AgentがSafariすなわちMacユーザという図式は、Apolloの登場で変わるかも?

    Apolloアプリの「Scout」を利用し、User Agentを表示したところ。最新のSafariとコードベースはほぼ同じだ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン