Getting started with XULRunner

by 3 contributors:

この記事は、XULRunner を使った 基本的なデスクトップアプリケーションを作成することで、Mozilla プラットフォームを体験します。Firefox、Thunderbird、他の複数のアプリケーションがこのプラットフォームを使って実装されていることを考えれば、基本的なアプリケーションを作成するためにこのプラットフォームを使うのは、安全な選択です。

XUL ベースのデスクトップアプリケーションを作成したいならば、恐らく、XULRunner をインストールする必要があるでしょう。XULRunner をインストールすることから始めましょう。それから、ベアボーンアプリケーションが実行されることを確認します。

Step 1: XULRunner のダウンロード

MDC の XULRunner のメインページでダウンロードリンクを見つけることができます。

Windows 用の XULRunner のダウンロードは zip ファイルで、本当のインストールではありません。開発者の一人として、私は XULRunner はマシンに解凍するだけで十分だと考ています。Windows システムへフックする必要はないと思います。

XULRunner の Mac バージョンは、標準的な Mac OS X インストーラ形式で配布されています。

Step 2: XULRunner のインストール

Windows では、zip アーカイブを手頃な場所に解凍してください。私は新規フォルダ <tt>C:\program files\xulrunner</tt> に解凍しました。簡単です。Mac では、単にインストーラを実行するだけです。<tt>/Library/Frameworks</tt> ディレクトリ内に <tt>XUL.Framework</tt> として XULRunner がインストールされます。

最初に、簡単なベアボーンアプリケーションシェルから始めます。これを XUL "Hello World" と呼んでもよいでしょう。Google は、Ryan による素晴らしいチュートリアル【訳注: 英語】 を探してきました。これは間違いなく読む価値があります。そのチュートリアルを使って、私は簡単なブートストラップアプリケーションを作りました。あなたが以下で読むことの全ては、Ryan のチュートリアルと MDC の XULRunner 関連文書にあります。

Step 3: アプリケーションフォルダ構造を作成する

Windows 上で、私は新規フォルダ <tt>c:\program files\myapp</tt> をルートとして作成しましたが、あなたの好きな場所に作成してかまいません。サブフォルダの構造は以下です。:

/myapp
  /chrome
    /content
      main.xul
    chrome.manifest
  /defaults
    /preferences
      prefs.js
  application.ini

フォルダ構造内に 4 つのファイルがあることに注意してください。: <tt>application.ini</tt>、<tt>chrome.manifest</tt>、<tt>prefs.js</tt>、そして、<tt>main.xul</tt>。

Step 4: <tt>application.ini のセットアップ</tt>

<tt>application.ini</tt> ファイルは、あなたのアプリケーションを動作させるための XULRunner エントリーポイントとしての働きを持ちます。あなたのアプリケーションがどのように XULRunner プラットフォームを使うことを意図しているか、そして、XULRunner があなたのアプリケーションを実行するために用いるいくつかの情報の構成を指定します。:

[App]
Vendor=Finkle
Name=Test App
Version=1.0
BuildID=20060101
Copyright=Copyright (c) 2006 Mark Finkle
ID=xulapp@starkravingfinkle.org

[Gecko]
MinVersion=1.8
MaxVersion=1.9.0.*

本当ではありません... <tt>application.ini</tt> ファイルについてのさらなる情報は、[XULRunner:Deploying XULRunner 1.8]] の記事で見つけることができます。

注意: この 2006 年のサンプルを 2007 年のナイトリー trunk の XULRunner ビルドで動かすには、MaxVersion を 1.9 に変更してください。

Step 5: chrome マニフェスト のセットアップ

chrome マニフェストファイルは、XULRunner がアプリケーションリソースを配置するために使われる特定の URI を定義するために使われます。これは、“chrome://” URI がどのように使われるかを理解することで、より明確になるでしょう。アプリケーション chrome は、単一あるいはわずかな複数の JAR ファイル、もしくは、 圧縮されていないフォルダとファイル内にあります。私は今は圧縮されていない方法を使っています。以下が、私のマニフェストです。:

 content myapp file:content/
注意: アプリケーション名は小文字で、3 文字より長くなければなりません。

Step 6: 設定のセットアップ

<tt>prefs.js</tt> ファイルは、XULRunner にメインウィンドウとして使われる XUL ファイルの名前を伝えます。以下が私のファイルです。:

 pref("toolkit.defaultChromeURI", "chrome://myapp/content/main.xul");

XULRunner の設定は以下を含みます。:

toolkit.defaultChromeURI
アプリケーションが実行されるときに開くデフォルトのウィンドウを指定します。
toolkit.defaultChromeFeatures
window.open() が渡されると、メインアプリケーションウィンドウが開かれますが、そのときのウィンドウの特性を指定します。
toolkit.singletonWindowType
一度に一つのインスタンスだけしか許可しないように、アプリケーションの構成を設定します。

これらは、XULRunner:Specifying Startup Chrome Window でさらに詳しく説明されています。

Step 7: XUL の作成

最後に、単純な XUL ウィンドウを作成しなければなりません。それは、<tt>main.xul</tt> ファイル内に記述されます。以下は、装飾の全くない、まさに最小の内容です。メニューも何もありません。:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="main" title="My App" width="300" height="300"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <caption label="Hello World"/>
</window>
注意: XML/XUL ファイルの最初に余計な空白があってはいけません。

Step 8: アプリケーションの実行

ついにこのときが来ました。ベアボーンアプリケーションを実行するためには、XULRunner を手に入れる必要があります。Windows コマンドプロンプトから、<tt>C:\program files\myapp</tt> フォルダを開き、以下を実行してください。:

 xulrunner.exe application.ini

もちろん、xulrunner.exe が、PATH に含まれていなければなりません。含まれていない場合、私が XULRunner を解凍した場所と同じならば、以下を実行することもできます。:

 ..\xulrunner\xulrunner.exe application.ini

Mac では、 Terminal ウィンドウを開き、<tt>myapp</tt> ディレクトリに移動し、以下を入力することによって、アプリケーションを実行できます。:

 /Library/Frameworks/XUL.framework/xulrunner-bin application.ini

今、あなたはこのように見えるウィンドウを見るはずです。このスクリーンショットは、Windows 2000 の場合です。

Image:XULSampleMyapp.png

別の方法: XUL アプリを実行するために Firefox3 の -app オプションを使う

Firefox 3 では、 コマンドラインから Firefox に 通常起動時の Firefox ブラウザの代わりに XUL アプリケーションを実行させるように指示することができます。バグ 388833 を参照してください。

サンプルプロジェクトをダウンロードできます。

Original Document Information

  • Author: Mark Finkle
  • Last Updated Date: October 2, 2006

ドキュメントのタグと貢献者

タグ: 
Contributors to this page: ethertank, Potappo, Mgjbot
最終更新者: ethertank,