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 の両方を使って作成し、その違いを明らかにしてみたいと思います。



copyright(C)2002 Hacker Dude-san all rights reserved.