Macintosh Developer Online (MDOnline)


2000年9月27日発行号 - Javaは?Cocoaは?



日本の将来はITに託されている…ITは最先端のような顔をしていましたけど、どうもこのところ雲行きが怪し気です(ITの名を冠した会社の方も御覧なので心苦しいのですけど…)。概して、公主導になるとどうもよどんでくるような気がします。先週あたりに発売されていた文芸春秋ではITに関してかなり辛らつに書いてあります(小田島隆さんの「テクハラ」には笑いましたが、森首相のことになってはおかしすぎて笑えない…)。しかし、極め付けは「IT商品券」と言われているインターネット講習会の費用等の補助でしょうか。「違う」と主張はしながらも脳裏をかすめるのは地域振興券のことですね。とにかく、国や自治体が手を下すと何かおかしくなってきます。コンピュータ業界って、これまで比較的自由にやれたという意味で面白みがあったのですが、これじゃあバブル前の公共投資をあてにしていたゼネコン業界と変わらないのではないかと思ってしまいます。もっとも、こうして税金が投入されることでコンピュータ業界はそれなりにうるおうことは確かでしょう。だけども、ゼネコンのそうした体制を批判する動きは今も続いています。株価が下がったら今度は公共投資を当てにすると言うのでは、数年後の崩壊を約束されたものとも思えます。それに投資効果はあるのでしょうか? 確か、90年代中ごろだったかと思いますが、学校にパソコンをということで文部省か通産省だったかで多大な予算が組まれたことがあります。その時にFM TOWNSなんかの導入がけっこうあったみたいな話が聞きますし、TOWNSでなくても当時のパソコンが今ではゴミになっている実態は容易に想像ができます。
バブルで学んだことの1つに、本来の業務をおろそかにしない、ということがあったかと思います。あぶく銭をあてにすべきではないと思うのですけど、そこに仕事があるということなら、そうも言ってられないのかもしれません。だけど、「IT業界は税金を無駄遣いした!」と批判が出てからではもう遅いことも認識しておくべきでしょう。
(新居雅行 msyk@mdonline.jp


Java言語をベースにしたCocoa対応アプリケーション作成のチュートリアル

Mac OS X Public Betaがリリースされ、新しいプラットフォームでの開発環境についての注目もまた集まりつつあるところだろうか。いろいろな開発スタイルが考えられるが、今から1からアプリケーションなどを作るのであれば、互換フレームワークではなくMac OS X本来の機能をふんだんに使えるCocoaでのアプリケーション作成をしたいと考えるだろう。従来はYellow Boxなどと呼ばれていて、開発環境はObjective-Cであった。しかしながら、Mac OS Xの進捗に合わせるようにJavaを言語として開発するスタイルが登場してきた。Objective-Cのメリットもあるが、Javaになじみがあるプログラマの方が多いのは確かだ。しかしながら、じゃあどうやって開発を行うのかといった具体的な話ができなかったのであるが、以下のリンクあるPDFファイル「Developing Cocoa Java Applications」はいろいろな具体的な解説によって、さまざまな疑問はかなり晴れるだろう。この文書はタイトルとおり、Java言語でCocoaアプリケーションを作成しようという場合のチュートリアルである。Mac OS Xの開発環境がなくても図や手順がしっかりあるので、感じはかなりわかると思われる。76ページのPDFで大きく分けて、「Building a Simple Application」「Creating a Custom View Class」「Debugging Java Applications」の3つのパートがある。「Building a Simple Application」ではProject Builderを利用したアプリケーションのプロジェクトの用意やInterface Builderを使ったユーザインタフェース部分の作成、コントローラの定義や利用、そしてアプリケーションビルドといった一連の作業が紹介される。「Creating a Custom View Class」ではViewを拡張して機能を組み込むといったフレームワークでの代表的な作例が示される。「Debugging Java Applications」ではProject Builderを使ったデバッグの方法が示される。いずれも、Java言語を使ってCocoa対応アプリケーションを作成するための基本中の基本がまとめられている。英語ではあるが、図も多くありざっと眺めることもできる。ADC会員であれば、Developer Toolsで書かれていることをトレースすることもできるだろう。全く同じではないものの、WebObjectsでもある程度は同様な作業ができるかもしれない。
CocoaはJavaを言語として開発に利用できるが、フレームワーク自体は独自のものを利用する。JavaのAWTやSwingを使ったものではない。しかしながら、Cocoaのフレームワークでは、Javaの標準ライブラリよりも高い機能を提供する場面は多い。たとえば、文書ファイルや文書ウインドウといった枠組みがCocoaで用意されているため、アプリケーション作成においては同じJavaでもCocoaの方が多くの機能を提供していると言えるだろう。このPDFでは文書ファイルのフレームワークまでの解説はないが、Cocoaをベースに開発を進めることは、ある意味ではMac OS Xのメインストリームにつながると言える。とにかくCocoa開発の様子を知りたいという人、開発作業がどんなものになるかを知りたい人など、Cocoaに注目している人は要チェック文書だと言える。

関連リンク:Inside Cocoa: Developing Cocoa Java Applications: A Tutorial
カテゴリ:アップルからの開発資料, Java, Cocoa


【Mac OS X Public Betaシリーズ】Javaの開発環境まであるけれど…

今年のJavaOneではMac OS XがJava2対応となったことで話題を振りまいた。Javaという角度からMac OS Xに期待が集まっているのも確かだ。というより、MRJがいつまでたってもJDK 1.1レベルだったことから、早くJava2に移行してもらいたいというニーズが強いことも確かである。さっそく、Mac OS X Public BetaのJava環境をチェックしてみた。今回紹介する内容は、ファイルについては必然的にディレクトリ階層(2000年9月26日配信の「“フォルダ階層”と“ディレクトリ階層”」を参照)で示すことになる。開発環境についての紹介ができればいいのだが、残念ながらまだ機密事項だということで完全には紹介はできない。ここでは、Developer Toolsではなく、公開されているPublic Betaだけの場合である。念のため。

さて、まずはclassファイルやjarファイルをダブルクリックしてみたが、何も起こらない。それにMac OS Xに添付のアプリケーションではJava開発関係のものがなかったので、Terminalを起動した。ここでいきなりコマンドとして「java」と打ち込んでみた。「Command not found.」が出たら道のりは険しいが、何と「Usage:」つまりコマンドの使い方が出たのである! もちろん、javac、jarなどいわゆるJava2 SDKに付属するツールはみんな存在することが確かめられた。whichコマンドで見ると、/usr/bin/ というディレクトリにこれらのコマンドは存在する。もちろん、パスが通っているので、単に「javac ファイル名」でコンパイルなどができるのである。ただ、javaの実体はそこにあったが、javacは/System/Library/Frameworks/JavaVM.framework/Commands/javacにシンボリックリンクされていた。なるほど、ここがシステムフォルダの中のフレームワークのJava関連のありかなのかと感心する。
さっそく、筆者の著書である「チャレンジ!Java」のサンプルプログラムをCD-ROMからコピーして動かしてみた。この書籍は、Windows向けであり、Java2 SDKベースでコンパイルから実行をやろうというものだ。appletviewerで動かすともちろん、しっかりとプログラムが動くではないか! さすがわJavaと思っていたのもつかの間、大きな問題を目の当たりにした。なぜか日本語の文字列が表示されない。文字化けしているのである。ただし、一部のコンポーネントの内部では文字化けしないこともあるようだ。Mac OS Xが英語版だから? でも、日本語フォントはあるはずでは? MacJavaメーリングリストでエキスパートの方に指示をもらっていろいろ調べた結果(メッセージは参照できる)、なぜかMac OS X Public Betaには国際化関連の機能がごっそり抜けているのではないかということが判明した。コンパイル時に文字列を適切なコード変換をしていないのはもちろんだが、Windowsでコンパイルした結果もやはり文字化けするということは、なんとかするにしても一筋縄では行かないような気がする。とりあえずは追求はあきらめている。
◇MacJavaメーリングリスト
http://www.freeml.com/ml_mess.php?ml=macjava

一方、これは!と思ったことがある。AWTベースのコンポーネントもAqua対応していることだ。SwingでなければAqua対応にならないのかと思っていたが、AWTでも十分に「Aquaだ」と言えるのではないだろうか。以下の図は、「チャレンジ!Java」の第3週目のサンプルで、ButtonなどのAWTのコンポーネントを単にAppletにaddしただけのものである。□で見えているあたりなどで日本語の文字化けを確認していただける。ただ、マウスの反応が悪いなど、動きが妙なのがちょっと気になるところではあるが、とにかくAWTでもAquaなのだ。

◇AWTのコンポーネントを使ったアプレットを動かしたところ
 

ただ、AWTは御存じのようにコンポーネントの数は極めて少ない。たとえばスライダーとかはないわけで、その意味ではMac OSが提供する数々のコンポーネントを使うには結局Swingを利用することになるという風には考えられる。

Java2 SDKの中身がきちんと国際化されて、Mac OS Xの正式リリース版に搭載されるのかどうかは分からない。もっとも、それ以前に10月予定の日本語版できちんと日本語が利用できるようになっていることは切に願うところだ。今の段階で日本語をきちんと出すということも興味はあるのだが、目前に日本語版があるのでそれを待ってもいいだろう。いずれにしても、コマンドラインからのJava利用はできたということである。(ちなみに、IBMが開発しているJavaコンパイラのjikesもMac OS Xには入っている。)
では、コマンドラインから入力するJava開発が本筋なのかと言うと、やはり基本的にはProject Builderを使うなど本格的な開発環境を使うことが一般的だと思われる。Javaのアプリケーションは、ベーシックな形態としてはclassファイルをまとめたjarファイルであり、javaコマンドでjarファイルを起動することができる。しかしながら、jarファイルはFinderでのダブルクリックでは起動しない。Mac OS Xでダブルクリックで起動するためにはBundle(あるいはパッケージ)という形式に従って、jarファイル以外にさまざまなファイルを用意することになる。詳細については不明な点は多いが、公開されている情報を総合すると、Project Builderを使えば、Bundleに従ったMac OS Xでダブルクリック可能なJavaアプリケーションを、簡単に作成できるのである。通常の開発で、わざわざ大変な思いをすることもないだろうから開発ツールを使う手法が主流となるのは目に見えている。
しかしながら、プログラミング人口の裾野は広い。開発ツールは買う気にはなれないけどもプログラミングをしたいという層がいることは確かだ。もし、Mac OS XにJava2 SDK相当のものが搭載されていれば、そうした層の人向けに書籍などさまざまな情報を出すことができる。Java2 SDK相当のものが搭載されてることは決して無意味なことではないと思える。

カテゴリ:Java, Mac OS X Public Betaシリーズ


9月のユーザグループ懇親会でMac版Officeの新バージョンをデモ

アップルのユーザグループコネクションは、2000年9月30日(土曜日)に定例の懇親会を開催する。場所は、東京初台のアップルコンピュータ本社で、13:30〜18:00の予定だ。ユーザグループ会員が対象であるが、ユーザグループに興味がある人も参加可能となっている。ほぼ毎月行われている例会であるが、メーカからのプレゼンテーションがメインイベントとなっている。今回は、マイクロソフトがMac版Officeの新バージョンを紹介する。Officeの新バージョンは、7月のニューヨークのMacworld Expoのときに現地で日本のマスコミ向けにプレゼンテーションされたが、その後は特に説明会などが開催された形跡はないとすると、事実上の日本初のお披露目となるだろう。また、加藤電機からはFreeway 3.0などの紹介がある。詳細は分からないがアップルより新製品の説明もある(iBookの新製品の公算は高いが、Mac OS X Public Betaはどうだろうか?)。

関連リンク:9/30ユーザグループ懇親会
カテゴリ:イベント


Mac OS Xで特定のアカウントで自動的にログインする方法

Mac OS Xは登録されたユーザ名とパスワードを用いて起動時にログインの作業を行わないといけない。しかしながら、Mac OS X Serverのときと同じように、そのログインの作業をバイパスすることができるようになっている。その方法がTech Info Libraryに紹介された。System Preferencesを起動し、Loginのアイコンをクリックして設定できる項目で、Login Windowsのタブを選択する。最初に、管理権限のあるアカウントとパスワードでロックを解除し、Automatically log inのチェックボックスをオンにして、ログインするアカウントとパスワードをしている。そうすれば、起動するときにはログインウインドウは表示されず、ここで指定したアカウントとパスワードで自動的に起動されるようになる。

関連リンク:Mac OS X Public Beta: How to Log In Automatically at System Startup Time
カテゴリ:Knowledge Base(旧TIL), Mac OS X


Mac OS X Public BetaではDVD再生はできない。旧Mac OSで起動するしかない

Tech Info Libraryに公開された文書によると、Mac OS X Public Betaでは現在のところDVDの再生はできない。Mac OS XにはDVD再生ソフトは組み込まれていない。従来のMac OS上で稼動するApple DVD Playerも、Mac OS XのClassic環境では起動せず、Mac OS Xで起動したマシンではDVDの再生はできない。従来のOSであるMac OSで起動してDVDを再生するしかない。将来的にはこの問題は解決する方向で動いている。

関連リンク:Mac OS X Public Beta: Apple DVD Player Does Not Work
カテゴリ:Knowledge Base(旧TIL), Mac OS X


Mac OS XでJSPを稼動させることを目標にしたWebサイトが開設

“Mac OS Xはサーバに使うべき…”UNIXとMac OSを知る人にとってはこうした命題が頭の中でうごめいているかもしれない。「Mac OS X Public Beta: JSP & Database Page」というサイトはそうした人たちに有益な情報を与えるサイトになる可能性もある。Mac OS XでJava Server Pagesを稼動させるということにフォーカスしたサイトだ。TomcatベースのサーバサイドJava環境をインストールして動かし、MySQLをデータベースエンジンとして利用して、データベース連動Webサイトを構築するというのが当面の目標のようだ。JSPは、HTMLソースにスクリプトを埋め込む形式で稼動するもので、そのスクリプトはサーバ側で実行される。Java言語でスクリプトを記述するものである。なお、Mac OS XでJSPを使う手法としては、Tenon社のiToolsを購入するという方法もある。

関連リンク:Mac OS X Public Beta: JSP & Database Page
カテゴリ:Java, Mac OS X


Technical Q&AのQuickTime関連文書が更新

Appleが開発者向けに公開しているTechnical Q&Aにおいて、QuickTime関連の文書が更新されている。いずれも、既存の文書であるが、要約とアドレスは以下の通りだ。

◇QTMCC14:Component Definitions
 http://devworld.apple.com/qa/qtmcc/qtmcc14.html
用語の定義についての説明である。Components、Component Instances、Component Storage、Component RefConsの違いを説明したもの。Componentは型として意味が説明されており、コンポーネントを識別する32ビットの値である。Component Instancesは開いたコンポーネントを識別する32ビットの値であるがポインタではない。オブジェクト指向的に見れば、Componentはクラスで、Component Instanceはオブジェクトだと考えれば良い。Component Storageはコンポーネントが確保したメモリへのハンドルあるいはポインタである。Component RefConsについてはある程度自由に使えるものであるが、データのあるメモリへのポインタなどに指定されている。これら、コンポーネント関連の基本用語の説明に加えて、短いサンプルプログラムも示されている。

◇QTMCC15:Decompressing MP3
 http://devworld.apple.com/qa/qtmcc/qtmcc15.html
MP3データを取り込む方法に付いての解説。(MDOnlineでは2000年8月15日に「Sound Managerの機能を使ってMP3の圧縮を解く方法」というタイトルで紹介済み)

◇QTMCC16:Importing Sys 7 Snds
 http://devworld.apple.com/qa/qtmcc/qtmcc16.html
System 7のサウンドファイルをQuickTimeの機能で読み込んで再生する方法が説明されている。サンプルプログラムも掲載されている。(既公開文書の更新)

◇QTMCC17:Track Editing
 http://devworld.apple.com/qa/qtmcc/qtmcc17.html
QuickTimeのムービーのトラック編集のAPIをどう使えばいいのかといった問いに答えたもの。(既公開文書の更新)

カテゴリ:Technical Q&A, QuickTime