PocketStudio Professional/Standard
1.1 ファースト インプレッション
Pocket Technologies, Inc. により 2 月 11 日にリリースされた「PocketStudio Professional/Standard 1.1」は、まだあまり知られていない Palm OS の統合開発環境です。PocketStudio には次のような特徴があります。
URL http://www.pocket-technologies.com/default.asp
・開発言語に Pascal を使用しており、Delphi と同じような感覚で
Palm OS アプリケーション開発が行える
・32bit Pascal コンパイラを搭載した統合開発環境である
・PSLibrary によって Palm OS API を扱いやすくしている
このため、Palm マシン上での実行にランタイムは必要なく、コンパイルされたバイナリのサイズもほとんど CodeWarrior
と変わらない、極めて小さくリソースを消費しないものになっており、サンプルを見る限り実行スピードも問題ないようです。
PocketStudio には、Professional 版と Standard 版があり、それぞれ $199.99 と $59.99 になっています(Download のみ)。実行環境としては、Windows 9X/NT 4.0/2000/XP で、32MB 以上のメモリ、72MB 以上のディスクスペースを必要とします(Professional
の場合:Standard は 35MB 以上のディスクスペースが必要)。
また、Pocket Technologies, Inc. のダウンロードページより、Professional 版の 45 日間の期限付きトライアルが入手できますが、33.6MB ありますのでダウンロードには注意が必要です。
Palm Hackers Salon では、早速トライアルをダウンロードして試してみましたので、そのレポートをお届けしましょう。テストに使用したプラットフォームは
Windows 2000 Professional です。
ダウンロードしたアーカイブはダブルクリックでインストールを行ってくれます。特に問題がなければ、デフォルトのまま「C:\Program Files\Pocket Technologies\PocketStudio」以下にインストールされます。同時に 50 以上のサンプルがインストールされますので、それを参考にするとよいと思います。
生成されたディレクトリのうち「Lib」ディレクトリには、CodeWarrior などで利用するヘッダが Pascal のライブラリとして実装されています。中には「Bluetooth」や「SONY\System\SonyJogAssist.pas」などもあり、対応の早さが伺えます。PocketStudio の特徴として「PSLibrary」がありますが、これは Palm OS API のラッパーで、API を隠蔽することでその利用を簡単にしています。これらを利用する時には、ライブラリをプロジェクトに読み込んでおく必要がありますが、一旦読み込めば、後は
PSButton.SetCaption(Button1, 'Hello, world!');
// ボタンのキャプションの変更
|
のように簡単に利用することが可能です。もちろんCodeWarrior のように Palm OS API を呼び出すこともできます。実際に PSLibrary のサンプルを見てみると、コード自体かなり簡単になっていますが、まだ全部がライブラリ化されているわけではないため、用意されていない部分については Palm OS API を直接呼び出す記述が必要になります。さらにクラスには対応していないようです。
さて前置きはこのくらいにして、PocketStudio を動かしてみましょう。
サンプルを作成してみる
スタートメニューから「PocketStudio Professional Release 1.1」を選択します。
ファイルメニューから「New」を選択するとウィザードが立ち上がりますので「Standard Project Wizard」を選択します。次にプロジェクト名とクリエータ ID、保存する場所を聞いてきますので、適当な名前を入力します。
今回はサンプルなのでデフォルトの「Project1」と「appl」にしてあります。
次にアイコンに表示される名前、生成される *.prc ファイルの名前、ターゲット OS のバージョンを入力します。さらに大小アイコン生成のウィザードが表示されますので、別途作成してある場合は「Load」で設定します。
そして全てが終わると、自動的にスケルトンが生成されます。
デフォルトではフォームが生成されていませんので「View」メニューから「Resource Designer」ウィンドウを選択すると、フォームをデザインする画面が立ち上がります。しかしこれがなんとも大きいんですよね・・・。
生成されたプロジェクトの中で、スタートアップ時の ROM バージョンのチェックと、終了時のフォームのクローズ処理は自動的に生成されますので、後はイベントを記述することになります。またリソースも自動的にコードが生成されており、試しにボタンを置いてみるとすぐにコードに反映されます。生成されるリソースのコードは PiRC のものと似ています。
試しに簡単なアプリケーションを作成してみましょう。
下のボタンをタップすると、上にある Field1 に書き込まれた文字列を、下の Field2 にコピーします。これは NSBasic
の場合次のように書けるでしょう。
Field2.Text = Field1.Text
|
CodeWrrior を利用する場合は、
・フォーム上のコピーするフィールドへポインタの取得
・フィールドのテキストのポインタの取得
・新しいメモリーの取得
・テキストのコピー
・コピー先フィールドへのメモリーの割り当て
という手順を踏むことになりますが、PocketStudio の PSLibrary を利用すると、コードは次のように簡単なものになります。
procedure Button1_OnCtlSelect(var Handled: Boolean; ControlID:
UInt16; Control: ControlPtr; On: Boolean);
var
showText: array[0..255] of Char;
begin
PSField.Text(Field1, showText, 255);
// PSLibrary を利用してテキストをバッファにコピーする
PSField.SetText(Field2, showText);
// コピーしたテキストをコピー先フィールドにセットする
Handled := True;
end;
|
もちろん PSLibrary を利用しない場合は、CodeWarrior と同じような手順を踏んで、なおかつ Pascal で記述しなければなりません。
このようにライブラリの利用価値には非常に高いものがあります。とりあえず駆け足でご紹介しましたが、次回は同じアプリケーションを CodeWarrior と PocketStudio の両方を使って作成し、その違いを明らかにしてみたいと思います。
|