2006年03月01日

開発言語

SymbianOS で使われる開発言語について、特徴を挙げます。全ての UI に対して提供されている訳では無いので、後述のマトリックス表も参照してください。
■C++
新規作成: 2004年12月14日

C++ は、SymbianOS においてネイティブ言語として位置づけられています。ただし、通常の Unix や Windows 向け C++ プログラムがそのままコンパイルできる訳ではなく、 SymbianOS のフレームワークに沿ったコーディングが要求されます。 SymbianOS における C++ の特徴的な点として、以下が挙げられます。

* Clean-up Stack と Leave によるメモリ例外処理
* 多くの場合、writable static 変数は使用禁止
* 非常に小さなスタック

開発手順は、通常の組み込み向け開発と同様に、以下のステップで進みます。

1. エミュレータ (PC上) 用にコンパイル
2. エミュレータ上でデバッグ
3. 実機用にコンパイル
4. (実機上でデバッグ)
5. パッケージ作成

エミュレータ用の C++ コンパイラ・デバッガは、以下が使われます (UI によって使えないものも有り)。

* CodeWarrior Development Studio for Symbian OS
有償のコンパイラで、評価版が Forum Nokia から入手可能。 Professional 版では、実機デバッグがサポートされるとのこと。 先ごろ、Metrowerks から (for SymbianOS 部分だけ) Nokia に買われたので、 UIQ 向けのサポートが今後どうなるのか気になるところです。
* Borland C++ BuilderX Mobile Edition
Borland が出している有償ツールです。 実機デバッグがサポートされているとのこと。
* Borland C++ Mobile Edition
Forum Nokia から無料ダウンロードできます。
* Microsoft Visual C++
ターゲットとなる UI SDK によって、 VC++6 の場合と VC++ .NET の場合があります。

PC 上のエミュレータは、全て SDK に含まれています。 Palm のエミュレータ copilot 等とは異なり、コード自体は x86 のコードが使われます。そのため、市販の SymbianOS 用プログラムをインストールすることはできません。

実機用の C++ コンパイラは、gcc が採用されており、リンカ等と共に SDK に含まれています。

実機上のデバッグは、対応している実機とデバッガの組でしか使えません。それ以外の場合は、エミュレータ上でデバッグを完了させておく必要があります。

パッケージは、通常 SIS 形式と呼ばれるインストール用ファイルを作成します。作成方法は、UI によって差があるので、SDK のドキュメントを参照してください。
■Java
新規作成: 2004年12月14日

Java のサポート状況は、UI だけでなく、機種によって微妙に異なります。以下のうち、1〜2種類程度がサポートされているようです。

* J2ME MIDP
* J2ME Personal Profile
* Personal Java (= JDK1.1.8 相当程度)

開発手順は、大まかに言うと以下のようになります。

1. PC 上の IDE や JDK 等で開発
2. エミュレータ (PC 上) でデバッグ
3. パッケージ作成 (jar, jad, sis など、UI に依存)
4. 実機上で動作確認

DoCoMo の i-mode やボーダフォンの Vアプリ等は必ず電話回線経由で実機にダウンロードしてから実行しますが、 SymbianOS 搭載機ではそれ以外に、 (メモリカードや USB ケーブル経由で) ローカルなストレージに置いた Java アプリケーションを、直接起動することも可能になっています。そのため、実機デバッグが楽だと言えます。

* ボーダフォン 702NK
o J2ME MIDP 2.0
→SDK は、他の Nokia 製携帯電話の MIDP SDK と統合されているようです。 詳細は調査中です。
* Sony Ericsson P800
o Personal Java アプリケーション
→SIS パッケージを作成してから、インストール。 インストール後は、C++ で作成されたアプリと同様に、 メニューから起動します。 SDK は、C++ SDK と統合されています。
o J2ME MIDP 1.0
→SDK は、他の Sony Ericsson 製携帯電話の MIDP SDK と統合されているようです。 詳細は調査中です。
* Nokia 9500
o J2ME Personal Profile
→JAR ファイルを MyOwn から実行すると、インストールされます。 JAR の manifest の書き方が厳しいので、 詳しくはあきらん氏のサイト ( http://www.akiran.net/NOKIA9500/seventh.html を参照。 SDK は、専用の Series80 SDK for Personal Profile を使います。
o J2ME MIDP
(調査中です)

■OPL
新規作成: 2004年12月14日

Psion 初期のオーガナイザの頃から、実機上でプログラムできる言語として使われてきた、 BASIC ライクな言語です。当時は Organizer Programming Language と呼ばれていましたが、後にオープンソース化され、Open Programming Language と名称変更されました。

OPL で書かれたプログラムは、一旦中間コードにコンパイルされて、中間コードインタプリタ上で動作します。インタプリタ (OPL ランタイム) は、予め opl-dev のプロジェクトサイト (http://opl-dev.sourceforge.net/) から入手して、実機やエミュレータ上にインストールする必要があります。また、OPX と呼ばれる拡張モジュールを C++ で記述することで、機能拡張することも可能になっています。

現状の OPL は、UI (機種) によってサポートの度合いが異なり未だ実行のみで開発がサポートされていない機種もあります。その場合は、他の機種や、エミュレータ上で開発を進めることになります。詳しい対応は、上記プロジェクトサイトを参照してください。

開発関連情報は、上記プロジェクトサイトの他、 「Psion (EPOC) での開発の概要」 の OPL の項目もご参照ください。
■Visual Basic など
新規作成: 2004年12月14日

AppForge というサードパーティから、 AppForge Crossfire (http://www.appforge.com/products/enterprise/crossfire/) という開発者向け製品が出ています。これを使うと、C#, VB.NET, Visual Basic 6.0 で開発したプログラムが SymbianOS 上で動作するようです。同サイトから、試用版がダウンロードできます。

試したことが無いので詳細は判りませんが、結構な数の市販ソフトが AppForge Booster を要求するので、利用実績はそれなりにあるようです。
■Python
最終更新: 2005年1月25日 (Python for Series60, UIQ 向けの情報に追記)

Python for Series60 が Forum Nokia で公開されています。 Vodafone 702NK にインストールして、以下ができることを確認しました。

* FExplorer から *.py スクリプトを指定して、実行する。
(標準のファイルマネージャから実行すると、 一部のスクリプト終了時に 702NK 自体が再起動するようです。)
* Python を起動して、キーパッドから 1行スクリプトを入力して実行する。

Symbian OS Community Newsletter #34 に、関連情報へのリンクが掲載されています。

* http://www.symbian.com/developer/letters/newsletter34.html#python

上記とは別に、Python 2.3.3 の UIQ 向け移植 (プレビュー) が公開されています。未だプレビュー段階ですが、Symsource の協力の下、移植作業は進行中のようです。また、Series80 への移植も検討中としています。

* http://www.monkeyhouse.eclipse.co.uk/mobile/python.htm

■Simkin
新設: 2005年1月25日

Symbian OS Community Newsletter #34 で、 Simon Whiteside 氏が移植した Simkin が紹介されています。近藤は使ったことが無いのですが、高級・軽量な埋め込みスクリプト言語だそうです。 Sony Ericsson P800 (UIQ) 用と Nokia 7650 (Series60) 用のバイナリ、それに簡単なデモが公開されています。

* http://www.symbian.com/developer/letters/newsletter34.html#languages
* http://www.simkin.co.uk/

■Io
新設: 2005年1月25日

Symbian OS Community Newsletter #34 で、 Chris Double 氏が移植した Io が紹介されています。近藤は使ったことが無いのですが、プロトタイプベースの言語とのことです。 Series60 用のバイナリが公開されています。

* http://www.symbian.com/developer/letters/newsletter34.html#languages
* http://radio.weblogs.com/0102385/categories/nokia9210/2004/09/17.html
* http://www.iolanguage.com/
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。