GO BACK

Cocoa-Java 教室 その1

「Cocoa-Javaの基礎知識」



■CocoaとJavaの関係とは?

 Mac OS Xは、今までリリースされた中でもっとも「開発者のため」を考えられたMacOSです。とにかくMac OS Xは開発がしやすい。その最大の要因は、MacOSのために設計された「Cocoa」という環境にあります。Cocoaは「フレームワーク」といって、ライブラリと開発に必要なファイル類などをパッケージにした形で提供されています。そして、これを利用した開発環境として、標準で「Developer Tools」というキットをMacOSのパッケージにバンドルしているんですね。このおかげで、すべてのMac OS Xユーザーは、ユーザーとなった時点で自動的に開発者にもなれる、というわけです。このことは、もっと高く評価されて良いことだと思います。

 Cocoaの素晴らしさは、特定の言語や環境のみで使うことを考えていない点です。いえ、一応は「Objective-C」という言語を使って利用することを考えて作られてはいるのですが、標準で「Java」や「AppleScript」でも利用できるように考えられています。標準バンドルされているDeveloper Toolsの中には「Project Builder」と「Interface Builder」という、Cocoa開発のもっとも基本となるツールが入っており、これらが最初から3つの言語に対応して作られています。このため、開発者は自分の得意な言語を使ってCocoa開発が行なえるようになっているのです。

 では、これら3つの言語は、どのような特徴があるんでしょうか。ざっと整理するとこんな感じになるでしょう。

 それぞれ特徴がはっきりしているので、自分にあった言語を選べばいいでしょう。——もし、あなたが既にC言語などを使っており、プログラミングに十分な素養があるならObjective-Cがよいでしょう。また「プログラミングなんて本格的な経験はまったくない」というなら、AppleScriptから入門するのが良いでしょう。

 が、そのいずれでもないのであれば、とりあえず「Java」を選ぶのがよいと思います。その一番の理由は、「本格言語にしてはシンプルでわかりやすく、またツブシがきく」という点です。AppleScriptほどではありませんが、多少のプログラミングの経験があるならJavaは十分理解できます。また機能的に見ても、(Cocoaアプリケーションを作るという点では)Objective-Cと比べてそう大きく劣る部分はありません。また、Javaは既にサーバ開発や携帯電話など多くのところで活用されており、覚えておけばCocoa以外にもさまざまな分野で応用が可能です。

 とりあえず、「Javaはまだよくわからない」というのであれば、当ホームページに用意してあるJava入門教室で、Javaの基本を勉強してみて下さい。ここでは、「とりあえずJavaの基本はわかる」という人に向けて、Javaを使ったCocoa開発(一般に「Cocoa-Java」とかいわれる)について簡単に説明していきます。


■Project Builderについて

 では、Cocoa-Javaの開発を始めましょう。開発には、DevToolsに付属する「Project Builder」と「Interface Builder」を使います。これがCocoa開発の基本となるソフトです。これらは非常に密接に連動しており、2つで1つと考えるべきものです。

 2つは、Project Builderが「作成するプログラムの設定やソースコードの作成を行なうもの」、Interface Builderが「ウィンドウやメニューといったインターフェイスを設計するもの」というように役割分担されています。Cocoaアプリケーションを作るには、まずProject Builderで「プロジェクト」と呼ばれるものを作り、その中から、必要に応じてInterface Builderを呼び出しながら設計をする、という感じになります。

 プロジェクトというのは、開発の単位みたいなものです。そのプログラムの開発に必要なファイル類を管理したり、さまざまな設定などを行なったりするために用意されているのだと考えて下さい。——では、Project Builderを起動しましょう。そして「新規プロジェクト」メニューを選びます。これで、プロジェクトを作成するためのアシスタントウィンドウが現れます。

プロジェクトのアシスタント


 ここでは、作成するアプリケーションの種類を選択します。Cocoa-Java用としては、Applicationの項目内に「Cocoa-Java Application」「Cocoa-Java Document-based Application」という2つが用意されています。前者は、1枚のウィンドウで動くごく一般的なアプリケーションを作るためのものです。後者は、ワープロや表計算などドキュメントを開いてマルチウィンドウで表示するタイプのものです。

 ここでは、前者の「Cocoa-Java Application」を選んで次へ進みましょう。そして、次の画面でプロジェクト名を入力(ここでは「CocoaJavaApp」とします)すれば、プロジェクトが作成されます。

プロジェクトのブラウザ

 プロジェクトが作成されると、ブラウザウィンドウが現れ、そこにプロジェクトで使用するファイル類などが一覧表示されるようになります。Project Builderのブラウザは、基本的に「左側に各種の項目一覧、右側に選択した項目の内容」が表示されるようになっています。初期状態では、左右の境界辺りにあるタブで「ファイル」というのが選択されているのがわかりますね? これが、プロジェクトのファイル一覧を表示するためのものなのです。

 ファイル類では、「Classes」「Other Sources」「Resources」というようにいくつかのフォルダが用意されており、その中にいくつかのファイルが組み込まれています。とりあえず、以下のものだけ頭に入れておきましょう。

 見ればわかるように、初期状態ではJavaのソースコードファイルなんてものはまったくありません。要するに、アプリケーションの「入れ物」の部分(?)だけ用意されており、具体的な機能などは自分で追加して下さい、ということなんですね。


■Interface Builderについて

 では、どうやってJavaのコードを追加するか?というと、それにはInterface Builderの基本を理解しないといけません。ファイル一覧にある「MainMenu.nib」ファイルをダブルクリックして下さい。Interface Builderが起動し、このファイル(nib(ニブ)ファイル)が開かれます。

 Interface Builderは、いくつかのツールウィンドウを組み合わせたような形になっています。ざっと基本的なウィンドウ類について整理しておきましょう。

Interface Builder画面

  1. デザインウィンドウ:ウィンドウのデザインをするもの。後のNibファイルウィンドウから「Window」をダブルクリックして開くと表示される。
  2. メニューエディタ:メニューをデザインするもの。後のNibファイルウィンドウから「MainMenu」をダブルクリックして開くと表示される。
  3. Nibファイルウィンドウ:これがNibファイル(MainMenu.nib)を開いて現れる基本ウィンドウ。ここに、Nibファイルに組み込まれている部品類などが表示される。
  4. ツールパレット:デザインウィンドウやメニューエディタで使うCocoaの部品(コントロール)がまとめてあるもの。
  5. Infoウィンドウ:「Tools」メニューの「Show Info」を選ぶと現れる。デザインウィンドウやメニューエディタで選択した部品の設定を行なうためのもの。

 とりあえず、この5つのウィンドウが基本だということは頭に入れておきましょう。インターフェイス設計の基本は「デザインウィンドウで部品を配置し、Infoウィンドウで設定を行なう」ということです。部品は、ツールパレットにあるものをデザインウィンドウやメニューエディタにドラッグ&ドロップすることで作成します。ツールパレットは、上部にアイコンが一列に並んでいますが、これは「部品の種類」を示すものと考えて下さい。ここから使いたい種類のアイコンを選ぶと、その種類の部品が下にずらりと表示される、というわけです。

 またInfoウィンドウは、上部にポップアップボタンがあり、ここで設定する内容を選択するようになっています。ポップアップボタンの項目は、ざっと以下のようになります。

 とりあえず「Attributes」と「Connections」の2つがもっとも重要になります。他のもの、例えばCustom Classなどは、今はまだ意味がわからなくても大丈夫です。またAppleScriptは、Cocoa-Javaでは使いません。


■ボタンとフィールドを配置する

 では、ここに部品を配置してみましょう。——ここでは「クリックして使うボタン(いわゆるプッシュボタン)と、テキストを入力するフィールドを使うことにします。

 ツールパレットの最上列にあるアイコンで、左から2番目のもの(Cocoa Views)をクリックして下さい。ここに、基本的なCocoaの部品はまとめてあります。この内、左上の「Button」と表示された部品がボタン、右上にある何も表示されていない細長い四角い部品がテキストフィールドの部品です。これらをマウスでドラッグ&ドロップし、デザインウィンドウに配置しましょう。

 配置した部品は、マウスでドラッグして移動したり、角の部分をドラッグしてリサイズしたりできます。また部品を選択すると、自動的にInfoウィンドウの表示が変わり、その部品の設定が表示されるようになります。ボタンでは、ポップアップボタンから「Attributes」を選び、「Title」の値を「Click」と書き換えて下さい。これで、ボタンに「Click」と表示されるようになります。テキストフィールドは、とりあえずそのままでいいでしょう。

部品の設計


 まず、ボタンとテキストフィールドの主なアトリビュートから簡単に説明しましょう。ボタンは、Cocoaの正式名では「NSButton」と呼ばれる部品になります。これは、ざっと以下のようなアトリビュートを覚えておきましょう。

 次に、テキストフィールドです。これはCocoaの正式名は「NSTextField」といいます。これも主なアトリビュートを以下に整理しておきましょう。

 まぁ、取りあえずこの2つの部品で、TitleとEnabled、Editableといった基本的なアトリビュートだけ使えるようになれば、今は十分でしょう。NSButtonのTypeやBehaviorといったものはややこしいので「そういうのがある」という程度で今はかまいません。

 このNSButtonやNSTextFieldという名称は、Cocoaに用意されているコントロールの名前ですが、それと同時に「部品のクラス名」でもあります。既にJavaをかじっていれば、AWTでボタンやテキストフィールドのクラスを使ってプログラムを作った経験があるはずです。Cocoaでも同様に、部品類はフレームワークにクラスとして用意されていて、それを利用してプログラムが動くようになっているのですね。

 さて、基本的な設計ができたところで、いよいよ次はJavaのソースコードの作成を行なうことにしましょう。

 

GO NEXT


GO HOME