Palmware作成の勉強を始めました

こんにちは!

会社から休みを3日ほどもらったが、特に予定もない*1ので、ちょっとPalmのプログラミングを勉強してみることにしました。
とりあえず、ほとんど予備知識もなしに初めて、"Hello, World!"と表示するサンプルコードをちょっといじって、"こんにちは!"と表示するように変えてみるくらいまではできた。
何かの役に立つかもしれないので、今日までにやってみたことを、記録しておきます。

  1. https://www.developerpavilion.com/palmos/page.asp?page_id=170&target=page.asp&page_id=152&msg=need_to_login(ADN)に登録
  2. Palm Developer Network(PDN)に登録
    • PDNからPalm OS SDK(ヘッダ、サンプルコード、ドキュメント)をダウンロードする
    • Tungsten T5, Treo 650などの最新デバイスに対応するつもりがなければ、PDNに登録せずに、ADNからPalm OS Developer Suiteをダウンロードするだけでも良いかも
  3. Palm OS Developer Suiteのヘルプについてくる"Palm OS Programmer's Companion Volume I"を読む
    • "4. User Interface"あたりまで読んで、Palmプログラムの大雑把な構造をつかむ
      • Windows APIを直接使ったWindowsプログラムと同様に、メインとなる関数にイベントループがあり、イベントをハンドリングしていくような構造
  4. Palm OS Developer Suiteのヘルプについてくる"Introduction to Palm OS Developer Suite"を読む
    • 細かいところは飛ばしながら読んで、どんなツールがあって、どういう順番で使うのか、その概要をつかむ
  5. Palm OS Developer Suiteでサンプルコードのプロジェクトを作って、実際に動かしてみる
    1. "Managed Make 68K C/C++ Project"を新規作成する
      • ウィザードの"Project Code Generation"ページで、"Simple Application"を選ぶ
      • "Hello, World!"と表示される単純なサンプルコードを持ったプロジェクトができる
    2. 適当に"AppMain.c"(ソースコード)とか"AppResources.xrd"(リソースファイル)を開いて、その内容を見てみる
      • "Palm OS Programmer's Companion Volume I"で読んだ内容の復習になる
    3. "Introduction to Palm OS Developer Suite"を参照しながら、サンプルコードをデバッガやPalm OS Simulatorで動かしたりしてみる
  6. サンプルコードのリソースをいじってみる
    1. Palm OS Resource Editorで"AppResources.xrd"(リソースファイル)を編集してみる
      • "Hello, World!"を"こんにちは!"に変えたりしてみる
      • 文字化けするので、ツールバーの地球儀のアイコンをクリックして、選択している言語(?)を"Latin"から"Japanese"に変更
    2. デフォルトの設定だとビルドで失敗するので、日本語が使えるように、Palm OS Resource Compilerの設定を変更する
      • ProjectのPropertiesで、"C/C++ Build"のページを表示して、設定を変更する
        • Locale: "Suppress locale warning (-noLocaleCheck)"をONにする
        • Text Encoding: "Japanese"を選択
    3. サンプルコードをPalm OS Simulatorで実行して、画面に"こんにちは!"と表示された
    4. 実機(Treo 680)にインストールしても、ちゃんと動かいた

プログラミング初心者には厳しいかもしれないけど、他のOSである程度のプログラミング経験があって、英語を読む気力のある人なら、上記の順に進めていけば効率的に勉強できそうです。
この先は、"Palm OS Programmer's Companion"や"Palm OS Programmer's API Reference"などで必要なAPIを調べつつ、実際に自分でプログラムを作ったり、サンプルコードを読んだりすれば良さそう。私の場合は、作りたいプログラムのアイデアが既にあるので、自分でプログラムを作っていこうかと思ってます。

*1:旅行に行くつもりで年休をもらったが、色々あって計画が立てられずにいるうちに、休みの日が来てしまった、というのが正確な理由