タイトル小池邦人のプログラミング日記》2001/6/13<Metrowerks CodeWarrior 7.0EAを使う>カテゴリー開発ツール, Carbon/CF, 小池邦人のプログラミング日記
作成日2001/6/14 11:14:5作成者新居雅行
今年のWWDCでは、Metrowerks CodeWarrior 7.0 Early Access(開発リリース)が参加者すべてにお土産として配布されました。今回は、WWDCでMetrowerks社が単独で行ったセッションの内容と、CodeWarrior 7 .0EAを使いMach-OベースのCarbonアプリケーションを作ってみた感想を書いてみます。

CodeWarriorの話しに入る前に、WWDCで購入してきたResorcerer 2.4について言及しておきます。値段は$256(笑)実は、私は日本語版ユーザなのですが、日本語化されるのを待っているといつになるか分からないので、さっさと購入してしまいました。この開発ツール、WWDC内のショップでも大人気で、かなり早い時期に売り切れてしまったようです。偶然、Resorcererを日本語化している某社の某社長にパーティで会ったので「早く日本語化してね!」とお願いしてみたところ「ここへ来て2.4が出てることを初めて知った...。」(オイオイ)と、とぼけた事を言っていました(笑)。日本語版のユーザの方は期待して(ついでに圧力かけて)待つことにしましょう!

Resorcerer 2.4には、Mac OS 9用とは別に、Mac OS X用Carbonアプリケーションも付属しています。このバージョンから、128ピクセルアイコンを含んだ‘icns’リソースの編集や、データフォークへのリソースの書き出しにも対応しました。これにより、我々デベロッパーも、Mac OS X上で快適にリソースファイルを編集できるようになったわけです。英語版で日本語リソースを編集するのには、ちょっとした下準備が必要です。まず、ResorcererをResEditでオープンし(笑)、2つの‘vers’リソースの国別コード(Country Code)を日本(Japan)に変えます。

 

これでアプリケーションフォントが変わり、ウィンドウタイトルなどの文字化けが直ります。続いて日本語リソース(例えば’STR#’リソースなど)の編集用ウィンドウをオープンしたら、Displayメニューから「Set Text Style...」を選び、フォントをOsakなどに変更してください。これで、ほぼ支障なく日本語が入力&表示できるようになります。

 

さて、WWDC 2001では、MetroWorks社が独自にCodeWarriorの将来的な機能についてのセッションを用意していました。セッションの開始前には、プレゼントをエサに(1等賞はPS2だった)、参加したデベロッパーに次期CodeWarriorに望むことを調査するためのアンケートが配られました。Apple社が、Mac OS XにProjectBuilderやInterfaceBuilderの開発環境をバンドルし始めたので、MetroWorks社も悠長に構えていられなくなったわけです。既存ユーザをしっかり捕まえておくためにも、ユーザからの要望を的確&迅速に反映する努力が必要です。この点はユーザにとっては大きなメリットですね。当然、セッションは純正開発環境を意識した内容となり、ユーザが欲しいと考えている新機能をガンガン付けていくと強調していました。

Mach-OやCoCoa対応は当たり前、InterfaceBuilderとの連携や、APIリファレンスやドキュメントとの連携、エディター、コンパイラー、リンカー、ディバッガーの強化などなど...。上げたら切りがありません。CodeWarrior 7.0の正式版の発売は10月ごろを予定しているそうですが、とりあえず今回の7.0EAで、自作CarbonアプリケーションをMach-Oベースに作り直してみることにしました。まず、CFMベースで開発していたプロジェクトをオープンし、ライブラリやプリコンパイルヘッダーの検索パスを調整します。Fileメニューを見ると「Convert Traget to Mach-O」という機能があるので、これを使い既存プロジェクトをコンバートしてみました。作業が終了するとプロイジェクト名称の後に「proj-M」とついたMach-O用のTargetが出来上がりました。プロジェクトウィンドウにQuickTime Frameworkを追加し、各種エラーレベルなどを調整したところ、なんとかコンパイルとリンクを通すことができました。

ところが、肝心のアプリケーションが保存されません? 今回はアプリケーションパッケージを生成する方法を取っているので、その設定に問題があるのだろうと予想しました。しかし、こんな所であまり深く考えても無駄ですので、とりあえす、テンプレート(ひな形)プロジェクトを作り、その中のソースやリソースファイルを差し替える方法に切り替えてみました。Fileメニューから「New...」を選択し、テンプレートを選ぶダイアログの指示に従い新しいプロジェクトを作ります。

 

CodeWarrior 7.0EAでは、の作業により「SimpleAlert」というアプリケーションパッケージが用意されます。このプロジェクトに、自作アプリのソースとリソースファイル、そしてプリコンパイルヘッダーやQuickTime Framewrokを加えてオリジナルのプロジェクトへと変貌させます。

 

この状態でMakeしてみると、今度は無事にアプリケーションが保存されることが確認できました。

ただし、このままではアプリケーション名が「SimpleAlert」のままで、アプリ自身のシグネイチャーもオープン可能なファイルタイプも未定義です。そこで、プロジェクトのPreferenceダイアログをオープンし、空欄となっている設定項目や、生成物の検索パスやファイル名を見直してみました。すると、自力で直す所が最低でも3箇所ありました。「Target Settings」の「OutPut Directry」(以下の最初の図)、続いて「PPC Mach-O Target」の「Creator 」と「Output Resource to Separete Flattened File」(以下の2番目の図)、最後に「Mac OS Packager」の「Use Mac OS Packager」と「Create PkgInfo File」(以下の3番目の図)です。

 
 
 

プロジェクトの種類によっては、他にも変更する箇所があるかもしれません。パッケージに関わる設定は少々煩雑なのですが、まあ開発中バージョンですので仕方がないでしょう。より洗練されることを望みたいと思います。

次に、完成したアプリケーションパッケージ上で、Contextualメニューから「パッケージの内容を表示」を選択し、その中のInfo.plistやInfoPlist.string(アプリケーション情報が書き込まれている)といったテキストファイルを編集します。

 

InfoPlist.stringはCodeWarriorのエディターで簡単に編集できますが、Info.plistの方はXMLで記載されていますので、Develper Tools CD-ROMに含まれている「PropertyList Editor」を使うと便利です。

 

どんな具合に編集するかは、Mac OS Xに含まれている他のアプリケーションパッケージ(Previewなど)のInfo.plistを参考にすると良いでしょう。これで、アプリケーションパッケージにちゃんとオリジナルアイコンが付き、Finder上での対応ファイルのドラッグ&ドロップで、それをオープンすることが可能となります。

今回の動作テストは、あくまでも開発途中のCodeWarrior 7.0によるものですので、その点をご了承ください。正式版では多くの不都合も取れ、立派な大人に成長していることでしょう。Linkerも、現在はAppleが提供している物をそのまま利用しているそうですが、製品版にはMetrowerks独自の高速バージョンが搭載される予定だそうです。とにかく、今年の秋に入手できるだろうCodeWarrior 7.0製品版が待ち遠しいかぎりです。これからも、Metrowerks社のガンバリに大いに期待したいと思います。

次回は、WWDC関連の話題により中断していたNavigation Service 3.0の話しを再開します。新方式のファイルオープンや保存ダイアログルーチンについて解説する予定です。
[小池邦人/オッティモ]
関連リンクオッティモ