iWeek 2001がゴールデンウィークに大阪で開催されます。内容が固まった感じの頃に記事にしようかと思っています。一部の方は御存じの通り、いつもはUGのブースに日帰りで参加しているのですが、今年はもう少し滞在しようかと思っています。iWeek開催の案内を見ていると、ブースを出さないで協賛するだけだったら、お金がいらないようですし、ステージもあるみたいなので、MDOnlineの売り込みにも行こうかと思っています。2月のExpoでの成果みたいなのはきちんと出してはいませんが、実は2月前半は売り上げが散々だったものの、3月に入ってからはそこそこ持ち直しています。昨年の10月あたり、つまりMac OS X Public Betaが出たころにはかなりの数、購読料収入があったのですが、このところは残念ながら落ち込みに入っています。Mac OS Xの正式発売での盛り返しを期待したいところですけど、きちんとプロモーションしないといけないということもありますし。今の予定では、5/4〜5の日程で大阪に行こうかと思っています。さすがに6日に移動するのは大変でしょうけど、5日も同じなのかなもしれません。
(新居雅行 msyk@mdonline.jp)
今回は再び「NibベースCarbonアプリケーション」の開発の話しに戻ります。Developer Tools CD-ROMに入っていた「IBCarbonExample」というサンプルプロジェクトのNibファイルやソースコードを調べてみることにします。
ついに、Apple社からMac OS XがGM版に到達したことが発表されました。3月7日にGM版になり24日には発売開始になるわけですから、えらくタイトなスケジュールです。今頃、Apple社内はてんやわんやの大騒ぎになっているでしょう(笑)。とにもかくにも、Mac OS X用のアプリケーションやドライバーを開発しているデベロッパーとしては、やっとリファレンスとなる「本物」が登場するわけですから非常に喜ばしいことです。ついに戦いが始まるといった心持ちなのですが、肝心のCarbonLibの方はADCのメンバーサイトに「CarbonLib 1.3d6 SDK」が登録されたばかりで、GM版到達にはもう少し時間が掛かりそうな気配です。また、Carbon Event Modelに関するドキュメントについてもまったく進展がありません。これらが24日に間に合うのは、とても無理のような気がします(涙)。だとすれば、一部の人達にとっては、リングには上ぼったが、まだゴングは鳴らずと言った状況が続くわけです。
さっそく、IBCarbonExampleプロジェクトを起動し、Project Builderの「Groups & Files」一覧にどのようなファイルが登録されているのかを見てみます。
内容は、前回作成した新規の「Carbon Application (Nib Based)」プロジェクトとまったく同じです。ソースファイルはmain.cひとつで、同じくNibファイルとしてmain.nibがひとつだけ登録されています。main.nibをダブルクリックし、Interface Builderを起動させて、Nibファイルの中身を確認してみます。すると、このNibファイルではメインメニューと、ひとつのウィンドウが編集されており、ウィンドウにはタブコントロールが実装されていることが分かります。タブコントロールの領域内にはデモ用として色々なコントロールが配置されています。これらのコントロールはタブコントロールと階層コントロールの関係を保っています。
続いてIBCarbonExampleアプリケーションをコンパイル&リンクして起動させてみました。するとNibファイルで編集&登録されていたウィンドウがオープンされます。タブコントロールの「Widgests」タブと「More Widgest」タブを切り替えることにより、タブ内に表示されるコントロールの内容も切り替えることができます。「Widgests」タブの方には、パスワード、チェックボックス、ラジオボタン、アイコン付きボタン、ポップアップメニューなどが表示されます。パスワードのタイトル「Password:」が入力カラムの選択枠の一部を消してしまっているのは、パブリックβがゆえのご愛敬です(笑)。
もう片方の「More Widgest」タブの方にも、ボタン、スライダー、ピクチャー、プログレスバーなどを含めた数多くのコントロールが表示されます。ちなみに、「Widgests」タブの方でパスワードを入力していて、そのまま「More Widgest」タブに切り替えると、文字入力用のキャレットが入力位置に残ってしまいます。これもパブリックβのバグ、もしくはソースコード自身のバグだと思われます。
アプリケーションのメニューには、Fileメニュー、Editメニュー、Windowメニュー、Helpメニューが表示されています。しかし、ちゃんと機能が実装されているメニューアイテムは、ひとつもありません。ただし、ウィンドウでパスワードを入力している時には、Editメニューの中のCut、Copy、Paste、Clear、Sellect Allが利用できるようです。
続いて、唯一のソースコードであるmain.cをオープンしてみます。IBCarbonExampleアプリケーションのmain()ルーチンでは、CreateNibReference()というAPIを利用してmain.nibファイルのリファレンス(IBNibRef)を得て、それを利用することでアプリケーションのメニューやウィンドウを構築する仕組みになっています。
実は、Carbonアプリケーションならば、こうしたNibファイルへアクセスするためのAPIは、Mac OS X環境だけでなくMac OS 9環境でも利用できるようになっています。Nibファイルアクセス用のAPIは、Universal Interfacesの「IBCarbonRuntime.h」に定義されています。
ただし、IBCarbonRuntime.hは、Universal Interfacesのバージョンが3.4以上でないと含まれていませんので注意してください。加えて、こうしたNibファイル関連のAPIは、CarbonLibのバージョンが1.1以上でないと利用することができません。
ここで、IBCarbonExampleプロジェクトを一端離れて、最近、以下のAppleサイトに登録された「URLAccessSample」というサンプルを見てみます。
◇URLAccessSample 1.0
http://developer.apple.com/samplecode/Sample_Code/Networking/URLAccessSample.htm
このサンプルはMetrowerks CodeWarriorのプロジェクトとして供給されています。サンプルの内容はURL Access Managerの使用方法を習得するための簡単なアプリケーションです。しかし、ソースコードの中を調べてみると、CreateNibReference()、CreateNibReferenceWithCFBundle()、SetMenuBarFromNib()、CreateWindowFromNib()といったNibファイル関連のAPIがバシバシ利用されていることが分かります。ところが、このサンプルプロジェクトのフォルダ内を見てみると、アプリケーションからアクセスしているnibファイルがどこにも見あたらないのに気づきます。そうです、このアプリケーションはパッケージ化されており、Nibファイルやアプリケーション自体も「URLAccessSample.app」フォルダ内に隠蔽されているのです。Carbon SDKに含まれる「PackageTool」でURLAccessSample.appを通常のフォルダに戻してやると、その中に何種類ものNibファイルを見つけることができます。アプリケーションは、これらのNibファイルにアクセスしてウィンドウやメニューの情報を取り込んでいるわけです。
つまり、Mac OS 9単独でもNibファイルを編集するツールさえあれば、それをダイレクトにアプリケーションで活用できるわけです。そう考えると、ResourceファイルからNibファイルへのコンバーターなども欲しいところです。ところで、Interface BuilderはCarbonアプリケーションなのでしょうか?もしそうであれば、少しの改良でMac OS 9上でも利用できるようになるかもしれませんね(笑)。
さて次回は、IBCarbonExampleサンプルプロジェクトのmain.cソースファイルの内容を調べ、どのような仕組みでアプリケーションが成り立っているのかを見てみます。
[小池邦人/オッティモ]
関連リンク:オッティモ
カテゴリ:ProjectBuilder/Interface Builder, Carbon/CF, 小池邦人のプログラミング日記
開発ツールのREALbasic 3が発売されたばかりだが、バージョンアップ版のVer.3.1のベータテストが開始された。Ver.3.0b1がリリースされている。Ver.3.0でCarbon化を行ったが、3.1ではCarbon化の完成度を高め、Mac OS X対応を強固なものにすることや、データベースサポートの強化を行うというのが狙いだ。各種データベースのプラグインについてCarbon化が行われた。IDEやあるいは生成アプリケーションのAppleScript対応、テキスト描画をCocoaの機能を使って行うことでのアンチエイリアスなどを含めたネイティブ化など多数の新しい機能やバグ修正がVer.3.1b1では行われている。ベータ版はREALbasic 3のライセンスコードを入力して実行するようになっている。Ver.3.1へは、Ver.3.0のユーザーはフリーでアップデートできるようにする予定となっている。
なお、日本語版についてはVer.3.0の暫定版が公開された後は音沙汰がない状態になっていて、正式版のリリースや、Ver.3.0のライセンスコードの販売などは行われていない。
関連リンク:REALbasic 3.1
カテゴリ:REALbasic
David Lloyd氏が開発した「Dialog Studio」は、AppleScriptベースの開発支援ツールだ。AppleScriptのシステム機能だけでは単純なダイアログボックスしか作成できないが、Dialog Director(Christopher E.Hyde氏が開発)というフリーのOSAX(スクリプティング機能拡張)を利用することで、ボタンやテキストボックスはもちろん、QuickTimeムービーなども含めて各種のコントロール類を配置したダイアログボックスをAppleScriptだけで実現するものだ。しかも、Dialog Directorはフリーであり、作成したアプリケーション等の配付もフリーなので、AppleScriptをベースにしたアプリケーションなどで、しっかりしたユーザインタフェースを作るには不可欠な素材となっている。ただし、欠点としては、こうしたユーザインタフェースの定義を、テキストで記述しなければならないことだった。これに対して「Dialog Studio」を使えば、実際に表示される形式でダイアログボックスとその内容を定義でき、Dialog Directorが解釈できるAppleScriptのプログラムを自動的に生成する。Dialog Studioを起動すると、ウインドウとともに、パレットやプロパティウインドウが表示される。パレットにあるボタンなどのオブジェクトをドラッグしてウインドウに配置し、たとえばボタン名などをプロパティで書き換える。つまり、実行結果を見ながらダイアログボックスなどの設計ができるWYSIWYGツールである。その設計結果と等価なAppleScriptのプログラムを出力するので、たとえばボタンをクリックして実行するプログラムなどは、スクリプト編集プログラムなど、各種のAppleScriptプログラム作成ツールで追加することになる。なお、Dialog Studio Liteはフリーだが、コントロール類の生成が12個に限定されたり、コントロールの種類を限定されたり、あるいはドラッグによるサイズ変更ができないなどの制約がある。近々、$15のシェアウエアとして制限を解除したDialog Studio Pro 1.1がリリースされる予定となっている。
関連リンク:http://macscripter.net/dialog_studio.html
カテゴリ:開発ツール, AppleScript
MDOnlineの2001年3月9日配信号で「Disc Burnerでディスクをフォーマットする時のオプションについての解説」として、Tech Info Libraryに掲載された情報をもとにした記事を作成した。筆者の手許には稼動させる環境がないため、英語版での情報を掲載したところ、MacWIREなどで執筆活動をされているこばやしゆたかさんより、ディスクフォーマットの時のダイアログボックスの画面ショットを送っていただいた。実際にDisc Burnerが使える環境にあるユーザはごく少数だろうか、どんな画面が出るかをお伝えすることも意味があると思う。「標準」「iTunes」「MP3 CD」という選択肢になっており、それぞれのフォーマットはカッコ付きで示されている。
◇http://til.info.apple.com/techinfo.nsf/artnum/n58804
Disc Burner: Creating CDs and Choosing Formats
カテゴリ: