Macintosh Developer Online (MDOnline)


2001年5月2日発行号 - Mac OS X 10.0.2へアップデート



Cocoaプログラミングの続きをお届けしようと思っていたら、いっぱいニュースがあるために、執筆までができませんでした。それから、ハードウエア関連のニュースも取りこぼしがあります。すみませんが、来週の頭にお届けすることにします。連休の中日なので、静かなものかと思っていたのですが、米国は連休に関係ないですからね。ご存じの通りiBookが発表されました。今日の午前中は、AppleStoreへもなかなか入れませんでしたが、たくさんの方が購入されたのかもしれません。詳しくは記事を見ていただくとして、個人的には買うかどうか少し迷ったものの、とりあえず「買わない」ことにしました。重たいけど(負け惜しみ〜笑)PowerBook G3もありますからね。だけど、記事を書いているとだんだんほしくなってきたりします。やっぱり、あのスペックで2.2kgは軽いと思いますし、値段的にも割高感はありません。Windowsノートもいろいろ売っていますが、結局のところショップに行くと20万までと思っていても20万越えたあたりにちょうどほしい仕様のものもがあって、そのあたりを買いがちです。また、結果的にメモリを買うことでまた何万かプラスするわけですからね。それを思うと値段も安いですね。ただ、これを買ってしまって、サブノートがもし出てしまうと非常に悔しい思いをするところです。それにG3でバスが66MHzというのがひっかかりますね。できれば次に買うのはG4にしたいと思っていたところですし。しばらく悩むことになるかもしれませんけど、やっぱり7月に出るであろう次のマシンを待つことになると思います。
WWDC 2001のレザージャケットに当選していることがメールで来ました。WWDCへの出発も再来週に迫ってきています。
(新居雅行 msyk@mdonline.jp


Mac OS X 10.0.2へのアップデータが公開、iTunesでのCD-RW書き込みに対応など

Mac OS Xの2回目のアップデートが行われた。Mac OS 10.0.2というバージョンにアップデートする。アップデートについては、システム環境設定の「ソフトウエア・アップデート」を使って行えばよい。まだ、同時にiTunes for Mac OS X 1.1.1へのアップデートも行われる。合わせて20数MBほどのダウンロードサイズとなっている。なお、アップデートは、Mac OS X 10.0.1にアップデートされているのが前提となっている。
今回のアップデートの目玉は、iTunesを利用してCD-RWドライブでのディスク書き込みに対応したことだ。OSのアップデートとしては珍しく、ニュースリリースまで出してアピールしている。iTunes 1.1.1については別掲の記事で紹介しよう。なお、Finderでの作業でCD-RWディスクにファイルの書き出しを行う機能(つまり、Disc Burner相当の機能)については言及はされておらず詳細は不明だが、iTunesのTIL文書ではブランクディスクを入れるとフォーマットするかどうかというメッセージがでるという説明もあり、iTunes以外にもシステム機能にもCD-RW対応が拡張していることが伺える。(残念ながら対応ドライブを筆者は所持していないために、確認ができない。)
そのほかFireWireやUSBの性能向上、Classic環境での向上、全体的な処理能力の向上などが施されている。変更点は以下の「10.0.2 Update and Before You Install Information」というTech Info Libraryの文書にまとめられているが、記載内容はあまり具体的ではない。また、ftpサーバ機能を提供するftpdがアップデートしている。

◇Mac OS X 10.0.2 Update Information and Software
 http://til.info.apple.com/techinfo.nsf/artnum/n75134
◇Mac OS X 10.0: 10.0.2 Update and Before You Install Information
 http://til.info.apple.com/techinfo.nsf/artnum/n106293
◇Apple Releases Mac OS X Update with CD Burning
 http://www.apple.com/pr/library/2001/may/1macosx.html

カテゴリ:メディア制作, OS関連ソフトウエア, Mac OS X


小池邦人のプログラミング日記》2001/5/2<CarbonLibの「謎」よもやま話>

今回は、Mac OS X環境でのCarbonLibに関する「謎」についてのお話しです。発表されてから随分時間が経ったにもかかわらず、未だ実現の方法がよく分からない機能や、バグなのか仕様なのか判断に困ってしまう現象を取り上げてみました。

つい最近、Apple SDKサイトに「Universal Interfaces 3.4」と「CarbonLib 1.3.1 SDK」が登録されました。これにより、ADCメンバーでない方でも最新のCarbon開発環境が利用できるようになりました。SDKには最新の「CarbonLib」も含まれていますので、何らかの問題に遭遇されている方は、機能拡張フォルダの旧バージョンと差し替えて試してみると良いでしょう。このバージョンにより、日本語環境で表面化していた文字入力やプリントアウトに関する問題の多くが解決されていればと思います。付属ドキュメントの「CarbonLib 1.3.1 TN」を読むと、v1.2.5からの改良点がいくつか記載されています。「Mac OS 9.1以降では、FSOpenResourceFile()によりデータフォークに保存されているリソースのオープンが可能」などといった項目もあります(今まではできなかったのか!)。それ以外にも、今まで存在していた「Mac OS 9とMac OS Xでの挙動の差異」を吸収するための処置がなされているようです。バグフィックス以外の項目が多いところを見ると、CarbonLib 1.3.1を含んだMac OS 9の新バージョンの登場も近いかもしれません。

CarbonLibに含まれているほとんどのAPIは、Mac OS 9とMac OS Xで共通に利用できます。これにより、デベロッパーはどちらの環境でも起動できるアプリケーションを開発することができるわけです。しかし、中にはMac OS Xのみでしか利用できない機能や仕組みもあります。前回紹介した「ウィンドウのLive Resizing」もそのひとつです。こうした機能を利用する場合に限り、アプリケーションが起動されている環境をチェックして処理を切り分けることが必要となります。例えば、最近の「Techincal Note 2017」で「LaunchServices」という、Mac OS Xでのみで利用可能なサービスが紹介されていました。これは、アプリケーションからドキュメントを遠隔オープンしたり、アプリケーションがオープンできるドキュメントの種類を調べたりするためのAPI群です。

Mac OS 9でアプリからドキュメントを遠隔オープンする時には、Finderに対してドキュメントのオープンを指示するApple Eventを送ってやるのが一般的でした。これを実現するのには、オープンしたいドキュメントのFSSpec(ファイル保存場所情報)が必要となります。FSSpecを使わずにクリエータやファイルタイプ情報のみで起動させる方法もあるのですが、こちらにはかなり複雑な処理が必要となりました。こうした問題は、このLaunchServicesの登場により解決されそうです。ちなみに、私がMac OS Xで旧方法を試したところ、Mac OS X Finderへドキュメント遠隔オープンのApple Eventを送っても何の反応もありませんでした。不思議なことに、Classic環境(Classic Finderは起動してないのに...)から送ったApple Eventは有効となります。「バグかな?」と思っていましたが、代用品としてLaunchServicesが紹介さているのを見ると、Mac OS Xの場合に限り、遠隔オープンの処理をLaunchServicesを使って書き直した方が賢明なのかもしれません。

バグなのか仕様なのか判断できない現象は、自作アプリをCarbon Event Modelへと移行する時にも遭遇しました。例えば、Mac OS 9でCarbon Event Modelを使うと、「kEventClassControl」(コントロールクラス)に属するCarbon Eventがほとんど送られて来ないのです。唯一送られてくるのは「kEventControlHitTest」だけです。この問題は、Carbon Eventの対象オブジェクトをコントロール自身にしても、それを配置したているウィンドウにしても解決しませんでした。コントロールのアクティブやインアクティブといった単純なCarbon Eventさえも送られて来ないのです。ところが、Mac OS X環境では、こうしたCarbon Eventも問題なく送られて来ます。結局のところ、このようなMac OS 9での問題点を考慮すると、旧Event ModelとCarbon Event Modelが混在しているような中途半端な移行になってしまいます。Appleは、Carbon Event ModelはMac OS Xだけで使えと言っているような気がしてなりません...。

さて、Mac OS XにはApplicationメニューが用意されており、作業終了(Quit)アイテムはそこに配置されるようになりました。Applicationメニューには「環境設定...」もあり、アプリケーションの環境設定ダイアログは、これを選択することで表示させるように推奨されています。例えばMac OS X版のInternet Explorer(Carbonアプリ)では、この「環境設定...」がちゃんとサポートされています。こうしたメニューアイテムはシステム側で自動的に追加されるのですが、これの使い方が「CarbonPortingGuide」や「AquaGuidelines」などのドキュメントに載っていないのです。とりあえず、Carbn Eventのハイコマンド用(kHICommandPreferences)のHandlerルーチンで処理するのだろうと推測して試してみましたが、今度は「環境設定...」アイテムのハイライト(使用不可)を解除する方法が見つからずに困ってしまいました。

「アバウト表示」があるため、Applicationメニュー自身はアプリ側で定義していますので、GetMenuRef()でMenuHandleを得て指定アイテムをEnableMenuItem()すれば、問題なくハイライトを解除できると考えていました。ところが、この処理ではメニューアイテムの状態を変えることはでません。どうもMac OS Xが追加しているアイテムは、アプリケーション側から操作ができないようにプロテクトされているようなのです。そこで色々と調べて行くと、AppleEvents.hのkCoreEventClassに、kAEShowPreferencesという「Moc OS X Only」のApple Event IDが定義されているのを発見しました。つまり、CoreEventClassのkAEShowPreferencesに対応するApple Event Handlerを用意すれば、そこで「環境設定...」アイテムが処理できるわけです。ならば、そのHandlerルーチンをAEInstallEventHandler()でインストールした時点で、このアイテムのハイライトが解除されるのだろうと推測したのですが、こちらも大ハズレでした(笑)。

アプリ用の初期設定ファイルを作成したり、そこにデータを書き込んだりするのには「Core Foundation」のAPIを利用することができます。そこでCFPreferences.hについても詳しく調べてみましたが、Applicationメニューに関係するAPIは無さそうです。ならば、リソース側にメニューアイテムのハイライトをコントロールするための情報があるのではないかと思い、Internet Explorerのリソースを色々と調べてみましが、それらしい物は見つけられませんでした。ひょっとしてPlistテキスト(アプリケーション情報がXMLで記述してある)の方かもしれないと、こちらの内容もPropatyListEditorで表示してみましたが、やはりそれらしき記述は見あたりません。とは言っても、とにかくInternet Explorerでは「環境設定...」の処理が実現されているわけですから、何らかの秘密があるのは間違いないはずです。

CoCoaアプリでは可能なのに、Carbonアプリは実現方法が分からない機能もあります。例えば、ファイル保存用ダイアログをSheet Window(親ウィンドウのタイトルバーから降りてくるウィンドウ)として表示する方法です。Apple Carbon Documentサイトで「Navigation Service」の最新リファレンスを調べると、CarbonLib v1.1よりNavigation Service 3.0が導入されたと記されています。Universal Interfaces 3.4のNavigation.hを見ると、確かに今まで利用してきたNavGetFile()やNavPutFile()に加えて、NavCreateGetFileDialog()やNavCreatePutFileDialog()といった新しいAPIが定義されています。新たに用意されたNavDialogCreationOptions構造体には、parentWindowというメンバーも定義されており、これにSheet Widowの親ウィンドウを設定しろとの注意書があります。「これだ!」と思い、さっそく新しいAPIに書き換えてMac OS Xで試してみましたが、やはりファイル保存用ダイアログはSheet Windowとしてオープンされませんでした。それどころか正常なFSSpecも得られなくなり、ファイルが正しく保存できなくなってしまいました。こちらに関しては未だに原因不明で解決できていません。

Sheet Window自体は、Window MangerのShowSheetWindow()を用いればオープンすることが可能です。まあ、ファイル保存用ダイアログのSheet Window化は、Mac OS X版のInternet Explorerでも実現されていませんので、残念ながら現状のCarbonLibでは未実装なのかもしれません。しかし、ユーザにとってCarbonアプリとCocoaアプリで用いられるユーザインターフェースに違いがあるのは混乱の元となります(ユーザがどちらのアプリなのか頓着する必要は無いので)。例えば、CocoaアプリのApplicationメニューに利用されている「サービス」アイテムなども、Carbonアプリからどのように実現したらよいのか不明な機能のひとつです。CarbonとCocoaどちらのフレームワークでも、ユーザインターフェースに関係するAPIだけは共通な物を用意するように、Appleに強く要望したいところです。

ひょっとすると、今回取り上げた「謎」には既に解決策があり、私がそれを知らないだけかもしれません。もしそうした解決策をご存じの方がいらっしゃいましたら、ぜひご連絡ください。同じように苦労している多くの仲間に速やかに紹介したいと思います。
[小池邦人/オッティモ]

関連リンク:オッティモ
カテゴリ:Carbon/CF, 小池邦人のプログラミング日記


iBookのデザインが一新、XGAディスプレイやCD-RWを採用など

2001年5月1日の米国で開催された記者会見は、新しくなったiBookの発表であった。今までの曲線的でカラフルなデザインを一新し、白っぽいなデザインとなった。また、スペックの向上に加えて軽量化も図られており、同じiBookという名前ながらきわめて大きな機能の変更が行われたと言えるだろう。また、価格競争力も付与されている。
新iBookは、500MHzのG3プロセッサを搭載し、256MBの2次キャッシュが搭載されている。システムおよびメモリのバスは66MHzだ。そして、内蔵ディスプレイは、XGA(1024×768ドット)サイズで12.1インチTFT液晶モニタと大型化された。ディスプレイコントローラはAGP 2x対応のRage Mobility 128を搭載している。メモリは64MBあるいは128MBが内蔵されているが、拡張スロットがあってPC100準拠で1.25インチまでの144ピンSO-DIMMを装着できる。32〜512MBまでのメモリを1つ増設できるので、最大搭載メモリは640MBということになる。USBを2ポート、FireWireを1ポート持っているが、別掲のTILの記事にもあるように、今回の新モデルは「Dual USB iBook」という呼称になっている。モデム端子に加え、100/10BASE-T対応のEthernetポート、そしてAirMacカードのスロットがある。AirMacカードは別売だ。RGBのビデオ出力も可能だ。64MBメモリでCD-ROMドライブタイプが158,000円、128MBでDVD-ROMタイプが178,000円、128MBでCD-RWタイプが188,000円となっている(AppleStore価格)。また、CD-RWとDVD-ROMの両方の機能が使えるComboDriveモデルは218,000円となっている。Mac OS 9.1が組み込まれているが、Mac OS XはiBookには含まれていない。iMovie2、iTunes、AppleWorks6、Palm Desktop、FAXstfも付属する。インターネット向けソフトとしては、Internet Explorer、Outlook Express、Netscape Communicator、PostPetが付属する。本体だけでインターネットや文書作成、あるいはスケジュール管理などの一連の作業ができるソフトウエアがセットになっている。
本体のデザインは、筆者は写真でしか見ていないが、写真を見る限りはメタリックな感じだ。ただし、材質はポリカーボーネートである。従来のiBookのデザインはiMacに類似点があったわけで、いわば「iつながり」であった。しかしながら、新しいiBookはPowerBook G4のデザインとの類似性があり、「Bookつながり」になった。従来のiBookは3.2kgだったが、新iBookは2.2kgと大幅に軽量化された。1年前のラインナップだと、PowerBook G3、iBookがそれぞれ2.8kg、3.0kgと3kg前後だったのが、現在はPowerBook G4が2.4kgとなり、2kg台前半に入ったことは、軽量化を望む声に応えたと言えるだろう。また、バッテリの利用時間は最長5時間となっているが、軽量化にともなってバッテリで使える時間が短くなるということがないように設計されている点も評価できるだろう。しかしながら、一方でバスのスピードが66MHzというのはパフォーマンスの点では少し不満な点であると言えるだろう。PCカードスロットはないのだが、これは今までのiBookでも存在しなかったものだけに大きな問題にはならないと思われる。
iBookは以前からWindowsパソコンとの価格競争力のある機種ではあったのだが、最近では、XGAタイプが軒並み20万円を切る価格で販売されるようになっており、SVGAタイプである旧iBookの魅力は薄れていた。しかしながら、新iBookはスペック的にも十分にWindowsノートパソコンと対抗できるようになっていると言えそうだ。たとえば、ヨドバシカメラのサイトではIBM ThinkPad iSeries 1200(1161-92J)が179,800円となっている。モバイルPentium III 700MHz、DVD-ROM、64MB、20GBというスペックだが、重さは2.8kgだ。コンパックのPresario 14XL443は169,800円、Celeron 700MHz、64MB、15GB、CD-RWドライブ、そして重さは2.9kgというところだ。もちろん、一部の機種だけからの判断はしづらいが、「Macintoshは高い」ということはiBookについては言えないだろう。いずれのマシンもディスプレイのサイズはiBookよりも大きいものの、軽さという点でiBookにかなりの魅力があることが分かる。
一方、重量が1.5kg前後の日本的サブノートについては、今回もラインナップには入らなかった。2.2kgが十分に軽量であると考えているのかどうかは不明ではあるが、CDドライブは不要で極限まで軽量なマシンを求めている声には応えていない。ただ、2.2kgは今までのMacintoshのことを考えれば、かなり軽い。この種のサブノートを待っていた人にとってはかなり悩ましい選択になるだろう。
PowerBook G4はデザイナをはじめとしたクリエイター向けなど、いわばプロ市場をねらったもので、G4という高速なプロセッサや、XGAよりも広い液晶ディスプレイを備える。しかしながら、iBookの倍くらいの価格設定となっている。その点からもiBookはかなり買い得感はあると言えそうだ。米国では教育市場にターゲットをかなり絞っているが、日本だと個人ユーザが中心的なターゲットになるだろう。AppleStoreに買いに来るような指名買いユーザも多いかもしれないが、価格的に見てもWindowsノートと並べて売っても十分に太刀打ちできるものだとも考えられる。Apple製品だけを特別なコーナーで売るという方式にもメリットがあるかもしれないが、新しいiBookはWindowsノートの一角にあっても十分に訴求する要素があると思うがどうだろうか。いずれにしても、このところは注目されたCubeに不良品騒ぎがあったり、戸惑う柄物デザインのiMacなどユーザ同士の一体感を味わえる環境ではなかった。新iBookは久しぶりに期待を一身に集めるのではないだろうか。

関連リンク:iBook
カテゴリ:iBook, Macintosh本体


TIL》2001年5月にリリースされたiBookに関する文書、Mac OS Xは10.0.2へアップデートなど

Tech Info Libraryに、2001年5月にリリースされたiBookに関する文書が掲載された。以下はそのアドレスと要約だ。新しいiBookはDual USBタイプと呼んでいる。

◇88122 - iBook (Dual USB): Eject Key Does Not Work With Mac OS X 10.0.1
 http://til.info.apple.com/techinfo.nsf/artnum/n88122
イジェクトキー(F12キー)は、Mac OS X 10.0.1まででは機能しない。10.0.2にアップデートすることで利用できるようになる。

◇88123 - iBook (Dual USB): Mac OS X May Not Recognize External Monitor
 http://til.info.apple.com/techinfo.nsf/artnum/n88123
iBookの外部ビデオ出力に接続したモニタを認識しない場合には、Mac OS X 10.0.2へアップデートすることで解決できる。

◇88121 - iBook (Dual USB): Removing and Replacing the Battery
 http://til.info.apple.com/techinfo.nsf/artnum/n88121
バッテリの取り外し方法や取り付け方法がイラストとともに手順で説明されている。

◇88119 - iBook (Dual USB): External Ports and Connectors
 http://til.info.apple.com/techinfo.nsf/artnum/n88119
2001年5月に発売されたiBookの側面の写真と、外部接続ポートの説明。

◇88120 - iBook (Dual USB): Technical Specifications
 http://til.info.apple.com/techinfo.nsf/artnum/n88120
2001年5月に発売されたiBookのスペック一覧。

カテゴリ:Knowledge Base(旧TIL), iBook


iTunes 1.1.1 for Mac OS Xが公開、CD書き込みや全画面エフェクトに対応

Mac OS X 10.0.2へのアップデートとともに公開されたiTunes 1.1.1 for Mac OS Xは、iTunesからCD-R/RWディスクへの音楽ディスクの書き込みを可能にした。Apple製およびサードパーティのUSBあるいはFireWire対応CD-RWドライブに対応している。対応ドライブについては、iTunes 1.1.1に関しての言及はないため、Mac OS版のiTunes 1.1の対応ドライブと同じものと思われる。また、ビジュアルエフェクトが全画面でできるようにもなった。さらに、iTunesをコントロールするDockling(Dock用ユーティリティ)がインストールされる。これによりiTunesの起動を始め、プレイに関するコントロールをiTunesをアクティブにしなくてもできるようになる。

Tech Info Libraryに、iTunes 1.1.1 for Mac OS Xに関する文書として、以下のものが公開されている。併せて紹介しておこう。

◇60843 - iTunes 1.1.1 for Mac OS X: Click Burn Before Inserting Blank Discs
 http://til.info.apple.com/techinfo.nsf/artnum/n60843
「CDを作成」ボタンを押してから、ブランクのディスクをドライブに入れる。そうしないと警告メッセージが表示される。

◇60842 - iTunes 1.1.1 for Mac OS X: USB CD-RW Drives Should Be Set to 2x
 http://til.info.apple.com/techinfo.nsf/artnum/n60842
USBのCD-RWドライブで音楽CDを作成するときには、書き込みスピードは2xに設定する。環境設定の「詳細設定」タブにある書き込みスピードの設定を行う。

◇60841 - iTunes for Mac OS X: Set Sleep to Never When Burning Audio CDs
 http://til.info.apple.com/techinfo.nsf/artnum/n60841
書き込み中にスリープにはいると、書き込みが失敗し、コンピュータが応答しなくなることもある。システム環境設定の「省エネルギー」でスリープをしないように設定しておく必要がある。

関連リンク:About iTunes for Mac OS X
カテゴリ:Knowledge Base(旧TIL), メディアプレイヤ


REALbasic 3.1の日本語版が正式リリース、Mac OS X対応版で最初の正式日本語版

アスキーは、開発ツールのREALbasic 3.1の日本語版を公開した。既存ユーザなどには、Ver.3.1の日本語版のベータ版を配布していたが、正式リリースとなった。英語版はVer.3.0のリリースがあり、その後にVer.3.1がリリースされた。しかしながら、日本語版のVer.3.0は暫定版としてのリリースを最後にVer.3.1のベータに突入したため、Mac OS Xのネイティブアプリケーション制作に対応したREALbasic 3の日本語版は、今回のVer.3.1が初めての正式版ということになる。REALbasic 3は、Carbon対応により、Mac OS Xでネイティブなアプリケーションを作成できる。また、開発ツール自体もMac OS Xのネイティブアプリケーションである。開発の上でもスプライト機能などいくつかの新機能がある。ただし、Ver.3.0はMac OS X Public Beta対応だったため、Mac OS X 10.0では問題が出ており、まもなくMac OS X 10.0に適合したVer.3.1の開発に入った。なお、すでにVer.3.2のベータ版の開発が進んでおり、予定では英語版のVer.3.2は5月にもリリースされるとしている。

関連リンク:REALbasic 3.1日本語版を公開しました
カテゴリ:開発ツール, REALbasic