Macintosh Developer Online (MDOnline)


2001年12月6日発行号 - AppleScript Studioの全貌が見えた!



私は雑誌にももちろん記事をいまでも書いていますが、以前はパソコン一般誌にも書いていましたけど、最近はMac専門誌ばかりでした。ただ、Web系には最近になって進出もしていますけど、ネタ的にはかなりマックっぽいところです。ところが、月刊アイティセレクト(IT SELECT)という雑誌から依頼が来まして、先月末に発行された号(2002年1月号)から連載を持つことになりました。例によってOfficeソフトがどうこう…みたいなのではなく、なんと、IT雑誌にマックのことを書いてほしいと言われたのです。つまりは、ある意味で実用的なものではなく、話題性がほしいといった編集意図のようです。アイティセレクトはどっちかというと技術誌ではなく情報誌的なノリですので、業界動向みたいなところが多い感じです。ただ、コーナー名が「マックちゃんねる」ってのはなんか、どーもね〜(笑)、まあいいんですけどね。最初はなんでマックはITの蚊帳の外になってしまったのかといった話になっています。Mac Fanの連載は基本的にはマックを利用者としての視点から見るようにしていますが、アイティセレクトの方はコンピュータ業界から見るような感じになると思います。いずれにしても、こんな話が来ること自体が実は驚きであるのは、実はアイティセレクトって会社の社長は、昔、WINDOWS WORLDの編集長をしていた人だからです。古くからのユーザの人は、「あ、あの特集か…」と思い出されるんじゃないでしょうか。

さて、懸賞メルマガ化(笑)しつつありますが、今日もプレゼントがあります。iMovie本の記事を書きましたが、やはり同一会社ということで、大量に確保できました。もちろん、MDOnlineの読者のみなさんには、初歩的すぎる本でかもしれませんが、同居人対応、プロパガンダ等ご活用することもできるかと思います。もちろん、ちょうどiMovieなんて全然触ったこともなったという方にはいい機会になるかもしれません。

===============================プレゼント
iMovie2でカンタンデジタルビデオ編集(10冊、ローカス提供)
――――――――――――――――――――――――――――――――――――


(新居雅行 msyk@mdonline.jp


【MacWIRE配信予定】AppleScript Studioのドキュメントが公開、Cocoaベースでのスクリプトプログラム開発ツール

AppleのDeveloper ToolsでAppleScriptプログラムの開発ができるAppleScript Studioに関するドキュメントだけが公開されている。AppleScript Studioは、どうやらMac OS X 10.1.2と、Developer ToolsのDecember 2001版で使える模様だ。いずれもまだ一般にはリリースされていないものであるが、いずれも2001年12月にリリースされなければ論理的に矛盾となるから、おそらくそうした予定なのだろう。
AppleScript Studioをベースにしたスクリプトアプリケーションは、全体がCocoaアプリケーションであるというのが1つのポイントだろう。そして、Cocoaで用意されたGUIのコンポーネントがAppleScriptで使えるということになる。Interface Builderを使って、ボタンなどを配置するのだが、ボタンで利用したいイベントを、プロパティウインドウで指定すると、それに対応したソースのハンドラが用意される。そのハンドラ側では、AppleScriptに従ってプログラムを追加することで、ボタンを押したときの処理が記述できるという具合だ。その部分はAppleScriptであるから、別のアプリケーションに対する操作を記述することは可能になるはずだ。メニューなどを定義することができるので、アプリケーションとしての形態のものが作成できることになる。また、デバッグもProject Builder側でできると説明がなされている。さらに、AppleScriptから、Cocoaのオブジェクトにあるメソッドを直接呼び出すことができるようになっているため、ある意味ではAppleScriptからCocoaのAPIへの透過性は高いと言えるだろう。
なお、ドキュメントをざっと見たところの想像ではあるが、CocoaのGUIコンポーネントはカスタマイズが可能で、独自のコンポーネントを作ることができる。そうしたコンポーネントもAppleScript Studioで利用できるとしたら、より可能性も広がると言えるだろう。
これまでは、スクリプト編集プログラムとして、シンプルなレベルの開発ツールしか提供されなかったため、FaceSpanのような開発ツールが本格的な開発者には高いニーズがあった。しかしながら、AppleScript Studioは少なくとも、FaceSpanの機能は十分にカバーしている。FaceSpanもMac OS Xに向けて開発をしているという噂もあるのだが、さすがに無償のツールと渡り合うのはそうとう厳しいだろう。また、Mac OS時代にはDialog Directorというダイアログボックスを作成する機能拡張があり定番のGUI作成ツールであったが、やはりその役割はAppleScript Studioで置き換わるだろう。無償ツールで高度な開発ができるのはある意味では歓迎されることではあるが、これまでに存在感を保っていた製品がフェードアウトしそうなのは寂しいものでもある。

関連リンク:AppleScript Studio
カテゴリ:ProjectBuilder/Interface Builder, AppleScript


Cocoaの開発者向けドキュメントが大幅に改定

Cocoaのドキュメントが大きく改定されたようだ。以下のページからのドキュメントは参照できるが、これまではReference Documentationにあった各クラスの解説などでは「description forthcoming」とだけ記載されて中身のない部分も多々みられた。そうした部分の700ほどはきちんと内容が記載されたものとなった。NSViewにあるドラッグ&ドロップ関連のメソッドの解説についても、これまではdescription forthcomingだったが内容が追加されている。また、これまではクラスの解説部分の最初のところに、クラスを利用する場合に必要な知識が詳しくかかれていたが、そうした話題はProgramming Topicsに移動するということを基本としており、解説とリファレンスをわけるという方針で編集されたようだ。また、間違いのある記述についても修正されている。以前に調べたけど満足な情報が得られなかったことも、改めてCocoaのドキュメントに当たってみるのもいいかもしれない。

関連リンク:Cocoa Developer Documentation
カテゴリ:アップルからの開発資料, Cocoa


Java Watch on the X》3 - プロセス実行についての補足

2001年11月28〜30日に渡り、Java Watch on the Xのコーナで『3 - 今度こそ「JavaからAppleScript」を実行する』として記事をお届けしたが、少し補足を行いたい。一連の記事はテーマとしては、JavaのアプリケーションからAppleScriptを実行するということではあるが、もっともポイントになるところは、java.lang.Runtimeクラスにあるexecメソッドによって、コマンドラインで与えて実行可能なプロセスを起動する方法である。
その後、いろいろなプログラムを触りながら気付いたことであるが、exec(String)と、exec(String[])のメソッドの動作にはやはり違いがある。特にファイル名の指定においては、後者のStringの配列を使う手法でないと機能しない場合があった。つまり、コマンドラインとしての文字列を1つのStringにするより、引数をそれぞれStringの配列で指定する方が、ファイル名でのトラブルには会いにくいようである。その場合は、パラメータも配列の1つの要素として指定することになる。指定するファイル名については、特にエンコードの変換はしなくても問題ないようだ。つまり、

Runtime.getRuntime().exec("open ’/Applications/ファイルメーカーPro 5.5/ファイルメーカーPro.app’");

は実際にはファイルメーカーProのアプリケーションは起動しない。標準出力を見ると、no such fileとエラーメッセージを見ており、ファイルパスの中にある空白を区切りと解釈してしまっているようである。一方、以下のようにStringの配列で指定すると、問題なく実行できる。

String com[] = {"open", "/Applications/ファイルメーカーPro 5.5/ファイルメーカーPro.app"};
Runtime.getRuntime().exec(com);

空白がないファイル名の場合でも、同様なことがあったが、その場合は日本語を含むファイル名であることが原因であると思われる。いずれにしても、パラメータの引き渡しをきちんと行うには、String配列を使った方のexecメソッドを使うのに限るようだ。

それから、サンプルプログラムのAppleScriptRunnerクラスにあるdoScriptメソッドでは、execでosascriptコマンドを実行していて、標準入出力などを扱っている。ここで、場合によっては、ProcessクラスにあるwaitForメソッドを使って、プロセスの終了を待つ方がいい場合もある。サンプルプログラムでは入れていないが、動作によっては入れた方がいいだろう。waitForで待ってから、osascriptからの標準出力を取り込むのが基本になると思われる。
どういう場合で問題になったかと言えば、AppleScriptRunnerを実行したCocoa-Javaアプリケーションで、指定したスクリプトを実行後、ダイアログボックスを表示するようにプログラムを組んだ。スクリプトでは、Finderをアクティブにしているのだが、そのスクリプトの実行が終わる前に、Cocoa-Javaアプリケーション側で処理が進んでダイアログボックスを表示し、Cocoa-Javaアプリケーションがアクティブになってしまったのである。ここでは、スクリプトの処理の間はFinderがアクティブになってほしいので、waitForメソッドでスクリプトの処理が終了するのを大人しく待つようにしたという次第である。

さらに、AppleScriptにまつわるポイントだ。Mac OSの時代から、AppleScriptのコマンドの一部は「そのアプリケーションをアクティブにしないと機能しない」という現象は稀に見られたが、やっぱりMac OS Xでもあるようだ。アクティブにする、つまりGUIのいちばん手前に持って行くのは、AppleScriptでは「activate」というコマンドだけでかまわない。
具体的には、Finderに対して、make new alias file ...として、エイリアスを作成するAppleScriptプログラムを、Cocoa-Javaの中で動かした。そのスクリプトだけを取り出して、Script Editorで実行するときちんと動いてエイリアスを作るのに、Cocoa-Javaアプリケーションの中ではなぜか動かない。しかもエラーも出ない。そこで、プログラムの最初に「activate」を入れたら、動きだしたと言うわけである。なぜか、Script Editor上では動くというのは若干解せないのではあるが、いずれにしても、Cocoa-JavaアプリケーションからFinderに切り替える作業をAppleScriptの中に忍び込ませることで、なんとか機能したという次第だ。
Mac OSの時代でも、たとえば、あるアプリケーションで作ったグラフをコピーして別のアプリケーションに持ち込むという場合には、背後のアプリケーションの状態でコピーしても、クリップボードには入れられなかった。Toolboxのクリップボードのメカニズムから、アプリケーション切り替え時に汎用的なクリップボード領域の内容が更新されるため、いずれにしても、コピーやペースとはアクティブなアプリケーションに対して行う以外は必ずしもうまくはいかないというのが原則であった。やはり、人間が使うように作られたアプリケーションは、背後で何かやれと言われてもそうはいかないのかもしれない。Mac OS Xでも同じようにアクティブにしないと機能しないスクリプトがあるというのは、理屈の上では釈然とはしないけれど、必要なノウハウのような気がする。

カテゴリ:AppleScript, Java, Java Watch on the X


【MacWIRE配信予定】iMovie2の使い方を初歩からムービーの配付までを解説した書籍

ローカスから発売された書籍「iMovie2でカンタンデジタルビデオ編集」は、ビデオ編集ソフトのiMovie2の解説書だ。筆者は、オンラインコンテンツのJava Security Reportの筆者でもある阪倉一氏で、価格は2,800円、200ページ弱のコンパクトな書籍である。ビデオ編集に必要なもの、そして基本的なiMovie2の使い方、そしてビデオの出力方法なども解説されている。iMovie2はシンプルなソフトなので、簡単だということが強調されているが、なんらかのガイドになる書籍が欲しいという人には適した書籍だと言えるだろう。ムービーの編集では、さまざまな機能を目的ごとに説明している。また作成後はCD-Rへの書き込みやVideoCDの作り方なども含めて、いろいろな方法を説明している。iDVDやより高度なソフトについての解説も含まれている。内容については、Mac OS 9のiMovie2をベースにした解説となっている。

関連リンク:iMovie2でカンタンデジタルビデオ編集
カテゴリ:雑誌、書籍, ビデオ編集


MindVisionがインストーラ作成のコンサルティングサービスを提供

インストーラ作成ツールのInstaller VISEなどを開発しているMindVision Software社は、インストーラ作成に関するコンサルティングサービスを開始した。Installer VISEは、Mac OS Xはもちろん、Windowsにも対応するインストーラ作成ツールである。ソフトウエア自体はシェアウエアやフリーウエアではライセンス費用はなく使えるが、製品などではライセンス料などの支払いが必要になる。一方、コンサルティングサービスでは、ニーズに応じたインストーラ作成が可能となっているため、開発側から見ればアウトソーシングとして利用できることになり、Installer VISEについての技術的ノウハウを自社内で構築する必要もなく、その意味では手軽にインストーラ作成ができることになるだろう。開発リソースが限られたところも多いだろうが、なるべく製品開発にリソースを集中させたい場合には、検討する価値があるサービスだと考えられる。

関連リンク:Installer Consulting Service
カテゴリ:サービス


REALbasic 4の開発版がベータバージョンへ

REALbasicの次期バージョンVer.4の開発がすすめられているが、最初のβ版である「REALbasic 4b1」がリリースされた。基本的にはREALbasic 4として組み込まれる機能は概ね決定され、あとはバグ修正を行って正式リリースとなる模様だ。REALbasic 4では、まず、シェルコマンドの実行機能が改良され、すぐに終了するようなコマンドの実行だけでなく、実行し続けるようなコマンドに対する管理もできるようになっている。その他、テキストフィールドでは32KBの限界がなくなり、Mac OS XではCore Graphicsのエンジンを使って描画するようになっている。他にはコントロール階層の改良など数多くの改良ポイントが挙げられている。

関連リンク:REALbasic 4 Betas
カテゴリ:REALbasic


Mac OS XでのColorSyncの動作などを詳しく解説した文書が公開

Technical Noteに、Mac OS XでのColorSyncに関するドキュメントが掲載された。QuartzとColorSyncの関係やPDFのカラー管理との関連、さらにはCocoaでの対応など、システムの動作のどの部分でColorSyncが機能しているのかと言うことが、かなり詳細に記述されている。また、プロファイルやCMMファイルの位置とその管理方法、そしてシステム環境設定でのColorSyncの設定が実際のアプリケーションの動作とどう関係するのかといったことも含めて解説が行われている。ColorSyncを巻き込むアプリケーション開発を行っている人はもちろんだが、Mac OS XでのColorSyncの動作を知りたい印刷ないしはデザイン分野のユーザにとっても、要チェックな文書であると思われる。

関連リンク:TN2035: ColorSync on Mac OS X
カテゴリ:Technote, ColorSync


KBase》Mac OS 9.2.2のアップデータがリリース、今回もClassic動作の改良

Mac OS 9のアップデートが行われ、Mac OS 9.2.2へのアップデータが公開された。ソフトウエア・アップデートを使ってアップデート作業は行なえるが、Mac OS Xを利用している人は、Mac OS 9で起動してからアップデートを行う必要がある。Mac OS XでのClassic環境として利用を行うときの安定性などの向上が変更点となっている。なお、Final Cut Pro 3のMac OS 9版は、Mac OS 9.2.2が対応プラットフォームとなっている。

関連リンク:Mac OS 9.2.2: Document and Software
カテゴリ:Mac OS 9, Classic


TIL》iDVD 2.0.5へのアップデータが公開、DVD作成プロセスを改良ほか

Mac OS XでのDVDオーサリングソフトiDVDのアップデートが行われ、Ver.2.0.5となる。DVD作成プロセスを改良して進行状況やエラーなどの報告が行われることや、あるファイルがiDVD 2の書類と誤認する問題を修正している。

関連リンク:iDVD 2.0.5 Update for Mac OS X に関する情報とソフトウェアのダウンロード
カテゴリ:メディア制作


KBase》iBookでF12によるトレイのオープンができない場合

2000年5月以降のiBookをMac OS 9で利用するとき、F12キーでディスクトレーが開かない場合の対処について、Knowledge Baseで公開されている。キーボードコントロールパネルにあるファンクションキーの設定で、ホッとファンクションキーの設定が有効になっている必要がある。設定の確認や手順が図入りで説明されている。

関連リンク:iBook: Pressing F12 Does Not Open Disc Tray
カテゴリ:Knowledge Base(旧TIL), iBook


KBase》ベースステーションのEthernet端子は自動検出のためクロスケーブルは不要

新タイプのAirMacベースステーションでは、通常はクロスケーブルでの接続は必要ないことが、Knowledge Baseで紹介されている。WANおよびLANのいずれのEthernet端子についても、自動的に信号の検出を行うので、クロスケーブルでの接続の必要はないということである。また、Ethernet端子は電話のモジュラージャックは接続されないような形状になっていて、間違えて接続することはありえないとしている。

関連リンク:AirPort Base Station (Dual Ethernet): Crossover Cable Not Required
カテゴリ:Knowledge Base(旧TIL), ネットワーク管理, ネットワーク


カーネル機能拡張のビルドに関するトラブルシューティング

Technical Q&Aに、Mac OS Xのカーネル機能拡張を作成するときのビルド時やデバッグ時のエラー対応についての文書が掲載された。

◇QA1096:The dreaded "incompatible flag -framework" error
 http://devworld.apple.com/qa/qa2001/qa1096.html
KEXTをビルドするときに「incompatible flag -framework」というエラーが出る問題についての解説である。Kernel.frameworkをリンクしないようにすればエラーが出なくなるということであるが、図が参照できない状態になっている。おそらくビルド設定で、Kernel.frameworkのチェックボックスをオフにしてリンクはしないようにするということであると思われる。

◇QA1097:Adding dependencies with kmodload
 http://devworld.apple.com/qa/qa2001/qa1097.html
kmodloadコマンドを使ったときにスーパークラスが見つからないというエラーが出る問題についての解説である。-dオプションを設定すれば解決するということで、コマンドの入力例が示されている。

カテゴリ:Technical Q&A, 開発情報