XULversity (Beta)《ズールバーシティー・ベータ》

by whitecaps


この文章の目的と対象

このサイトはXULプログラミングを習得するにあたって必要だと思われるサイトの情報を集めたリンク集です。インターネット、Web、HTML、CSS、JavaScript、XML、Firefox、CUI、基礎的な英語についての知識があることが前提となります。

はじめに

XULはFirefoxで知られるMozilla系のブラウザで利用することの出来るインタフェース記述言語です。つまりソフトのGUI部分を作ることが出来ます。また、XULはCSSで見た目を変更したり、JavaScriptでプログラムと連携させることが出来ます。XUL実行環境の力を借りればネイティブコードにアクセスすることさえ可能です。このサイトはXULプログラミングを習得するにあたって必要だと思われるサイトの情報を集めたリンク集です。このサイトの名前はWikipediaの姉妹プロジェクトであるWikiversityから来ています。このコンセプトは一からコンテンツを作るのではなく、現在ネット上にあるリソースをリンク集という形で統合して、皆さんのナビゲーション役となることです。

XULの利点

XULの利点はいくつかありますが、まずその一つにホームページに関する知識や技術を持っている人が、その経験を生かしてプログラム開発できると言うことが挙げられます。先ほど言ったようにXULはCSSやJavaScriptを利用しますので、Webページを作ったことがある人ならその知識が使えるのです。また、XULは実行するのにコンパイルは不要で、XULファイルをブラウザで開けば簡単にテストでき、テキストエディタを使えばコードがそのまま見られます。なのでオープンなプログラム開発に向いています。実行環境は無料で提供されていますし、XULはクロスプラットフォームなので、WindowsでもMac OS XでもLinuxでも動きます。

私が思うXULのいいところ・悪いところ

個人的にXULのいいところを考えてみると、「コードが直感的」ということが言えると思います。私はJavaを勉強したことがあるのですが、あれはボタン一つ追加するのにも「b1 = new Button("OK"); add(b1);」とかいちいちインスタンスを作ってから追加しなければいけないのです。レイアウトするのにも頭の中でそれを想像するのは大変です。たしかにJavaは実際のところ充実した開発環境がありますのでこの問題はクリアできるかもしれませんが、ソースコードレベルで直感的かどうかと言うのも重要だと思います。XULではボタンは「<button label="OK" oncommand="okclicked()" />」とXML要素のように扱えます。XULのコードの階層は実際のレイアウトに近いもので、頭の中で再現しやすいものです。(もちろん大きなプロジェクトになってくると話は違いますが……。)

またXULはネイティブ環境との親和性が良くできています。独自のスキン(外観)を設定することが可能ならば、OSデフォルトのスキンを利用することも出来ます。デフォルトのスキンを使えば、WindowsではWindowsの外観、Mac OS XならAqua、LinuxではGNOMEと、それぞれの外観を利用することが出来ます。またファイルのセーブダイアログなどもOSネイティブのものです。

ただ、XULはGUIをつかった使いやすい開発環境がありません。実際に開発するときはテキストエディタと格闘することとなります。また、環境に英語版しかないこともあります。ある程度の英語の知識は必要になってきます。

XULプログラミングをはじめるにあたっての留意点

XULは実際は実行環境によって動作やファイル構成の組み方に微妙な違いが出てきます。たとえばFirefoxの拡張機能としてのXUL、ブラウザで読み込むページとしてのXUL、XULRunnerと言う専用の実行環境で実行するXULアプリケーション、また、そのXULアプリケーションをFirefoxの内部的なXULRunnerで実行する方法もあります。Songbirdなどの特定のMozilla関連アプリケーションの拡張機能と言う形式だってあります。どれもXULであり、記述方法はほとんど同じですが、メニューに表示される項目が違ったりなどの小さな違いはあります。

XULversityメニュー

では、XULプログラミングを習得するにあたっての必要なメニューとリンクを記載します。

※《》内の読み、または()の訳語は独自訳である場合があります。

1.XULの大綱を知る

まず、基幹技術であり、WebブラウザでもあるFirefoxについて知ってください。

http://ja.wikipedia.org/wiki/Mozilla_Firefox  - Wikipedia
WikipediaのFirefoxページ

以下はXULについて大まかに書かれているページです。

http://ja.wikipedia.org/wiki/XUL - Wikipedia
WikipeidaのXULページ

https://developer.mozilla.org/ja/XUL - MDC
MDCのXULポータル

http://www.hevanet.com/acorbin/xul/top.xul
Gecko系のブラウザで開くと実際にXULのコントロールの動作を見れるページ
※Gecko系でないと正しく表示されません
=英語

以下はXUL技術が実際に使われている代表的なアプリケーションのリストです。
「あなたの写真を Flickr にアップロードします。」
「Songbird™ は、デジタルジュークボックスと Web ブラウザがマッシュアップされたデスクトップ Web プレイヤーです。」
昔Webrunnerと言う名前で知られていたもので、特定のサイトを簡単に表示するための簡易Webブラウザ。そのサイトの設定ごとにそれぞれが別々のアプリケーションのように起動できる。オンラインサービスをそうと思わせないインタフェースで利用することが出来るもので、Gmailなどに最適。

2.XULRunnerでXULアプリケーションを作る

XULRunnerはXULアプリケーションの実行環境です。以下のページはそのXULRunnerをつかってXULアプリケーションを作るための簡単な説明です。

https://developer.mozilla.org/ja/XULRunner - MDC
MDCのXULRunnerポータル。XULRunnerはXULアプリケーションの実行環境です。

http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.0.0/ - Mozilla.org
安定版のXULRunnerが手に入ります。

次のページを見て、実際に最小のXULアプリケーションを作ってみてください。

https://developer.mozilla.org/ja/Getting_started_with_XULRunner - MDC
「この記事は、XULRunner を使った 基本的ななデスクトップアプリケーションを作成することで、Mozilla プラットフォームを体験します。」

3.XULの文法を理解する

実際にXULプログラミングをするために必要な文法知識です。

https://developer.mozilla.org/ja/XUL_Tutorial - MDC
「XUL について始めるためのに助けになるガイドつきのチュートリアルです」
※このページが特に重要です

https://developer.mozilla.org/ja/XUL_controls - MDC
「利用可能なXULコントロールの簡単な一覧」

https://developer.mozilla.org/ja/XUL_Reference - MDC
XULのそれぞれのコントロールやメソッド、プロパティーなどの情報を見れるリファレンス


以上が基本的なXULに関する知識です。

4.XUL Tips

以下はXULプログラミングをするときに便利な追加知識です。

https://developer.mozilla.org/ja/XUL/ - MDC
「メニューとポップアップパネルの利用ガイド」
(ポップアップとは、メニュー、もしくは、タイトルバーやボーダーなどのメインウィンドウの外郭を拡張する装飾のないフローティングウィンドウの事)

https://developer.mozilla.org/ja/XUL_improvements_in_Firefox_3 - MDC

https://developer.mozilla.org/ja/Firefox_2_for_developers#For_XUL_and_extension_developers - MDC

https://developer.mozilla.org/ja/Adapting_XUL_Applications_for_Firefox_1.5 - MDC

https://developer.mozilla.org/ja/XUL_Overlays - MDC
オーバーレイは、コントロールを上書きするために使用するXULファイルで、その利用法を記したページ

https://developer.mozilla.org/ja/Code_snippets/Running_applications - MDC
XULアプリからコマンドラインで他のアプリケーションを起動する方法、オプションも渡せる

https://developer.mozilla.org/ja/XULRunner_tips - MDC
「XULRunner を動作させるための Tips の集積」

https://developer.mozilla.org/ja/XULRunner/Deploying_XULRunner_1.8 - MDC 
「スタンドアローンな XUL アプリケーションを製品環境の中で展開する際に、XUL Runner をどう利用できるのかを説明しています」

https://developer.mozilla.org/ja/Debugging_a_XULRunner_Application - MDC
「XULアプリケーションをデバッグするためのツールVenkmanの設定手順」

https://developer.mozilla.org/ja/Build_Documentation - MDC
「ソースの入手方法とビルドの仕方を学んでください」
※どうもこのページはXULアプリケーションではなくMozilla自体のビルド方法について記されたページのようです。

https://developer.mozilla.org/ja/XPCOM - MDC
XPCOMを使うと拡張機能からネイティブコードの機能を利用できます。
※XPCOMはXULやその関連JavaScriptから使うものに限られるわけではありません。他の言語を使うこともあります
               
https://developer.mozilla.org/ja/XPCOM_API_Reference - MDC
XPCOMのAPIのリファレンス
【構築中】
   
https://developer.mozilla.org/ja/Code_snippets - MDC
有用なコードの切れ端

http://www.xuldev.org/blog/ - SCRAPBOOK
Firefoxの拡張機能『ScrapBook』を中心とするXULプログラミングTipsが書かれたブログ

APPENDIX - 開発に利用可能なツール

ここでは独断で開発に利用可能なツールを紹介したいと思います。とは言っても私は主にMacを使っているのでそのソフトです。直接XULと関わりがあるわけではありませんが、便利かもしれないと思ったので載せておきます。

XULアプリケーションをFirefoxのオプションで起動させると、テストするのにFirefoxを再起動しなければなりません。そうすると参考資料を読むためのブラウジングの邪魔になるので、そのことを防ぐために別のブラウザもインストールしておきましょう。Internet ExplorerでもSafariでもいいですし、Gecko系が良いならSeaMonkey(英語サイト)あたりでもいいと思います。

Smultronは私のお気に入りのMac OS Xで動作可能なフリーソフトのテキストエディタです。かなり使いやすい方だと思います。miも同様にフリーのテキストエディタで、個人的にはSmultronより使い勝手は劣ると思っていますが、日本語のエンコーディングの変更などにはとても役に立ちます。Windowsで私が知っているテキストエディタにはTeraPadが挙げられrます。どれもXUL専用というわけではなく汎用テキストエディタですが、力になると思います。

Songbirdでつかう最小の拡張機能をウィザード形式で作成できます。Songbirdインストール時にこの拡張機能をダウンロードしてください。

オンライン辞書でも構いませんが、オフライン辞書があるとなおいいです(Mac OS X Leopardにはオフライン辞書がバンドルされています)。XULに限らずプログラミングは英語の資料が多いですから、使いやすい辞書は必須です。オンラインではYahooのトップページからアクセスできる辞書、gooのFirefoxの拡張検索エンジンフォーム で利用できる辞書、Mac OS XのDashBoardウィジェット(Sidekick Dictionary)などから利用できる辞書があります。

Googleのソースコード専用検索エンジン。XULのコードはあまりないようですが、JavaScriptのコードで参考になるサンプルがあるでしょう。
…このXULversityはまだ構築中です。