Macintosh Developer Online (MDOnline)


2000年12月13日発行号 - Cocoaアプリをビルド



AppleStoreの3周年記念の大安売りは心動かされましたが、競争率も高そうなので、午前中から今日はでかけるため、とりあえずはあきらめました。G4 Cubeが128,000円ですからねぇ…。よっぽど買おうかと思いました。故障の問題もいろいろ出てはいるものの、リワーク品なら、きっと新品のようなトラブルは出ないと思いますし、とても迷ったのですが…。もっとも、今日の午前中に家にいたならもしかして買っていたかもしれません。だけど、MacWIREに流れたこともあるから競争率が上がるだろうと予測していたのですけど、お宝のサイトを見れば、過去にAppleStoreで購入があるかをチェックするとかしないとか? なら、MacWIREからの情報による競争激化は大したことがないかもしれません。などと考えるとちょっと気持ちがぐらついてくるなぁ(笑)。まあ、でも、とりあえずマックは家にたくさんあるので(笑)その意味ではマシンが足りないわけではないし、来年1月のExpoを待つのが得策でしょうか。
(新居雅行 msyk@mdonline.jp


【今から始めるCocoaプログラミング】最初のアプリケーション(1)プロジェクトを用意する

Cocoaでのプログラミングを紹介するコーナーでは「最初のアプリケーション」というシリーズをスタートさせる。このコーナーの方針は、Mac OS Xでのネイティブなソフトウエア実行環境Cocoa向けのアプリケーションをJavaで作成するというものだ。それを最初の一歩から解説を試みたい。Mac OS X Public BetaとDeveloper Toolsをインストールして、ぜひともいっしょにプログラム作成をしてみてもらいたい。「最初のアプリケーション」は、Interface Builderを使って、いちばん簡単にアプリケーションを作成する道筋を見極めるというものだ。
ここで、Project BuilderとInterface Builderの役割分担についてまずは簡単にまとめておきたいが、実はこの役割分担の違いを理解することがポイントになる。実際に作業をしながらそこのところは注意を払っていただきたい。まず、現代の開発ツールでは当たり前になったIDE(統合開発環境)だが、それに相当するのがProject Builderだ。プログラムのソースファイルの作成や編集を行ない、ライブラリやリソースなど使用するさまざまなファイルを管理する。そうした管理を行なうために、プロジェクトという文書ファイルを作成するのだが、それがまさにソフト名になっている。さらに、コンパイルして、アプリケーションなどの実行可能なファイル群を構築する(ビルドする)。そして、プログラムのステップ動作や停止をコントロールしながら変数値を確認するなどのデバッグ動作も行なう。もっとも、コントロールやデバッグは別のプロセスをProject Builderが起動するため、実際のプログラムは外部のものを利用する。たとえば、Javaのコンパイルには、Java2 SDKのjavacを使うといった具合だ。
Interface Builderは基本的には、Project Builderから呼び出して使うのが一般的だ。テキストのプログラムはProject Builderで編集を行なうのに対して、Interface Builderは、ウインドウやダイアログボックス、メニューと言ったビジュアル要素を、目に見える形式に極めて近い形態で編集することができるツールだ。たとえば、ウインドウはウインドウとして見えており、テキストフィールドやボタンをツールパレットからドラッグ&ドロップでウインドウに配置できる。配置したオブジェクトはボタンならボタンとして見ており、ドラッグして位置を移動したりできる。つまり、プログラムとして実行したのと同じ結果を見ながら設計もできるというものだ。こうしてInterface Builderで行なったユーザインタフェースの定義を、Project Builderで作っているアプリケーションで利用できるのである。
しかし、Interface Builderの機能はこれだけに留まらない。プログラムの要素であるクラスをInterface Builder側で外枠(インターフェース部分と言うのが正しいだろう)を定義し、そこでいきなりインスタンス化する。そして、ウインドウ内のさまざまなオブジェクトとの連係を定義できるのである。こうした定義ももちろん、Project Builderで作っているアプリケーションで利用される。ドラッグして線で結ぶというあの辺りの一連の機能があり、この部分の理解はCocoaアプリケーションを作成する場合には大きなポイントとなるだろう。

ではさっそくProject Builderを使ってみよう。Project Builderは/Developer/Applicationsにある。いきなりプロジェクトを1から作るのではなく、まずはひな形を利用して、それに手をいれるという手法を取る。(というか、最近ではむしろ1から作ることは少ないかもしれない。)Project Builderを起動したら、FileメニューからNew Project(Command+shift+N)を選択する。すると、次のようなダイアログボックスがあらわれる。ここではプロジェクトの種類を選択する。Cocoaは3つあるが「Cocoa Applications」は基本的なひな形であり、Objective-CでもJavaでもかまわない。Document-based Applicationは、文書ファイルを扱う形式のもので、JavaとあるのがJava言語向け、ついていないのがObjective-C向けである。
◇新規に作成するプロジェクトを選択する
 

ここではCocoa-Java Document-based Applicationを選択する。文書ファイルまでは作る必要はないという気もあるのだが、後々、こちらの方が楽なので、とりあえず今回はこれを使うことにしよう。
Nextボタンをクリックすると、黒い箱が登場する…なんてことはなく、次のようなダイアログボックスに変わる。ここでは、プロジェクトの名前とそのフォルダ位置を指定する。プロジェクト名のフォルダが作られ、そこにいくつかのファイルやフォルダがひな形に応じていきなり作成されるというわけだ。このままホームフォルダにプロジェクトを作成するのであれば、手順的には、Project Nameにプロジェクト名を入れて、Finishボタンをクリックすればいい。Setボタンはフォルダとプロジェクトフォルダの両方をダイアログボックスで指定することになる。
◇プロジェクト名と新たにフォルダを作るフォルダを指定する
 

こうして、プロジェクトが作成されるが、基本画面は次の図のような、1つのウインドウで分割されたものだ。ファイルごとに異なるウインドウで表示することも不可能ではないが、とりあえず、1つのウインドウで作業をする方針で使いこなしてみることにする。
◇プロジェクトが作成された
 

Project Builderでは複数のプロジェクトを同時に処理するなど複雑なことができるが、ここではシンプルに1つのプロジェクトを使うということでポイントを説明したい。まず、左側はプロジェクトに登録されているファイルなどのリソースが一覧されている。フォルダが見えて、分類されているが、実際のディスク上でのフォルダ分類とは関係なく、プロジェクトの中での分類になっている。右側はリリースノートのが見えているが、ソースの編集などを行なう場合にはこの領域を使う。
すでに、MyDocument.javaというソースがあるが、これがドキュメント管理部分に相当する。さらに、main.mというファイルがあるが、これはObjective-Cで作られたソースだ。非常に短いが、Objective-Cで、アプリケーションを起動する部分が作られている。ただ、このmain.mは特に手をつける必要はないので、Objective-Cの部分があっても安心すれば良い。
なお、一連の操作で、ホームフォルダにMyFirstCocoaというフォルダが作られ、そのなかにプロジェクトファイルのMyFirstCocoa.pbprojが作成される。それをダブルクリックすると、また別の機会で開くことができる。ただ、これはファイルに見えるが、Mac OS Xのアプリケーションと同じくバンドルになっていて、実態はフォルダだ。なお、以前に呼び出したプロジェクトは、Project BuilderのFileメニューのRecent Projectsからも簡単に呼び出せるので、まずはProject Builderを立ち上げてメニュー操作でプロジェクトを呼び出してもよいだろう。ちなみに、筆者はProject BuilderのアプリケーションをDockに登録している。

カテゴリ:ProjectBuilder/Interface Builder, 今から始めるCocoaプログラミング


【今から始めるCocoaプログラミング】最初のアプリケーション(1)プロジェクトを用意する<続き>

プロジェクトのウインドウの左上に4つのアイコンがある。開発の作業はおおむね、これらのボタンをクリックすることで事が足りると思えばよい。左からトンカチのアイコンはコンパイルしてビルドするものだ。これはいちばんよく使う。次のハケのアイコンは、ビルド結果をクリアするもので、1からコンパイルし直す場合などにこれを使う。さらに、ディスプレイのマークは、コンパイル結果を実行するがデバッガは機能しない。いちばん右のスプレー缶は、コンパイル結果をデバッガが機能するように起動する。つまり、順に「ビルド」「クリア」「実行」「デバッグ」ということだ。
さっそくひな形そのものを実行してみよう。すでにこれだけで動くというのは、フレームワークの強みかもしれない(ひな形がきちんと作られているだけだと言う話も…)。まずは、トンカチの「ビルド」アイコンをクリックする。すると、右側の部分がぱかっと割れて、Buildのタブがアクティブになり、ビルドのプロセスを表示する。あまり格好のいい表示ではないが、デベロッパにとっては十分だろう。どのプロセスなのか、あるいはパラメータは何なのかなどがある程度は分かる。図では、途中で、javacを使ってMyDocument.javaというソースをコンパイルしている場面が見えている。
◇プロジェクトのひな形をそのままビルドしてみた
 

なお、分割された上部は、コンパイルエラーがあるとそこに表示される。コンパイルエラーは、警告がグレー文字、重大なものが赤字で表示される。表示された部分をクリックすると、エラー箇所を下の部分に表示するなど、基本的なユーザインタフェースはきちんと作られている。

さて、コンパイルが終わると実行しよう。ディスプレイマークの「実行」アイコンをクリックすると、実行が始まる。Dockを見ていると新たにアイコンが加わるのが分かるだろう。すでにメニューやウインドウが表示されているが、これらはひな形で用意されているものが見えているのである。Your document contensというウインドウやFileメニューなどは最初から用意されているのである。
◇実行されたアプリケーションのメニューとウインドウ
 

さて、ここでFinderで最初に作成したフォルダの中身を見ておこう。中身の管理はあまり気にしなくてもかまわない。通常はプロジェクトのフォルダのルート(ここではMyFirstCocoaフォルダ)に作成したファイルをどんどん入れていくまでだ。ところで、コンパイルしてビルドした結果だが、buildフォルダの中に作られている。既定値ではプロジェクト名と同じ名前のアプリケーションが作成されている。このアプリケーションをそのままドラッグして別のところに持っていってもきちんと動くようになっている。作成されるアプリケーションの名前についてはプロジェクトの設定で変更もできる。いずれにしても、作ったアプリケーションを配付することは極めて容易であることは知っておいてもらいたいところだ。
◇プロジェクトフォルダの中身と生成されたアプリケーション
 

次回は、Interface Builderに突入しよう。

カテゴリ:


独特のユーザインタフェースを追加するDrop Drawersがバージョンアップ

Sig Softwareは、Drop DrawersのVer.1.5をリリースしたが、Mac OS 7/8/9版に加えてCarbon対応のMac OS X版もリリースした。Drop Drawersは、画面の端などにタブのようなものを追加し、そこから引っ張り出したパネルがアプリケーションの起動や文書の呼び出しなどに利用できるようになっている。Mac OSを使うユーザインタフェースの幅を広げるものとして注目できるだろう。アイコンや画像のサムネールあるいはテキストなどさまざまなものをパネルに登録できる。パスワードのプロテクトやキーボードショートカットの設定もできる。さらに、日本語版も用意されている。価格は$15だ。Mac OS Xのユーザインタフェースに不満があるのなら、Drop Drawersを試してみてはどうだろうか。

関連リンク:Drop Drawers
カテゴリ:ユーティリティ


4Dのストラクチャのアップデータを作成するツールがバージョンアップ

K’s Roomは、データベースソフトの4th Dimension(4D)のストラクチャをアップデートするアップデータを作成するための「Structure Updater & Update Maker 1.1J」をリリースした。古いバージョンのストラクチャと新しいバージョンのストラクチャを用意し、Structure Updaterを利用する。すると、古いものを新しいものにアップデートするアップデータのアプリケーションを作成することができる。アップデート用のアプリケーションの利用のためのライセンス料の支払いは必要無い。日本語版のあるのはMacintosh版で、Windows版は英語版となる。価格は\28,000で、Ver.1.1へのアップデートは\9,800となっている。
また、論理工房がリリースしている4Dのプラグイン「G.M.A.」がフリーソフトになったことが、K’s Roomのページで公開されている。G.M.A.は、4Dが稼動しているマシンのネットワークアダプタのMACアドレスを取得するものであり、プロテクトのために利用できることが示されている。

関連リンク:K’s Room
カテゴリ:データベース


写真画像を素材にしたモザイク画像を生成するユーティリティ

Polar Orbit Softwareの「MacZaic v2.0」は、写真画像をモザイク状のグラフィックスに変換するユーティリティだ。そのモザイク状の画像の1つ1つの画素に別のグラフィックスを割り当てることができる。また、たくさんのグラフィックス素材を画素にして、元の写真画像をモザイク状にするといったことも可能になっている。Javaで作られたプログラムで、MRJが必要となっている。
筆者の記憶があいまいで申し訳ないのだが、確かウィスキーのロバートブラウンの広告にこの種のグラフィックスを使ったものがあったような記憶がある。

関連リンク:Polar Orbit Software
カテゴリ:ユーティリティ