Interface Builder 3.0
続いて、Interface Builderも見てみよう。
Mac OS Xの開発ツールの歴史をひも解いてみると、10.0の頃はNeXT由来のツールであるProject BuilderとInterface Builderがそのまま使われていた。その後、Project BuilderはXcodeへと名前を変え、モダンなユーザインタフェースを備えるようになったが、Interface Builderの方はNeXTの雰囲気を残したままであった。
それがついに、LeopardになってInterface Builderも大幅なテコ入れが行われることになった。ユーザインタフェースが、最新のMac OS Xのテイストをふんだんに取り入れたものになっている。
最も大きく変わったのが、パレットであろう。従来は、ユーザインタフェース部品をタブを使ってカテゴライズし、それぞれの動作画像がそのまま貼付けられていた。それが、すべての部品を一枚のペインに収め、カテゴリやキーワードで絞り込みながら探すスタイルに変更された。部品のイメージも、アイコン表示を使うようになった。
このような、まずすべての項目を表示し、徐々に絞り込みながら目的のものを探す、というスタイルは、iTunesやiPhotoでも使われているものだ。これが今後のMac OS Xユーザインタフェースの、メインストリームとなることを予感させる。
話を戻すと、Interface Builderでの操作と言えば、直感的なアウトレットとアクションの接続である。これも変更が加えられた。従来では接続先のアウトレットやアクションはインスペクタで選択していたが、黒い半透明のパネルを使うようになった。操作対象が手近なところにまとまるようになったので、便利である。
また、作業のワークフローを修正させるような変更もある。従来のアプリケーション作成では、まずInterface Builderでコーディングするクラスを作成し、ファイルも作ってから、Xcodeに戻ってコーディングを行っていた。ところが、今回のバージョンアップにより、Interface Builderからクラスを作成する機能が削除された。これによりワークフローは、まずXcodeでクラスファイルを作成してプロジェクトに登録し、それからInterface Builderでインスタンス化やアウトレットとアクションの接続を行う、というように変更されることになる。作成したクラスは、自動的にInterface Builderに登録される。
これは、今まではXcodeとInterface Builderの両方で、アウトレットとなるインスタンス変数や、アクションとなるメソッドの追加と削除が行えたので、これらをどう同期するかという問題が存在していた。この問題に対処するためのものであろう。これからは、Xcodeでの変更が、自動的にInterface Builderに反映されることになる。何にせよ、前の環境に慣れていた方は、注意が必要である。