プラグイン開発入門: 第 2 回 リッチ・クライアント・アプリケーションの導入

プラグイン開発とリッチ・クライアント・アプリケーションの基本を学ぶ

Eclipse でのプラグイン開発は、少しばかり芸術のようなところがあります。プラグインの概念、特に OSGi と Eclipse でのプラグインの概念を初めて学ぶ人にとっては、プラグインの作成を補助するために Eclipse に用意されている無数のツールを学ぶことは非常に大きな負担かもしれません。この記事の目的は、いくつかのベスト・プラクティスを適切に交えながら、プラグイン開発のための基本的なスキルを学ぶ手助けをすることです。

Chris Aniszczyk, Software Engineer, IBM 

Chris AniszczykChris Aniszczyk は IBM Lotus の Eclipse コミッターとして、OSGi 関連の開発に取り組んでいます。最近主に専念しているのは、Eclipse のプラグイン開発環境 (PDE) を改善し、IBM Lotus 社内で Eclipse の支持者を増やすことです。 オープンソースの熱烈な支持者である彼は、オープンソースを広めることを専門としています。自身のブログでは Eclipse の魅力を説き、Eclipse Foundation の役員会では Eclipse コミッターの代表も務めています。ここをクリックすれば、彼は冷たい飲み物を口にしながら、オープンソースと Eclipse に関する議論にいつでも応じてくれます。



2008年 4月 01日

この「プラグイン開発入門」シリーズの記事では、プラグインの開発に関するすべてを学びます。しかし始める前に、プラグインを開発するために適切な環境が用意できていることを確認する必要があります。最初のステップは、PDE (Plug-in Development Environment) が含まれている Eclipse のディストリビューションを Eclipse.org からダウンロードすることです。ここでは、Eclipse Classic の最新バージョンをダウンロードすることをお勧めします。このシリーズでは、Eclipse V3.4 のマイルストーン・リリース (M5) を使います。ダウンロードが終われば準備は完了です。(「参考文献」には、Eclipse が初めての人のために、Eclipse とその背景情報をどこから入手すればよいかを説明してあります。)

この記事ではプラグイン開発を理解しやすくするために、図 1 に詳述するワークフローに従います。このシリーズの第 1 回では、このワークフローの最初の 5 つのステップに焦点を当てています。今回は残りの 2 つのステップを説明し、またリッチ・クライアント・アプリケーションの導入に焦点を当てます。

図 1. プラグイン開発のワークフロー
プラグイン開発のワークフロー

ビルド

ビルド用にコンテンツを構成する作業は、プラグイン開発の作業の重要なステップです。Eclipse では、プラグイン開発のうちのビルドに関連するすべての構成は build.properties の中にあります。

図 2. ビルドの構成 (build.properties)
ビルドの構成 (build.properties)

自動ビルドとは

この記事ではプラグイン用に自動ビルドをセットアップする方法は説明しませんが、頻繁に質問される項目なので、その背景を少し説明しましょう。自動ビルドをセットアップする最も一般的な方法は、Eclipse SDK の PDE Build コンポーネントを使う方法です。PDE Build の欠点は、初心者にとっては気が遠くなるようなコンパイルにあります。自動ビルドのセットアップ方法を簡単に知るためには、pluginbuilder の Web サイト (「参考文献」を参照) にあるプラグインとツールを調べてみてください。

ビルド構成用のサンプル・コンテンツの中心は、MANIFEST.MF、plugin.xml、そしてアイコン・ファイルです。また国際化サポート用の plugin.properties や、ライセンス・ファイルのような成果物も含まれるかもしれません。バイナリー・ビルドに含まれるものとソース・ビルドに含まれるものの違いに注意することが重要です。通常、Eclipse からプラグインをエクスポートする場合、そのプラグインは、他の人達が彼らの Eclipse システムで使用することができる単なるバイナリー・プラグインのエクスポートになります。Source Build は作業対象のプラグインのソースを含んでいる必要があります。通常のエクスポート操作の際に、ソース・ビルドを行うように選択することもできます。


エクスポート

典型的なプラグイン開発者のワークフローの最後のステップは、作成したプラグインをエクスポートすることです。Eclipse の PDE では、このプロセスを特別なエクスポート・ウィザードを使って容易に行うことができます。このウィザード (図 3) を利用するには、File > Export の順にクリックし、Plug-in Development カテゴリーの下にある Deployable Plug-ins and Fragments (デプロイ可能なプラグインおよびフラグメント) を選択します。

図 3. プラグインの Export (エクスポート) ウィザード
プラグインの Export (エクスポート) ウィザード

このウィザードの中では、まずどのプラグインをエクスポートするのかを選択します。この場合は、簡単な helloworld プラグインをエクスポートします。次のステップは、このプラグインのエクスポート先を選択することです。エクスポート先としては、ZIP ファイルの中にエクスポートすることも、ディレクトリーの中にエクスポートすることもできます。このウィザードの他の選択項目として、プラグインに署名する機能や、プラグインにソースをバンドルする機能などを利用することもできますが、ここではそれらを無視して Finish をクリックし、このプラグインをエクスポートします (図 4)。プラグイン・マニフェスト・エディターの Overview ページには、このウィザードを簡単に起動できるハイパーリンクが用意されていることに注意してください。

図 4. ディスク上にエクスポートされたプラグイン
ディスク上にエクスポートされたプラグイン

これで終わりです。Eclipse のワークスペースからプラグインを取り出し、使用可能な形式でハードディスク上に置くために必要なことは、これだけです。いったんこの形式になれば、同僚や友人にプラグインを容易に配布することができます。これでプラグイン開発のワークフローに焦点を当てた説明は終わりましたが、基本がわかったので、Eclipse の中でリッチ・クライアント・アプリケーションを作成するために何が必要なのかを調べる作業を始めましょう。

リッチ・クライアント・プラットフォーム

リッチ・クライアント・アプリケーションは、Eclipse の中で RCP (Rich Client Platform) を使って作成されます。Eclipse プラットフォームは伝統的に、オープン・ツールのプラットフォームとなるように設計されています。その一方で Eclipse プラットフォームのアーキテクチャーは、Eclipse のコンポーネントがどのようなクライアント・アプリケーションの構築にも使用できるように構成されています。リッチ・クライアント・アプリケーションを構築するために必要な最小限のプラグイン・セットを総称して、リッチ・クライアント・プラットフォーム (Rich Client Platform) と呼ばれます。詳しくは「参考文献」を参照してください。


製品構成

リッチ・クライアント・アプリケーションを作成するためには、製品構成 (Product Configuration) と呼ばれる概念を扱う必要があります。製品構成は、リッチ・クライアント・アプリケーションを構築するための手段として PDE が提供しているものです。製品構成を理解するためには、作業するためのサンプルとなる簡単なリッチ・クライアント・アプリケーションが必要です。そうしたアプリケーションを、第 1 回で説明した PDE のテンプレート機構を利用して作成します。まず rcp という名前のプラグイン・プロジェクトを作成し、このプロジェクトがリッチ・クライアント・アプリケーションであることを必ず指定し、それからテンプレートとして RCP Application with a view (ビューを持つ RCP アプリケーション) を選択します (図 5)。

図 5. リッチ・クライアント・アプリケーションのテンプレート
リッチ・クライアント・アプリケーションのテンプレート

次のステップは、先ほど作成したリッチ・クライアント・アプリケーションを組み立てる上での補助となる、製品構成ファイルを作成することです。新しい製品構成を作成するためには、プラグイン・プロジェクトを右クリックし、New > Product Configuration の順に選択して New Product Configuration ウィザードを起動します (図 6)。すべてのデフォルトを受け入れ、製品構成ファイルの名前を rcp.product とし、Finish をクリックして製品構成エディターを起動します。以下のセクションでは、製品構成エディターのさまざまなページについて説明します。

図 6. New Product Configuration ウィザード
New Product Configuration ウィザード

Overview タブ

プラグイン・マニフェスト・エディターの場合と同じように、製品構成エディターで最初に表示されるページは Overview タブです (図 7)。このページは、製品構成の簡単な概要や、製品をテストしたりエクスポートしたりするために便利なリンクを表示し、またこの製品がプラグインをベースにするのかフィーチャーをベースにするのかを選択する機能も持っています。アプリケーションを簡単にテストするためには、Testing セクションの Launch an Eclipse application (Eclipse アプリケーションを起動) リンクを選択し、そのリッチ・クライアント・アプリケーションがどのようなものかを調べます。

図 7. Overview タブ
Overview タブ

製品構成エディターの Overview タブに関しては、これがすべてです。もし、製品構成に関して行える基本的な操作に興味を持った場合には、Overview へ戻ってください。

また、ここからアプリケーションを起動することもできます。例えば、Launch an Eclipse application (製品を起動します) をクリックすると、アプリケーションがポップ・アップされて表示されるはずです (図 8)。

図 8. アプリケーションの起動
アプリケーションの起動

Configuration タブ

Configuration タブには、製品を実行するために必要な基本的なビルディング・ブロックが含まれています。この中には、その製品を実行するために必要な成果物などの情報も含まれます。最初のセクション、Plug-ins and Fragments (プラグインおよびフラグメント) は、その製品を実行するために必要なプラグインとフラグメントを一覧表示しています。ここで役に立つヒントを 1 つ挙げておくと、製品に関して作業を行っている際に依存関係が導入されることがありますが、そうなった場合は、必ず Add Required Plug-ins (必須プラグインの追加) を選択し、製品構成に何かを追加する必要があるかどうかを判断させるようにします。

次のセクション (Configuration File (構成ファイル)) は、config.ini ファイルという、OSGi 特有の成果物を表します。約 99.9 % の場合、この設定をこのままにして Eclipse に config.ini ファイルを生成させる必要があります。このファイルに含まれているものはすべて、実は先ほどのプラグインとフラグメントのセクションで指定されたものですが、Eclipse が起動時に認識できる、特別なフォーマットになっています。

図 9. Configuration タブ
Configuration タブ

Launching タブ

Launching タブには、Eclipse ベースの製品の起動に必要なすべての情報が含まれています。Java Runtime Environment (Java ランタイム環境) セクションでは、プラットフォーム専用の JRE を手軽にバンドルすることができます。Program Launcher (プログラム・ランチャー) セクションでは、製品起動用の実行可能ファイルをカスタマイズすることができます。例えば、ランチャーの実行可能ファイルの名前として、eclipse.exe 以外の名前を付けたいことがよくあります。このセクションでは、ランチャーの実行可能ファイルに名前を付けられることに加え、その実行可能ファイルがプラットフォーム特有のアイコンを使うように指定することもできます。Launching Arguments (起動引数) セクションでは、その製品に対する、プラットフォーム特有の起動パラメーターを指定することができます。これは、あるオペレーティング・システム (例えば Mac OS X など) に対して特別な動作が必要な場合に便利なことがあります。

図 10. Launching タブ
Launching タブ

Splash タブ

Splash タブでは、その製品のスプラッシュ画面を必要に応じて構成することができます (図 11)。例えば、Eclipse を起動すると簡単なスプラッシュ画面が表示され、その画面には Eclipse のロゴと、プラグインのロードの進行状況が表示されます。デフォルトで、サンプルの RCP アプリケーションには簡単なビットマップ・ベースのスプラッシュ画面が付属しています。しかし、スプラッシュ画面を使って面白いことができることを示すために、ログイン用のスプラッシュ画面のテンプレートを利用してみましょう (これは Customization (カスタマイズ) セクションで行います)。ログイン用のテンプレートを選択したら、製品構成を保存し、アプリケーションを起動します。

図 11. Splash タブ
Splash タブ

新しいスプラッシュ画面にログインとパスワードの入力があることに注目してください。

図 12. カスタムのスプラッシュ画面
カスタムのスプラッシュ画面

Branding タブ

Branding タブ (図 13) では、3 つのことができます。つまりウィンドウ画像のカスタマイズ、カスタムの about ダイアログの作成、そしてオプションとしてのウェルカム・ページの作成、という 3 つです。ウィンドウ画像というのは、単純にアプリケーションのシェル・ウィンドウに関連付けられている画像です。例えば、Eclipse を起動すると、タイトル・バーには 16x16 の小さな Eclipse のアイコンがあります。こうしたタイプのアイコンをカスタマイズすることができます。また、大部分のソフトウェア・アプリケーションには、ライセンス情報や作成者、バージョン情報などを一覧表示する、何らかの形式の about ダイアログがあります。製品構成エディターでは、Eclipse の既存の about ダイアログを再利用することができますが、そのダイアログを独自の画像や情報でカスタマイズすることもできます。

ウェルカム・ページは、ユーザーがアプリケーションについて理解するための助けとなるために作成されるページです。例えば、Eclipse のデフォルトのウェルカム・ページを表示するためには、メニュー項目の Help > Welcome を選択します。これと同じようなウェルカム・ページをアプリケーションで使用したい場合には、その作業を Branding タブの Welcome Page (ウェルカム・ページ) セクションで行います。ウェルカム・ページの作成については、この記事では説明しませんが、詳しく学ぶために、Eclipse のユーザー補助技術に関する情報を「参考文献」に挙げてあります。

図 13. Branding タブ
Branding タブ

まとめ

この「プラグイン開発入門」シリーズの全体としての目的は、いくつかのベスト・プラクティスを交えながらプラグイン開発の基本を紹介することでした。その目的を達成するために、第 1 回ではプラグインのサンプルを作成し、典型的なプラグイン開発のワークフローを順を追って説明しました。第 2 回では、プラグイン開発のワークフローの残りの部分を説明し、リッチ・クライアント・アプリケーションを作成しました。このワークフローをマスターできると、プラグインの開発や Eclipse の RCP をベースとするアプリケーションの開発がずっと容易になります。

では早速、新しく学んだ知識を使って、プラグインと、Eclipse ベースのアプリケーションを作成してみてください。

参考文献

学ぶために

  • Pluginbuilder.org は Eclipse プラグインの作成を自動化するために役立ちます。
  • OSGi Alliance は Eclipse で使用するプラグインの標準を作成しています。
  • Eclipse Foundation のウィキで Eclipse Plug-in Versioning について学んでください。
  • Eclipse Foundation のウィキで Eclipse EE guide を見てください。
  • Eclipse Rich Client Platform について学ぶために、Eclipse.org を訪れてください。
  • Eclipse SDK について学ぶために、Eclipse Foundation に用意された「Platform Extension Points」というタイトルのドキュメンテーションを見てください。
  • RCP アプリケーション用のウェルカム・ページを作成する際にヘルプが必要であれば、「Eclipse の User Assistance プロジェクトを知る」を読んでください。
  • Eclipse でのデバッグにヘルプが必要であれば、「Eclipse Platformを使ってデバッグする」を読んでください。
  • プラグインを国際化するための適切な背景情報として、Eclipse Foundation の記事「Eclipseプラグインの国際化対応」と「How to Test Your Internationalized Eclipse Plug-In 」があります。
  • Eclipse の推奨読み物リスト」を調べてみてください。
  • developerWorks には他にも Eclipse に関する資料が豊富に用意されています。
  • Eclipse が初めての人は、developerWorks の記事「Eclipse Platform 入門」を読んでください。Eclipse の起源やアーキテクチャー、またプラグインを使って Eclipse を拡張する方法などを学ぶことができます。
  • IBM developerWorks の Eclipse project resources を利用して Eclipse のスキルを磨いてください。
  • developerWorks podcasts では、ソフトウェア開発者のための興味深いインタビューや議論を聞くことができます。
  • developerWorks の Technical events and webcastsで最新情報を入手してください。
  • IBM とオープンソース技術、そして製品機能を調べ、学ぶために、無料の developerWorks On demand demos をご覧ください。
  • IBM オープンソース開発者にとって関心のある、世界中で今後開催される会議や業界展示会、ウェブキャスト、その他のイベントについて調べてみてください。
  • developerWorks の Open source ゾーンをご覧ください。オープンソース技術を使った開発や、IBM 製品でオープンソース技術を使用するためのハウ・ツー情報やツール、プロジェクトの更新情報など、豊富な情報が用意されています。

製品や技術を入手するために

議論するために

  • Eclipse に関する質問を議論するための最初の場所として、Eclipse Platform newsgroups があります (このリンクをクリックすると、デフォルトの Usenet ニュース・リーダー・アプリケーションが起動し、eclipse.platform が開きます)。
  • Eclipse newsgroupsには、Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。
  • developerWorks blogs から developerWorks のコミュニティーに加わってください。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=302899
ArticleTitle=プラグイン開発入門: 第 2 回 リッチ・クライアント・アプリケーションの導入
publish-date=04012008