2006年02月11日

もっとも重要な部分を一気に

前回までは、大まかなGUIアプリケーションの構造を見てきました。今回はSeries60に特有のコードコンベンションや、ANCI C++にはない例外処理の方法、文字列の扱い、さらには2フェーズコンストラクションについて見ていきます。盛りだくさんで少々長くなっておりますがお付き合い下さい。

今回は「論より証拠」ということで、いくつかサンプルコードを用意しております。適宜サンプルコードをダウンロードして、解説と照らし合わせて読んでいただけると幸いです。
携帯上のアプリケーションという特殊な環境

 コードコンベンションの話をする前に、まずは携帯電話というアプリケーションの実行環境の特殊性について見てみましょう。

 昨今の携帯電話は、大きなヒープサイズなどのリソースを持った端末が出てきています。それでも通常のPC環境に比較して、かなり貧弱なリソースしかもっていないのが実情です。例えば、スタックサイズを見ると、Series60はデフォルトでは8KBという、今の感覚からみれば非常に小さいスタックサイズしか持っていません。

注:ただし、このスタックサイズはプロジェクトの設定ファイルで変更が可能です。

 さらに、通常のPCとは異なり、携帯電話は一度電源を投入すれば少なくとも数カ月、長ければ年単位で再起動されることなく動作することが求められます。

 一見、コードコンベンションとは無関係な話のように思えますが、実はSeries60のコードコンベンションはこのような貧弱で、利用条件の厳しい環境を意識したものになっているのです。

クラス(型)名に対するコードコンベンション

Series60ではクラス名や型名に対して4つのアルファベット(T,C,R,M)が先頭につきます。大まかな各々のアルファベットの意味は次の通りです。

Tクラス
サイズの小さいクラスで、スタック上にメモリを確保しても問題のない大きさ
Cクラス
Tクラスよりもサイズの大きなクラス、スタック上に積むのではなく、ヒープ上に確保しなくてはいけない大きさのクラス。このクラスは必ずCBaseクラスを継承する
Rクラス
OSのサービス(システムリソース)を利用するためのクラス。初期化と破棄の方法が通常のクラスとは異なる
Mクラス
純粋仮想関数を提供するインターフェース

 続いて、この各々について見て行きたいと思います。
posted by シンビアン at 08:10| Comment(0) | TrackBack(0) | Series60プログラミングテクニック | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/13123123

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

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