Mozilla University 講座ロードマップ

MAD 101: Mozilla アプリケーション開発の基礎

内容 項目

このプログラミング入門講座では、Mozilla アプリケーションとブラウザ拡張機能制作のためのツールキットとして、XUL とその用途に注目します。Mozilla University で実施するすべての講座と同様に、ここでは、Mozilla のツールと専門用語への優しい入門の提供に重点を置きますが、XML、HTML、JavaScript に関する基礎的な知識を前提とします。これら多数の講座の初めに基礎水準の「補習」をするだけでも、復習と今後の受講には十分だと思います。

講座は、Mozilla テクノロジーへの短いハイレベルな入門から始まり、XUL を使ったいくつかの異なるユーザインターフェイスの作成へと進みます。それから、単純なアプリケーションロジックを作成したり、イベントハンドラを通じてユーザインターフェイスをアプリケーションコードにつなげたり、Mozilla のスクリプト可能なレイヤーを通じて C++ ベースのコンポーネントにアクセスするための、JavaScript の利用について説明します。(注意: 最後の「作成したアプリケーションから Mozilla コンポーネントへアクセスする」は導入部分だけです。Mozilla コンポーネントの利用・作成は MAD 250: XPCOM で詳しく網羅されています)

  • Mozilla と XUL 入門
  • XUL を用いたアプリケーションインターフェイスの作成
    • XUL 構文
    • 基礎的な XUL 要素
    • XUL と DOM
  • JavaScript を用いたアプリケーションロジックの作成
  • ビヘイビアの追加: イベントモデル
  • 作成したアプリケーションから Mozilla コンポーネントへアクセスする

MAD 120: Mozilla の CSS

内容 項目

カスケーディング・スタイルシートは、Web 開発者にとってはすでにおなじみの技術ですが、Mozilla は、スキン、XBL、ユーザインターフェイスで CSS を利用するための特別な拡張機能など、いくつかの興味深いパワフルな新しい方法で、この CSS を使っています。

中でも、Mozilla は、ユーザインターフェイス全体のプレゼンテーションを定義するために CSS を利用しており、これによって、CSS 開発者は、ブラウザや Mozilla スイートを構成しているその他のコンポーネントを含めた、アプリケーションインターフェイスのための新しいスキンを作成することが可能です。

この講座では、いくつかの CSS の基礎を復習し、すぐに、ブラウザの外観変更を含む、より高度な Mozilla の CSS 利用へと進みます。

  • 基礎的な CSS
  • CSS スタイルを Mozilla に適用する
  • スキンと Mozilla のクローム
  • Mozilla 用の新しいスキンを作成する
  • XBL を Mozilla とバインドするために CSS を利用する

MAD 130: Mozilla アプリケーションの拡張

内容 項目

この講座では、Mozilla アプリケーションに柔軟性とパワーを提供する、いくつかの特別な技術とともに、アプリケーションプログラミングの基礎や、MAD 120 で見た CSS とスキンの働きをさらに追求します。この講座では、XPInstall、XUL オーバーレイ、地域化 (ローカリゼーション) を扱います。

さらに、Mozilla の「クロームレジストリ」が詳細に議論されます。クロームレジストリは、オーバーレイの包括や、その他動的に読み込まれるユーザインターフェイスだけでなく、新しいアプリケーションやスキン、Mozilla の言語パックのインストールを管理します。

  • XPInstall: アプリケーションのためのインストーラを作成する
    • 基本的なインストールスクリプト
    • インストールオブジェクト
    • XPInstall の API
    • XPI: インストールファイル形式
    • Mozilla 以外のアプリケーションをインストールする
  • XUL オーバーレイ: コンテンツを動的に追加する
  • アプリケーションの地域化: DTD と属性シート

MAD 150: XBL

内容 項目

Extensible Bindings Language (XBL) は、<colorpicker /> など、再利用可能なハイレベルの部品の形で XUL を体系化するために、Mozilla で最もよく使われていますが、汎用 XML 拡張言語で、XUL ユーザインターフェイスだけでなく、Mozilla の HTML や XML コンテンツに利用することができます。

XBL は、XUL や HTML にそれ自身を「バインド」するために、カスケーディング・スタイルシートを使います。それぞれのバインディングで、実行時に動的に適用される新しいインターフェイスやコンテンツを作成できます。そのような場合、XBL は拡張用フレームワークを提供し、コンテンツそのものは XUL や JavaScript、HTML、その他 XML マークアップで記述することが可能です。

この講座の項目では、Mozilla のフロントエンドにおける XBL の利用を見て、独自の XBL を作成する方法を学びます。

  • XBL 入門
  • Mozilla の XBL 部品
  • バインディングの方法: XUL、CSS、XBL
  • XBL、DOM、コンテンツモデル
  • XBL のスクリプト記述
  • HTML で XBL を利用する
  • より長い実例: HTML でポップアップメニューを実現する

MAD 200: Mozilla の RDF

内容 項目

Resource Description Framework は、通常 Web 上にある「リソース」を管理するための W3C 標準です。Mozilla は、データ管理のための一般的なフレームワークとして RDF を利用しています。ブックマーク、メールメッセージ、ユーザ設定、データ駆動型ユーザインターフェイス、その他消耗データなどは、すべてこの柔軟な XML ベース言語で定義されています。

RDF は、その仕組みを理解し、効率的に利用するのは難しいことがあります。しかし、この講座では、Mozilla の RDF を編集してその利用を理解してもらい、独自の Mozilla 「データソース」作成に取りかかる方法を説明します。

入門では基礎的な RDF モデルと構文を扱いますが、RDF の実践的な利用を重視します。

  • RDF 実践入門
  • メニューの例: データを利用してユーザインターフェイスを作成する
  • Mozilla のコンテンツモデル
  • XUL テンプレートと RDF
  • RDF ツール: コンポーネントと RDF ライブラリ (JSLib)
  • より長い実例

MAD 250: XPCOM コンポーネントの利用・作成

内容 項目

Mozilla の大半の機能は「コンポーネント」の形で利用できます。Mozilla のバイナリコンポーネントアーキテクチャである XPCOM は、これらのコンポーネントアーキテクチャをプラットフォームに依存せずアクセス可能にします。(続く)

  • スクリプトからコンポーネントへのアクセス
  • XPCOM の基礎

MAD 292: セキュリティ

内容 項目

セキュリティは、最近、オープンソースの世界では特にホットな話題であり、外部のレビューを受けるためにセキュリティモデルが公開されています。セキュリティは、綿密な調査を受けることで恩恵を得ています。(続く)

  • セキュリティ実践
  • コードレビュー技術

MAD 295: Web 標準コンテンツ開発・エバンジェリズム

内容 項目

Mozilla は、W3C 標準に準拠したブラウザとして、Web 開発者にとって非常に役に立つプラットフォームです。しかし、それは同時に少数者の声でもあり、そのために、Web デザインにおける最良の実践モデルを主張し、広めていくことが、重要な目標となっています。(続く)

  • Web 標準エバンジェリズムとは何か
  • なぜ重要なのか
  • より詳しく知るための資料
  • Web コンテンツのデバッグ
  • マークアップ: HTML、XHTML、XML
  • スクリプトの記述と DHTML
  • テストとテストケース
  • エバンジェリズムバグの管理

MAD 299: 分散型プログラミング

内容 項目

Mozilla コードベースと mozilla.org にとって最も重要な側面の 1 つは、「分散型プログラミング」を実践するために提供している機会だと言えます。この講座では、それぞれ異なる環境 (企業、あるいは国など) に存在している数百人のプログラマーが、もめごとや余計なこと、口論を最小限に押さえて、1 つの巨大なコードベースに関する共同作業をできるようにしている、mozilla.org のツールやプロセスを解説します。これらの一部は mozilla.org で開発されたツールで、その他は使いやすいように改良されています。例えば、Bugzilla は、問題管理のための主要ツールで、Mozilla 以外の大小プロジェクトでも、幅広く適応されています。

この講座では、以下のツールや方法論を扱います:

  • 問題管理とバグ (つまり Bugzilla について)
    • データベースの検索
    • レビュー
    • バグの管理 (キーワード、レポート、モジュール)
  • バージョン管理システム (ツール)
  • Bonsai と Tinderbox
  • コミュニケーション (方法論) - IRC、Jabberzilla その他 (ツール)
  • ソースコードの閲覧 (ツール: LXR)
  • オープンな場での設計 (方法論)

MAD 300: Mozilla に言語バインディングを追加する

内容 項目

XPConnect テクノロジーは、自分の好みのプログラミング言語でコンポーネントを作成し、それを Mozilla アプリケーションで利用可能にする方法を提供します。XPConnect は、Mozilla インターフェイスにおける JavaScript と、Mozilla のコアコードにおける (多くは C++ ベースの) コンポーネントとのブリッジを提供しますが、開発者はすでに、Python や Ruby、(まもなく実現する) Perl のための同様のバインディングを作成するために XPConnect を利用しています。

MAD 300 では、Mozilla のソースコードに登場した PyXPCOM ブリッジの例に従って、独自の言語のための XPConnect バインディングを作成する方法を解説します。

  • XPConnect 入門
  • PyXPCOM: 適応...
  • XPIDL...
Ian Oeschger