Macintosh Developer Online (MDOnline)


2001年8月21日発行号 - REALbasic 3.5がリリース



お盆中に働いていた私がこんなことを言うのもナンですけど(笑)、「さて夏休みは終わったぞ〜」ってな感じで昨日くらいからビジネスは通常通りに稼動しているかと思ったら、そうでもないのですね。夜に電車に乗って家に帰ったときにはがらがらでした。この前の土日が帰省のピークだとは言いながらも、もしかして、みなさん、月曜日とかは家でゆっくりして、火曜日や水曜あたりから出勤なんでしょうか? だけど、えらいごっつい台風が来るみたいで、西日本のみなさんはすでに警戒体制かもしれません。大事にならないことを祈ります。
ところで、7月のニューヨークでのMacworld Expoは盛り上がらなかったのか、盛り上がったのか、いずれにしても節目のイベントになったことは間違いがありません。次は、シーボルトかパリのエキスポかというところですけど、そういえば、私達日本のユーザや業界がいちばん関係しているMacworld Expo/Tokyoはどうなったのかと思い、実は毎日以下のサイトをチェックしています。
 http://www.idg.co.jp/expo/macworld2002/
「2002年春、開催予定」としか書かれていません。で、幕張メッセの2002年2月のスケジュールを見ても、まだ何も書かれていません。場所が塞がっているわけではなく、例年の規模だとできるくらいの空き具合ですね。東京ビッグサイトは2月のスケジュールまでは掲載されていませんでした。一般にはこうした大規模なイベントをある時に開催すると、来年のスケジュールも発表されるのですが、このところのMacworld Tokyoではそうしたインフォメーションはなされていません。ちなみに、昨年は8月19日付けで、2001年のMacworldの日程についての記事をMDOnlineで書いています。さてどうなっているのでしょうか? いずれにしても、直近はWORLD PC EXPOですね。来場者予定が35万人とはすごい…。Mac OS XのDTPのセミナーは取材して記事にする予定です。取材申し込みをメールしたところです。昨年のPC EXPOは10月に東京ビッグサイトで開催されましたけど、今年は幕張ですね。同時期にMac OS X Public Betaが発売されて、高島屋で長蛇の列を作ったのもそのときでした。もう1年経過するとは、時間の経過も早いものです。なかなか進歩しないと言われるMac OS Xですが、Public Betaとくらべると、ある意味では大きく進歩していると言えるのじゃないでしょうか。
(新居雅行 msyk@mdonline.jp


REALbasic 3.5の英語版が正式リリース、データベースや3D、Office対応などの強化

Real Softwareは、Mac OS Xに対応した開発ツールのREALbasicの最新版Ver.3.5を正式にリリースした。新しいバージョンでは、Mac OS X対応を改良すると共に、3Dグラフィックス機能の追加や、Microsoft Officeのコントロールを行う機能などが追加されている。また、データベース処理を行うコンポーネントが機能アップし、文字列で正規表現が利用できるようになり、さらにRbScriptとして、内部でのスクリプト処理ができるようにもなった。Ver.3.0でMac OS XのCarbon対応となり、開発ツールおよび作成したアプリケーションのいずれもがMac OS Xとなっているが、その後は頻繁なアップデートがくり返されている。Ver.3.5のリリースを2001年後半に行うことはすでに明らかになっており、さらにVer.4.0として2002年にリリースを行うことも表明されている。新しい機能を積極的に追加することに加えて、状況が変化するMac OS Xに対応するためにこまめにバージョンアップを行うという姿勢も取っているようだ。Ver.3.5は有償アップデートとなるが、データベースを利用したアプリケーションが作りやすくなることや正規表現サポートあるいはOffice対応などは、実用アプリケーションを作っている利用者にとってはそれなりに価値のあるアップデートであると言えるだろう。Standard版は$149.95、データベース処理機能やWindows向けのアプリケーション生成機能を含むProfessional版が$349.95となっている。これまではフリーアップデートであったが、Ver.3.5へのアップデートは有償となっており、Standard版のアップデートは$79.95、Professional版のアップデートは$139.95、Standard版からProfessional版へのアップデートは$249.95となっている。いずれも、Ver.3.xからのアップデートのみが設定されている。

◇REALbasic
 http://www.realbasic.com/realbasic/

なお、日本でのREALbasic 3.5対応だが、2001年8月25日より英語版のダウンロード版の販売を開始する。そして、日本語版は9月中旬、ユーザーライセンスパックは10月末の予定となっている。日本語版ライセンスのアップデート料金はStandard版が4,500円、Professional版が10,000円、Standard版からProfessional版へは30,500円となている。日本語版ユーザーライセンスパックのアップデートは、それぞれ6,500円、12,000円、31,500円、英語版のアップデートはそれぞれ、4,000円、9,500円、30,500円となっている。なお、8月20日以降、Ver.3.5の発売日までの間に、Ver.2.xからのアップデートやあるいは新規にREALbasic 3.0のライセンスなどを購入すると、Ver.3.5へは無償アップデートとなる。

◇REALbasic日本語版
 http://www.ascii.co.jp/realbasic/

カテゴリ:開発ツール, REALbasic


鶴薗賢吾のCocoaはやっぱり!出張版》Cocoa版ムービープレイヤをチェック(3)

■ ムービーの制御 ( MyMovieController.m )
ムービーが表示できたので、次は、5つのボタンでの再生や制御について調べます。先頭に飛ぶ(goToBeginning:)、コマ戻し(stepBack:)、コマ送り(stepForward:)、末尾に飛ぶ(goToEnd:)は、ほぼ似たような処理になっているのと、NSMovieViewに対応するメソッドがあるため、goToBeginning:のみを代表として説明します。goToBeginning:の処理の中心は、この行です。


[ movieViewObject gotoBeginning : sender ]; // 先頭に飛ぶ

メソッド名そのままなのですが、ムービーの再生位置を先頭に戻すメソッドであるgotoBeginningを呼んでいます。前後の行にはムービーの再生状態をキープするための自前のメソッドがあります。

[ self saveCurrentMoviePlayingState ]; // 再生状態を保存
[ self restoreMoviePlayingState : sender ]; // 再生状態を復帰

この2つのメソッドの中で扱っている再生状態というのは、「再生しているかどうか」と「再生スピード」の2つです。再生しているかどうかは「isPlaying」で取得できます。逆に、再生と停止は「start:」と「stop:」を使います。再生スピードを得るには「rate」、再生スピードを変えるには「setRate:」を使用します。

 ★ NSMovieView : 再生開始
  [書式] - (void) start : (id) sender
  [入力] sender : メッセージの送信者

 ★ NSMovieView : 再生停止
  [書式] - (void) stop : (id) sender
  [入力] sender : メッセージの送信者

 ★ NSMovieView : 再生中かどうかを取得
  [書式] - (BOOL) isPlaying
  [出力] 返り値 : 再生中 - YES、停止 - NO

 ★ NSMovieView : 再生速度を変更
  [書式] - (void) setRate : (float) rate
  [入力] rate : 再生速度 ( 1で等速再生、0で停止、負の値は逆転再生 )

 ★ NSMovieView : 再生速度を取得
  [書式] - (float) rate
  [出力] 返り値 : 再生速度 ( 1で等速再生、0で停止、負の値は逆転再生 )

NSMovieViewのメソッドは、QuickTime Playerのメニューをそのままメソッドにしたようなものが多く、分かりやすいものばかりですので、リファレンスを見ながらソースを追ってみてください。

■ 再生ボタンの制御(MyMovieController.m)
再生ボタンは、他のアクションよりもちょっと複雑です。ムービー再生中は、再生ボタンが停止ボタンに変化するためです。再生ボタンは、MainMenu.nibの定義では play:メソッドを呼び出すようになっています。クリックされると、play:メソッドが起動されて、start:メソッドでムービーの再生を行います。

[ movieViewObject start : sender ]; // 再生開始

その後の処理で、再生ボタンのタイトルをsetTitle:で「 || 」に変更して、クリックされたときに呼び出すメソッドをsetAction:で「 stop: 」に変更しています。

[ sender setTitle : @"||" ]; // タイトル変更
[ sender setAction : @selector(stop:) ]; // アクション変更

このように、状態に応じてアクションを切替えているわけです。その逆の動作をstop:メソッドでは行っています。まず、stop:で再生を止めて、resetPlayButtonForMovieStopState:を呼びます。

[ movieViewObject stop : sender ]; // 再生停止
[ self resetPlayButtonForMovieStopState : sender ];

resetPlayButtonForMovieStopState:は、以下のような処理になっています。これで、再生ボタンに戻ります。

[ playButton setTitle : @">" ]; // タイトル変更
[ playButton setAction : @selector(play:) ]; // アクション変更

ここでのポイントは、以下のように、動的にアクションを変更できることです。

■ QuickTime Frameworkの使用
続いては、QuickTime Frameworkの使用方法についてです。QuickTime Frameworkを使用するためには、まず「プロジェクトにフレームワークを追加する」という作業が必要です。Project Builderの「プロジェクト → フレームワークを追加...」メニューを実行して、ファイルパネルより「QuickTime.framework」を選択します。
そして、QuickTime Frameworkを使うソースの先頭部分に「 #import 」と書いてヘッダーを読み込むようにしましょう。これで準備は完了です。続いて、APIコールです。再度、MovieControllerのawakeFromNibに戻ります。真ん中当たりに、

EnterMovies(); // QuickTimeの初期化

と書かれています。これは、QuickTime自身を初期化するもので、QuickTimeを使用する前に必ず呼ばなければなりません。また、QuickTime Frameworkでは、ムービーを「Movie」という構造体で扱い、関数インターフェイスもMovieを使っています。そのため、NSMovieのインスタンスをそのまま渡すことは出来ません。NSMovieからMovie構造体を取り出す「QTMovie」というメソッドが用意されているので、これを使います。

Movie qtmovie = [ theMovie QTMovie ]; // Movieを取り出す
gMovie = qtmovie;

こうして取り出した、Movie構造体の変数を使ってQuickTime Frameworkを呼び出します。例えば、stepForward:を見てみますと、

if ( IsMovieDone( gMovie ) ) // 再生完了か?

という行があります。IsMovieDoneという関数がQuickTime APIで、ムービーを再生し終わって最後のフレームにいるかどうかを返すものです。このように、Movie構造体さえ取得できれば、後は、Cの関数を呼び出すのと同じです。Carbonアプリケーションとも記述は共通ですので、QuickTimeのサンプルコードは、Carbonアプリケーション用のものを参考にすることが出来ます。
QuickTime Frameworkを使用するためのポイントをまとめておきましょう。

[鶴薗賢吾]
(続く)

関連リンク:Cocoaはやっぱり!
カテゴリ:


WORLD PC EXPO 2001で、Mac OS XのDTPについての講演を開催

大規模なコンピュータ関連の展示会、WORLD PC EXPO 2001が、2001年9月19日(水)〜22日(土)に渡って、幕張メッセで開催される。パソコンが主体の展示会であるが、CG関連イベントのシーグラフが開催されたり、携帯関連のイベントもあるなど幅広いジャンルをカバーする。アップルコンピュータも出展を行うが、例年だと展示ブースの多くはWindows対応製品を販売する会社で占められている。フォーラムのソリューショントラックで、Macintosh関連セッションが1件開催される。「MacOSXが拓く、新しいDTPワークフロー」と題して、インクナブラ上高地仁氏と、アップルコンピュータの担当者が講演を行う。9月21日(金)の10:00〜12:30で、受講料は事前申込10,000円、当日12,000円となっている。Mac OS XのDTPソリューションは、OSのリリース前にヒラギノフォントや17000文字といった点を強くアピールしていたが、肝心のレイアウトソフトやグラフィックス系ソフトのネイティブ対応が進まず、具体的なソリューションとしてはまだまだ見えていない段階である。そうした中で、どういったDTPソリューションを提案するのかといったことは興味あるところだろう。

関連リンク:WORLD PC EXPO 2001
カテゴリ:イベント


Mac OS Xにフル対応するCodeWarrior Ver.7の出荷は2001年9月

Metrowerksは、Mac OS Xに対応した開発ツール「CodeWarrior for Mac OS, Ver. 7.0」を2001年9月10日に発売すると発表した。現在のCodeWarrior Ver.6.xはCarbon対応であるが、Mac OS X向けの開発ツールとしては欠ける機能も目立つ。Ver.7.0では、Mach-Oバイナリの生成に対応した他、Objective-Cのコンパイル、フレームワーク対応など、Mac OS Xの開発に必須の機能が追加される。2001年5月に開催されたWWDC 2001では来場者に、Early Access版のCD-ROMを配付したが、そのバージョンの正式発売となる。なお、米国では発売までに予約した場合には割り引き特典がある。日本のメトロワークスからは現在のところ、Ver.7.0に関するアナウンスはない。

関連リンク:CodeWarrior for Mac OS, Version 7.0 Pre-Release Special Pricing Offer
カテゴリ:開発ツール, CodeWarrior


Mac OS XのCarbonで全画面描画を実現するDrawSprocketの対応API

Carbonアプリケーションで全画面描画を行う場合にはDrawSprocketを利用できる。Mac OS XでのDrawSprocket対応に対する文書がTechnical Q&Aに掲載された。Mac OS X 10.0.3よりDrawSprocketが利用できるようになっており、この文書に対応しているAPIと、Mac OS Xでは使えないAPIが一覧されている。また、Mac OS XないしはDrawSprocketのバージョンを調べてから実行するようにということも記載されている。

関連リンク:QA1068: Carbon Full Screen Conundrums
カテゴリ:Technical Q&A, グラフィックス