- - PR -
前回までの解説でコードの断片を実行する準備は整いました。早速S60のGUIアプリケーション開発に取り掛かってみたいところですが、API仕様書を片手に実際のプログラミングをはじめるには、実はまだちょっと“壁”があります。C++の文法を知っていることを与件として、すぐにAPI仕様書を片手にプログラミングがはじめられるかといえば、そうではありません。なぜなら、Symbian OSのネイティブプログラムの書き方には“癖”があるからです。
例えば以下のようなメソッド
CClass* CClass::NewL( TInt aItemCount ) |
を各クラスのインスタンス生成用に用意するべし、などがSymbian OSの場合コーティング規約に含まれています(注)。このような規約を理解せずにプログラミングをはじめると、良くて結果不正、通常は“Panic”と呼ばれる抑止不能な例外通知をシステムから受けて、アプリケーションの実行を強制的に打ち切られることになります。最悪なのは何カ月も後に発覚する(ということは出荷後ですね)リソースリークの原因になることです。携帯電話ではPCなどのプログラムと異なり、一度起動したプロセスは基本的には終了することがありません(でなければ、あのサクサクとした使い心地の実現は難しいでしょう)。
| 注:このようなメソッドを“ファクトリメソッド”というのですが、ちょっと気の利いた人であれば同様の概念を自分で発明していたはずです。Symbian OSが面白いのは、それを規約に組み込んで「ヤルベキこと」として定義したところにあります。ここを誰が書いても間違いがないようにしようとすると、言語で縛るか、統合開発環境で面倒を見るかのいずれかを行う必要があります。モバイルデバイスに特化しているSymbian OSがどちらに向かって進んでいくのか、これからの舵(かじ)取りに興味は尽きません。 |
というわけで、今回から数回にわたってSymbian OSのコーディング規約やイディオム(Symbian的な文字列操作やファイル操作)を解説していこうと思います。ここを乗り切ると、Symbian OSの常識に含まれる話なのか、それともAPI固有の話なのか(ということはS60にディペンドする部分なのか)ということの見通しがつきやすくなります。常識が分かってしまえば、それ以外はAPI固有と判断できるわけですから。
ただし、このあたりの考え方については以前の連載である「Symbian OS開発の勘所(以後、“ファーストシーズン”と呼ぶことにします)」でかなりしつこく説明しているので、今回の連載(以後、“セカンドシーズン”と呼びましょう)では具体的なコードベースで話を進めていきます。
今回のUPDATE情報
本編をはじめる前に、恒例になりつつあるアップデートのお知らせです。第2回の掲載後、Nokiaでは2つの動きがありました。1つはFP2の正式版リリース、もう1つは待望のCarbide.c++ v1.3のリリースです。
▼S60の3rd Ed FP2正式版のダウンロードはこちらから
http://www.forum.nokia.com/info/sw.nokia.com/id/
4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html
正式版のFP2はデフォルトでインストールする場所が変わっているので注意が必要です。ベータ版では、C:\Symbian\9.3\S60_3rd_FP2_Betaでしたが、正式版では、C:\S60\devices\S60_3rd_FP2_SDKとなっています。
▼Carbide.c++ v1.3のダウンロードはこちらから
http://www.forum.nokia.com/main/resources/tools_and_sdks/
carbide_cpp/index.html
インストール手順は第1回でお伝えしたとおりです。せっかくFP2の正式版が入ったのですから、インストールが完了したら以下の手順を参考にして、既存プロジェクトのSDKも更新しておきましょう。
Carbide.c++の画面左上のペイン[Project Explorer]から対象のプロジェクトを選び、右メニューの一番下の[Properties]をクリックします。

図1 プロパティ設定画面(SDK切り替え前)
図1の1)に従って対象を切り替えてください。すると2)のとおり、ベータ版のSDKが使用されていることが分かるはずです。これを今回インストールしたFP2正式版に切り替えるには、3)に従い[Manage...]ボタンを押下します。

図2 SDK切り替え画面
すると、図2の[Add/Remove Carbide Build Configurations]ダイアログが表示されます。ここで「S60_3rd_FP2_Beta」のチェックを外し、代わりに「S60_3rd_FP2_SDK」にチェックを入れます。これでSDKの切り替えは完了です。[OK]ボタンを押下して戻ってみましょう。

図3 プロパティ設定画面(SDK切り替え後)
図3のように、切り替えが成功したことを確認することができるはずです(注)。
Carbide.c++ v1.3ではWindows Vistaが正式にサポートされているので、デバッグ実行も問題なく行えるようになっています(実行方法は第2回の図7を参照のこと)。Vistaをご使用の方は、ビルドの後に試してみてください。
| 注:ただし「RFs」というファイルシステムを使うためのクラスの取得方法が、Carbideのv1.2とv1.3の生成するテンプレートコードで異なっています。由緒正しいコードはv1.3が出力するCCoeEnv::Static()->FsSession()なので、あまりコード資産がたまっていないのであればv1.3でプロジェクトを作り直してもよいのかもしれません。 |
組み込み開発フォーラム 新着記事
- フルスクラッチの“Hello World”を動かしてみよう(2011/3/31)
- FlexRayプロトコルの概要(その2)(2011/3/29)
- JASA、東北地域に拠点を置く会員企業を支援(2011/3/25)
- NEC、震災の影響を受けた4拠点の生産再開を発表(2011/3/23)
- 内部ブロック図の基礎と共通要素(2011/3/22)
- インテル、被災地におけるITインフラの復旧を支援(2011/3/22)
- Facts on AUTOSAR/AUTOSAR導入の現実(2011/3/18)
- 計測器・震災被害ホットラインを開設、テクトロニクス(2011/3/18)
- ZMP、地震の揺れを多角的に計測するアプリ無償配布(2011/3/16)
- メンター、3Dテレビ・マルチメディア検証プラットフォーム(2011/3/16)
- 【番外編】タチの良い計測値、悪い計測値とは?(2011/3/15)
- tarファイルシステムをAndroidに組み込む!!(2011/3/10)














