SymbianOS での開発 (概要)

最終更新: 2006年5月7日 (近藤の連絡先メールアドレスを変更)

目次

  1. はじめに
  2. UI (ユーザインタフェース)
    1. Series60
    2. Series80
    3. Series90
    4. UIQ
    5. 富士通の UI
    6. TechView
    7. EIKON
  3. 開発言語
    1. C++
    2. Java
    3. OPL
    4. Visual Basic など
    5. Python
    6. Simkin
    7. Io
  4. 複数 SDK の共存
  5. 文字コード・フォント
    1. SymbianOS における文字コードの基本
    2. charconv 文字コード変換
    3. フォント
  6. 開発関連情報の入手先
    1. 書籍
    2. Web サイト (公式情報)
    3. Web サイト (参考になるソース・開発情報などを開示しているサイト)

■■はじめに

最終更新: 2005年1月25日

本ページの目的は、UI (ユーザインタフェース) 毎に異なる SymbianOS の開発環境についての情報を、日本語で整理し、 目的とする開発情報に到達しやすくすることにあります。
プロの方が開発する場合はともかく、近藤のようなアマチュア開発者にとっては、 以前 EPOC と呼ばれていた頃から比べるとかなり改善されたとはいえ、 どこに情報が存在するかの全貌を把握するのが大変でした。 いったん調べた情報を公開することで、他の方々の役に立てば幸いです。

SymbianOS は、スマートフォンと呼ばれる高機能携帯電話機で使われる OS の一種です。 現在のところ、バージョン6、バージョン7、バージョン8 の 3種類があります。 バージョン番号が新しい方が、OS として新しくリリースされたものですが、 必ずしも新しい製品には新しいバージョンが搭載されているとは限りません。 これは、後述の UI との組み合わせに関連します。


■■UI (ユーザインタフェース)

新規作成: 2004年12月14日

SymbianOS では、コアとなる OS (オペレーティングシステム) と UI (ユーザインタフェース) とが、ある程度独立して提供されています。 このため、SymbianOS を搭載した携帯電話機メーカは、 自社の携帯電話に適した UI を他社から購入したり、 独自の UI を実装して製品を仕上げることができるようになっています。 これは携帯電話メーカにとっては、他社差別化の要因だったり、 自社のユーザに (自社 OS 搭載機と SymbianOS 搭載機の間に) 統一された操作系を与えることができるなどの、 メリットとしても捉えられているようです。

その反面、ある UI 向けに開発されたソフトウェアが、 別の UI 搭載機では基本的には動作しないというユーザにとってのデメリットがあります。 これは、例えば Linux における複数の UI (コンソール / X / Qtopia) におけるソフトウェア非互換と似ていますが、 実際にはそれよりは相互移植性が高いという印象を受けます。 SymbianOS においては、複数の UI の間で、 移植ガイドや移植ツールが提供されています。 また、SDK は各 UI 毎に別のものが提供されているものの、 共存には配慮されていて、ベースとなるコンパイラも 共通で使えるケースが多くなっています。 これらのため、最初に一つの UI で開発を行い、 後で他の UI にも移植するという手法が採りやすくなっています。

以下では、各 UI を簡単に紹介します。


Series60

Nokia が開発し、自社搭載だけでなく各社にもライセンス提供している UI です。 主なターゲットは通常の携帯電話タイプのスマートフォンです。 採用機種数は SymbianOS の中で最も多くなっており、 そのため市販されているソフトウェアも一番多いと思われます。

日本国内で発売されている Nokia 6630 (ボーダフォン 702NK) が、 これを採用しています。 他の採用機種は、My-Symbian の比較ページ (http://my-symbian.com/7650/compare.php) で一覧を見ることができます。

入力手段はテンキー (+カーソルキー等の幾つかの追加ボタン) が前提とされていて、 タッチパネル無しで使われるのが特徴です。 現在のバージョンでは画面解像度が 176*208 ドットに固定されていますが、 将来はスケーラブル UI の導入がアナウンスされています。 開発情報は、 Series 60 Platform ( http://www.series60.com/) にまとまっている他、 Forum Nokia が詳しいです。


Series80

Nokia が自社のコミュニケータ (Communicator) 向けに開発した UI です。 コミュニケータは、640*200 ドットの画面 (タッチパネル無し) とフルキーボード (いわゆる QWERTY タイプのキーボード) を搭載しており、 それと画面横のコマンドボタンを中心とした UI になっています。

My-Symbian の比較ページ (http://my-symbian.com/9210/compare.php) で、搭載機種の一覧を見ることができます。 開発情報は、Forum Nokia が一番詳しいです。


Series90

Nokia が、自社の Widescreen Smartphone (Media Device) 用に開発した UI です。 Nokia の UI としては唯一、キーボード無し・タッチパネルを前提とした UI です。

先に発表になった Nokia 7700 が一般発売中止されたため、 現在は搭載機が無く、次の Nokia 7710 が最初の製品になる予定です。 開発情報は、Symbian のサイト ( http://www.symbian.com/developer/sdks_series90.asp) に概説されており、 Forum Nokia が一番詳しいです。


UIQ

Symbian から独立した (という認識で合っているでしょうか?)、 UIQ technology という専業 UI メーカが開発している UI です。 208*320 または 240*320 ドットの画面と、 タッチパネルを前提とした UI が特徴です。 Sony Ericsson や Motorola 等の幾つかのメーカが搭載機種を出しており、 My-Symbian の比較ページ (http://my-symbian.com/uiq/compare.php) で一覧を見ることができます。 開発情報は、Symbian のサイト ( http://www.symbian.com/developer/sdks_uiq.asp) に概説されており、 SDK などは UIQ のサイトにあります (Symbian のサイトにもあります)。 SonyEricsson P800/900/910i の独自拡張機能については、 Sony Ericsson Developer World にあり、 このサイトは UIQ 一般の開発情報としても有用と思われます。


富士通の UI

富士通は以前から、DoCoMo 向け FOMA 端末に SymbianOS を搭載していますが、 UI は独自のものだと言われています。 前項までの UI と異なり、一般向けには SDK も開発情報も提供されていませんし、 電話機にサードパーティのアプリケーションをインストールする仕組みが存在するか否かも不明です。 そのため、以下の項目では扱いません。


TechView

SymbianOS の初期において、リファレンス UI として紹介されていたものです。 基本的には、Psion のようなタッチパネルとキーボード付きのハードウェアが 前提となっているように見えますが、 実際に搭載機種が発売されたことはありません。 そのため、以下の項目では扱いません。


EIKON

SymbianOS として呼ばれるようになる前の、 EPOC (R1〜R5) で使われていた唯一の UI です。 EPOC における開発については、 「Psion (EPOC) での開発の概要」 をご参照ください。

現在の SymbianOS では使われていないので、 以下の項目では扱いません。


■■開発言語

最終更新: 2005年1月25日 (Python の項を更新、Simkin と Io の項を新設)

SymbianOS で使われる開発言語について、特徴を挙げます。 全ての UI に対して提供されている訳では無いので、 後述のマトリックス表も参照してください。


C++

新規作成: 2004年12月14日

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

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

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

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

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

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

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

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


Java

新規作成: 2004年12月14日

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

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

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

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


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 にインストールして、 以下ができることを確認しました。

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

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


Simkin

新設: 2005年1月25日

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


Io

新設: 2005年1月25日

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


■■複数 SDK の共存

新規作成: 2004年12月14日

SymbianOS では、UI や開発言語ごとに SDK が存在するため、 自然と複数の SDK をインストールすることになります。 以前は複数の SDK を共存させるのはちょっとした工夫が必要でしたが、 新しい SDK では標準でサポートされています。

「devices」で現存する SDK 名の一覧を得て、 「devices -setdefault @設定したいSDK名」で切り替えます。 その後は、パスの通っている C:\Program Files\Common Files\Symbian\Tools\ 以下のツールを使えば、よきに計らってくれます。 注意点としては、Cygwin (bash) を使うと、環境変数 PATH の受け渡しに失敗するので、 コマンドプロンプト (cmd.exe) を使います。


■■文字コード・フォント

新規作成: 2004年12月14日

以下では、SymbianOS における文字コード・フォントについて、 特に日本語まわりに関して、判る範囲で簡単に解説します。


SymbianOS における文字コードの基本

SymbianOS の内部文字コードは、Unicode (UCS2) です。 ネイティブ開発言語である C++ においては、 1文字は 2octet で表現されています。 BMP 以外の面の情報を扱えるか否かは確認していません。

この点は、Psion (内部コードは ASCII+α で UniFEP を入れると UTF8 として扱っていた) とは異なります。


charconv 文字コード変換

SymbianOS は、他の国際化対応 OS と同様に、 文字コード変換ルーチンをサポートしています。 ただし、機種などによって、 実際にサポートしている言語・文字コードが異なります。 以下に、システムドライブの \System\lib\charconv を見た結果を記しておきます (日本語関連のみ)。


フォント

SymbianOS では、以下の二種類のフォントがサポートされています。 どちらも Unicode 対応されており、日本語グリフを持ったフォントが搭載されていたり、 ユーザが作成・提供されていたりします。

  1. *.gdr
    Psion 時代から使われているビットマップフォントで、 アプリケーション同様に UID で区別される。 機種毎に UID が異なるようで、フォントの流用が難しい場合もある模様。
  2. True Type Font
    一般的な TTF フォントが使われます。


■■開発関連情報の入手先

新規作成: 2004年12月14日

書籍

  1. Symbian OS C++ プログラミング (日本語) ( http://www.seshop.com/detail.asp?pid=4911)
  2. Symbian OS/C++プログラマのためのNokia Series 60アプリケーション開発ガイド (日本語) ( http://www.seshop.com/detail.asp?pid=5439)
  3. その他、洋書は主に Symbian Press から出ています。 ( http://www.symbian.com/books/index.html)

Web サイト (公式情報)

  1. Symbian
  2. Forum Nokia
  3. Series 60 Platform (英語) ( http://www.series60.com/)
  4. UIQ (英語) ( http://www.uiq.com/)
  5. Sony Ericsson Developer World ( http://www.sonyericsson.com/developer/)

Web サイト (参考になるソース・開発情報などを開示しているサイト)

日本語のサイト
  1. TeamKOx WEB-Site
    Series60 プログラミングに関するページがあります。
    http://www.teamknox.com/
  2. GSM 携帯で日本語を
    Series60 開発環境用フォントなどを配布してみえる、nao 氏のサイトです。
    http://nao.s58.xrea.com/
  3. Akira's Web page
    Series80 用のツールなどを配布してみえる、あきらん氏のサイトです。
    http://www.akiran.net/
  4. PLANET PLAN
    Symbian, Nokia9210 BBS で、主に日本語化関連の情報を集積されています。 フォント周りは、開発情報としても有用と思われます。
    http://www.saver.ne.jp/%7Eplanet/index2.html
英語のサイト
  1. NewLC - The SymbianOS C++ Developer Community -
    開発関連情報のニュースサイトとしても充実しています。
    http://www.newlc.com/
  2. All About Symbian
    Symbian OS Team の一人である Ewan 氏が、 たまに簡単なプログラミングがらみの記事を書いています。
    http://www.allaboutsymbian.com/
  3. opl-dev project
    OPL 言語のオープンソース開発プロジェクトサイト。
    http://opl-dev.sourceforge.net/
  4. Symbian Diaries
    http://www.symbiandiaries.com/

rey@fb3.so-net.ne.jp 近藤玲史
[Home] / リンクについて