有限会社イエロー・レーベル 翻訳
有限会社イエロー・レーベル 原著
株式会社管理工学研究所 監修
吉川 邦夫 監修
吉川 邦夫 翻訳
吉川 邦夫 原著
Leigh Edwards 著
Richard Barker 著
EMCCソフトウェア 著
Symbian OSは、音声通話以外にさまざまなデータ処理機能を持つハイエンド携帯電話(=スマートフォン)用の標準OSとして幅広く採用されていますが、そこで使用されるアプリケーションは、一般のPCソフトのようにインストールして利用できるOS固有のアプリケーション(ネイティブアプリケーション)の時代を迎えて、大きく変化しようとしています。本書のテーマであるSymbian OS+ミドルウェア「Nokia Series 60」の環境は、その代表的な開発プラットフォームです。ヨーロッパをはじめとして海外ではすでにこの環境を実装したスマートフォンが市場を牽引していますが、日本でもノキア・ジャパンより端末の発売が発表されるなど、業界や開発者の注目を集めています。基礎から設計、各種APIの活用、マルチメディアデータ処理、テスト・デバッグまでSymbian OS + Nokia Series 60環境での開発ノウハウのすべてを網羅した本書は、携帯電話用アプリ開発に関わるすべてのエンジニア必読の1冊です。
第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章 テストとデバッグ
品質保証
コーディング規格
防衛的プログラミング
テスト
テストの戦略
テストのためのツールとテクニック
実機上とエミュレータ上のテストの違い
テストハーネス
デバッグ
エミュレータでアプリケーションをデバッグする
実機でアプリケーションをデバッグする
まとめ
付録 エミュレータのショートカット
用語集
リファレンス
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。