2006年03月02日

Symbian プログラミング 1001Tips

Nokia 6630/Vodafone 702NKを使っているSeries60系の人も、ビジネスFOMA M1000を使っているUIQ系の人も、今使っているスマートフォンで自分で作ったC++/Javaアプリケーションを動かしてみたい、そんな人のための Tips集です。

ドキュメントがない! 答えがわからない!
Symbian上で何か開発してみようと思っても、日本語で読めるドキュメントがなかったり、英語の掲示板サイトに行って、自分と同じ質問を見つけたはいいものの回答なし、だったりすることがしばしば。
かつて、筆者は(Windows 3.1上で動作する16Bit版の)Visual C++ 1.0が初めてリリースされたとき、それまでのWin16 API呼んでいたCベースの開発から、MFCベースのC++ベースの開発へのパラダイムチェンジを経験しましたが、その時のMFCのドキュメンテーションやサポート状況もかなりひどかったです。そうはいうものの、MFCは所詮、Windows APIを覆い隠すWrapperであり、また全ソースコードが公開されていたことから、「困ったときにはソースを見りゃいいや」と苦労しつつもお気楽なものでした。
Symbianでの開発も(GUIアプリケーションはある意味MFC流の)Document-View構造を取っていることもあり、「昔の Windowsっぽいな」と思ったのもつかの間、SymbianのC++ APIはその先にたどるソースコードもない...ということでわからないことが多すぎるのでした。

困ったときはTips集!
そんな困ったときに役立つのがFAQ(Frequently Asked Questions: よくある質問集)やTips(コツ)集。前から順番に読まなくとも、気になるところを読めば、必要な知識が得られる。そんなFAQやTips集を筆者は MFCやJavaを対象に翻訳してきましたが、今回3度目の正直というわけではありませんが、Symbianをターゲットにlivedoor WIKIで展開することにしました。宜しくお願いします。

2006年03月01日

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

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) での開発の概要」 をご参照ください。

開発関連情報の入手先

■書籍

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
* 本家 (英語) ( http://www.symbian.com/)
* 日本 (日本語) ( http://www.symbian.com/Japan/)
2. Forum Nokia
* 本家 (英語) ( http://www.forum.nokia.com/)
* 日本 (日本語) ( http://www.nokia.co.jp/forum/index.html)
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/

文字コード・フォント

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

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

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

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

* ボーダフォン 702NK
o 実機 →Shift_JIS, ISO-2022JP, EUC-JP に関する charconv が搭載されていました。
o エミュレータ (Series60 2.0 SDK) (調査中)
* Sony Ericsson P800
o 実機 →日本語に関する文字コードは、何一つ入っていませんでした。
o エミュレータ (UIQ SDK 2.1) (調査中)

■フォント

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

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

開発言語

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/

SymbianOS

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

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

2006年02月08日

シンボリックリンク 【symbolic link】

読み方 : シンボリックリンク
分野 : OS > 技術 > ファイルシステム

 あるファイルやディレクトリに別の名前を与え、ユーザやアプリケーションがその名前をファイル本体と同様に扱えるようにする仕組み。UNIX系OSのファイルシステムの機能として定着している。

 UNIXでは「ln」コマンドでシンボリックリンクを作成することができ、ファイルシステム上にはリンク情報が格納された0バイトのファイルが出現する。元のファイルを扱うのと同じ感覚でシンボリックリンクと通してファイルやディレクトリにアクセスすることができる。

 似た機能に「ハードリンク」がある。シンボリックリンクはデバイスやファイルシステムにまたがって自由にリンクを張ることができるが、ハードリンクではファイルシステムを管理するファイルエントリに複数の名前を登録するため、異なるファイルシステムへリンクできないなどの制限がある。ハードリンクでは実体ファイルの削除ができるが、シンボリックリンクを通じて実体を削除することはできない。

 ファイルやディレクトリに仮想的な別の名前を与えるという点ではWindowsの「ショートカット」やMac OSの「エイリアス」に近いが、これらはリンク先のファイルを実体と同じようには扱えないため、実装や機能の面では大きく異なる。

2006年02月03日

Symbian OS/C++プログラマのためのNokia Series 60アプリケーション開発ガイド

第1章 手始めに
Series 60 C++ SDK(Software Development Kits)
開発プロセスの概要
Series 60エミュレータ
エミュレータ用にビルドする
Microsoft Visual C++ IDEを使ってビルドする方法
Borland C++IDE Builder 6を使ってビルドする方法
Borland C++BuilderXを使ってビルドする方法
CodeWarrior IDEを使ってビルドする方法
エミュレータの実行
Series 60プラットフォームの実機用にビルドする
実機上に配置する
まとめ

第2章 開発リファレンス
SDKのバージョンと、その選択
Series 60 Version 1.xのSDK
Series 60 Version 2.xのSDK
HelloWorld GUIアプリケーション
HelloWorldのbid.inf
HelloWorld.mmp
ビルドと実行
HelloWorld GUIの実行部とランタイムファイル
HelloWorldのプロジェクトファイルとフォルダ
HelloWorld GUIのソースファイル
リソースコンパイラ
アプリケーションとリソースのローカライズ
AIFファイル
コンソールアプリケーション
Hello Worldコンソールアプリケーション
コンソールアプリケーションのビルドと実行
HelloWorldCon.mmp
HelloWorldConのエミュレータ実行ファイル
HelloWorldConのターゲット実行ファイル
Symbianインストレーションシステム
SISファイル用ビルドツール
.pkgファイルのフォーマット
SISファイルをビルドする
その他の開発ツール
マルチビッドマップとBmconv(ビットマップコンバータ)
Series 60用アプリケーションウィザード
その他のSDKツール
さらに、その他のツールとユーティリティ
Series 60のSDKとIDEをインストールする際のヒント
Microsoft Visual Studio .NET
エミュレータの設定
エミュレータにおけるアプリケーションのパニック
アプリケーションの配置とビルドに関する上級ガイドライン
プラットフォームUID
デバイス識別UID
リソースファイルのバージョンと圧縮方法
ARMターゲットのためののビルド
まとめ

第3章 Symbian OSの基礎
命名規約
Tクラス
Sクラス
Cクラス
Rクラス
Mクラス
名前空間
基本型
例外処理とリソース管理
例外、リーブ、パニック、トラップ
リーブの作法とクリーンアップスタック
2フェーズコンストラクション
Symbian OSにおけるコンストラクションの方法
クリーンアップスタックの応用
ディスクリプタ
階層構造
書き換え不可能API(Nonmodifiable API)
書き換え可能API(Modifiable API)
リテラル
ディスクリプタを使う
引数や戻り値の型としてのディスクリプタ
パッケージディスクリプタ
コレクションクラス
RArray型とRPointerArray型
CArray型
アクティブオブジェクトで非同期サービスを使う
アクティブスケジューラ
アクティブオブジェクト
アクティブオブジェクトを実装する
実装例
アクティブオブジェクトの落とし穴
ファイル、ストリーム、ストア
ファイル
RFs API
RFile API
ストリーム
ストア
クライアント/サーバアーキテクチャ
サーバセッション
サーバセッションとプロセス間通信
サーバ概説
サブセッション
まとめ

第4章 アプリケーション設計
アプリケーションフレームワーク
アプリケーションアーキテクチャ
中心的なアプリケーションクラス
アプリケーションの初期化
重要なAppUiメソッド
アプリケーションUIを設計する
コントロールを主体とするSymbian OSの伝統的なアーキテクチャ
ダイアログを主体とするアーキテクチャ
Avkonのビュー切替アーキテクチャ
適切なアプリケーションアーキテクチャを選ぶ
ファイル処理
UIとエンジンを分離する
ECom
EComの概要
EComインターフェース
ECom DDL
国際化
開発者のための一般的なガイドライン
OSによるローカライズのサポート
正しいアプリケーションのふるまい
疑い深く批判的なアプローチを開発に採用すること
Windowsサーバが生成するイベントを処理すること
いつでも優雅に終了すること
データを保存する前にディスク空間をチェックすること
その他のヒントとチップ
まとめ

第5章 アプリケーションUIコンポネント
コントロール
コントロールとウィンドウ
単純コントロールと複合コントロール
ウィンドウ所有権
単純コントロールの作成
複合コントロールの作成
コントロール間の関係を確立する
スキン
必ずスキンを提供するコントロール
オプションでスキンを提供するコントロール
スキンに注目するコントロール
スキンを意識しないコントロール
スキンを意識するコントロールを定義する
イベント処理
キーイベント
再描画イベント
オブザーバ
リソースファイル
リソースファイルの構文
リソースファイルの構造
メニュー
サブメニュー
メニューの基本
動的メニュー
コンテクストメニュー
ペイン
ステータスペイン
タイトルペイン
コンテクストペイン
ナビゲーションペイン
メインペイン
ソフトキーペイン
まとめ

第6章 ダイアログ
ダイアログの一般的な特徴
標準ダイアログ
単純なダイアログの作成
マルチページダイアログ
ダイアログのためのメニューを定義する
ダイアログ内のカスタムコントロール
フォーム
フォームの行
フォームのソフトキー
アプリケーションの中でフォームを作成する
ノート
ラップノート
カスタムノート
ウェイトノート
プログレスノート
グローバルノート
クエリー
データクエリー
リストクエリー
グローバルクエリーを使う
リストダイアログ
マーク付け可能リストダイアログ
まとめ

第7章 リスト
リストの基本
垂直リスト
選択リスト
メニューリスト
マーク付け可能リスト
複数選択リスト
リストのアイテムとフィールド
リストからアイテムを探す
垂直リストを使う
基本的なリスト
動的リスト
マーク付け可能リスト
ポップアップメニューリスト
グリッド
月別カレンダーグリッド
ピンボードグリッド
GMSグリッド
グリッドを使う
グリッドの基本
マーク付け可能グリッド
設定リスト
設定リストを使う
設定リストの基本
まとめ

第8章 エディタ
テキストエディタ
寸法と入力容量
キーパッド入力のフィルタリング
追加文字へのマップを提供する
プロパティ
プレインテキストエディタの構成
リッチテキストエディタの構成
スタイルを使う
数値エディタ
数値エディタの構成
シークレットエディタ
シークレットエディタを使う
マルチフィールド数値エディタ(MFNE)
IPアドレスエディタ
番号エディタ
範囲エディタ
時刻エディタ
日付エディタ
日付時刻エディタ
時間エディタ
時差エディタ
MFNEを使う
まとめ

第9章 通信の基礎
シリアル通信
シリアル通信を使う
ソケット
Series 60のソケット
クライアントとサーバ
コネクションレスソケットとコネクティッドソケット
コネクティッドソケット
セキュアソケット
TCP/IP
IPv6
Series 60のためのTCP/IPプログラミング
CommDB
マルチホーミング
赤外線通信
IrDAスタック
Series 60機器上での赤外線通信プログラミング
Bluetooth
Bluetoothの概略
サンプルBluetoothアプリケーション
サービスの宣伝
Bluetoothのセキュリティ
デバイスとサービスの発見
Bluetoothソケット通信
まとめ

第10章 より高度な通信技術
HTTP
サンプルアプリケーション
WAP
WAPアーキテクチャ
Series 60における実装
メッセージング
メッセージングの主要概念
主なメッセージングクラスとデータ型
メッセージングAPI
クライアントMTM APIを使う
Send-As APIを使う
CSendAppUiクラスを使う
着信メッセージの監視
テレフォニー
Etel APIを使う
前処理
発呼
着呼
リダイアル処理
まとめ

第11章 マルチメディア:グラフィックスとオーディオ
Series 60クラシックスアーキテクチャの概要
ウィンドウサーバ
フォントとビットマップのサーバ(FBS)
ウィンドウサーバとFBS
マルチメディアサーバ
基本描画
スクリーンの座標と幾何
グラフィックスデバイスとグラフィックスコンテクト
色と表示モード
ペンとブラシ
ウィンドウとCCoeControlの関係
フォントとテキスト
テキストとフォントの寸法
フォントの主なクラスと関数
主なフォントクラスを使い、利用可能なフォントをすべて列挙する
テキストの効果
図形
矩形
楕円形
円弧と扇型
多角形
ビットマップ
アプリケーションで使うためにビットマップを生成する
ビットマップをロードして描画する
ビットマップのマスク
ビットマップ関数
アニメーション
アニメーションアーキテクチャ
オフスクリーンビットマップとダブルバッファリング
「クライアント側」アプローチによるアニメーション
ダイレクトスクリーンアクセス(DSA)
アーキテクチャの概要
ダイレクトスクリーンアクセスのための主要なクラス
実装時に考慮すべきこと
画像の操作
画像の変換
画像の回転
画像のスケーリング
オーディオ
録音
トーン
オーディオデータ
ストリーミング
まとめ

第12章 アプリケーションのビューとエンジンや主なシステムのAPIの使い方
標準アプリケーションビューを使う
電話帳ビューの切替
カレンダービューの切替
カメラビューの切替
フォトアルバムビューの切替
プロファイルビューの切替
メッセージングビューの切替
切替できないアプリケーション
アプリケーションエンジン
ログエンジン
カメラAPI
電話帳エンジン
コンパクトビジネスカードとvCard
カレンダーエンジンのアクセス
フォトアルバムエンジン
システム機能をアクセスする
ハードウェア抽象レイヤ
システムエージェント
バイブレーションAPIのサポート
まとめ

第13章 テストとデバッグ
品質保証
コーディング規格
防衛的プログラミング
テスト
テストの戦略
テストのためのツールとテクニック
実機上とエミュレータ上のテストの違い
テストハーネス
デバッグ
エミュレータでアプリケーションをデバッグする
実機でアプリケーションをデバッグする
まとめ

付録 エミュレータのショートカット

用語集
リファレンス

Symbian OS/C++プログラマのためのNokia Series 60アプリケーション開発ガイド

Symbian OSは、音声通話以外にさまざまなデータ処理機能を持つハイエンド携帯電話(=スマートフォン)用の標準OSとして幅広く採用されていますが、そこで使用されるアプリケーションは、一般のPCソフトのようにインストールして利用できるOS固有のアプリケーション(ネイティブアプリケーション)の時代を迎えて、大きく変化しようとしています。
本書のテーマであるSymbian OS+ミドルウェア「Nokia Series 60」の環境は、その代表的な開発プラットフォームです。ヨーロッパをはじめとして海外ではすでにこの環境を実装したスマートフォンが市場を牽引していますが、日本でもノキア・ジャパンより端末の発売が発表されるなど、業界や開発者の注目を集めています。
基礎から設計、各種APIの活用、マルチメディアデータ処理、テスト・デバッグまでSymbian OS + Nokia Series 60環境での開発ノウハウのすべてを網羅した本書は、携帯電話用アプリ開発に関わるすべてのエンジニア必読の1冊です。

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

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