S60開発・S60 3rd Edition SDK for C++導入 (2006-07-15)
SDKのダウンロード
まずはForum Nokiaから「S60 Platform SDKs for Symbian OS, for C++」をダウンロードします。3rd Edition用のSDKは3種類ほどありますが(2006-07-15現在)、その中から日本語版と思われる「SDK for 3rd Edition, Japanese」をダウンロードしてインストールしました(今から思うと、この選択がトラブルの元でした)。
エミュレータ用ビルドができない?
最初はサンプルプログラムのビルドから始めてみます。ところが、いきなりつまずいてしまい、エミュレータ用のビルドができません。従来(2nd Edition)と同様にコマンドラインから"abld build wins udeb"と実行しても、エラーになってしまいます。不審に思って、Symbian OS v9.1のリファレンスの「abld command syntax overview」を見ると、なんとターゲットとして指定できるプラットフォームから"WINS"がなくなっています。
- abld command syntax overview (v8.1a)
- abld command syntax overview (v9.1)
エミュレータ用ビルドを行いたい場合、サポートしているプラットフォームは"WINSCW"だけとなります。"WINSCW"はコンパイラとしてMetrowerks CodeWarriorを使いますが、私はCodeWarriorは持っていません。ちなみに、"WINS"の場合だとコンパイラとしてMicrosoft Visual C++を使います。私はMicrosoft Visual C++ 2003を購入しているので、今まではこちらを使っていたのですが……。
ちなみに、実機用(プラットフォームとして"GCCE"を指定)のビルドは問題なく実行できました。しかし、手元に3rd Edition端末がない状態で実機用のビルドだけできてもどうにもなりません。
Carbideを試すものの……
エミュレータ用のビルドができないと開発にならないので、なんとかしないといけません。そこで、Nokia謹製の統合開発環境である「Carbide」を試してみることにしました。
「Carbide」には、Eclipseベースの統合環境である「Carbide.c++」と、Visual Studio用のプラグインである「Carbide.vs」があります。とりあえず、Visual C++でのビルドをしたいので、「Carbide.vs」をインストールしました。
ところが、「Carbide.vs」で新規プロジェクトの作成を行ったところ、「どのSDKを使って開発するか?」の設定の際に「S60 3rd Edition for Japanese」が表示されません。正確には、表示はされるものの、「Not Available」と表示されていて、選択することができません。今まで使っていた「S60 2nd Edition FP2 for Japanese」であれば問題なく新規プロジェクトを作れるのですが……。
それならばと、今度は「Carbide.c++ Express」を試してみることにします。ところがこちらもだめ。症状としては「Carbide.vs」と似たようなもので、やはり「S60_3rd_JP」での新規プロジェクト作成ができません。それどころか、従来の「S60_2nd_FP2_J」も選択不可。
ここで改めて、Nokiaの「S60 3rd Edition SDK for C++」の配布サイトを見たところ、よく読むとCarbideがサポートするSDK一覧の中に「S60 3rd Edition for Japanese」は含まれていませんでした。あー、そういうことなのか。無駄に時間を費やしてしまいました。
再度SDKのインストール
とりあえず、再度SDKのインストールを行います。今度はCarbide.c++が対応しているSDKを選択します。今回は最新版である「S60 3rd Edition, Maintenance Release」を選択しました。
インストールした後、言語設定を変更します。スタートメニューから"S60 Developer Tools"→"3rd Edition SDK"→"1.1 MR"→"Languages"→"Change to Japanese"を選択すると、なにやら内部のファイルをいろいろ再構築して、日本語用の設定に切り替わります。エミュレータを起動すると、メニューなどの表示がすべて日本語になっています。
「Carbide.c++ Express」を起動してみます。おっと、今度はちゃんと「S60_3rd_MR」での新規プロジェクトを作成できます。ウィザードに従ってプロジェクトを作成して、ビルドしてみます。あっさりビルド完了。エミュレータを起動して、正常に動作することを確認しました。ちなみに、ビルドしたプログラムは、メニューから「インストール」を選ぶと一覧から起動できます。
これで3rd Editionのネイティブアプリの開発環境ができたわけですが、本腰をすえて取り掛かるならば、まずは開発用PCを買い換えないとなあ。2nd Editionの頃もそうでしたが、エミュレータがとにかく遅い。Symbian開発環境におけるエミュレータは、実機用のバイナリをCPUレベルでエミュレートしているわけではなく、Windows用にビルドしたバイナリをWindowsネイティブのプログラムとして動かしているわけですが、それにも関わらずなんでこんなに遅いのでしょうか……。
エミュレータのスクリーンショットあれこれ
QVGAの画面サイズ。「Vodafone 804NK(Nokia N71)」の画面サイズはこの大きさです。
こちらは352×416の画面。3rd Editionのプログラムは、さまざまな画面サイズに対応できるように作りたいところです。
動的に横画面へと変化。3rd Editionのプログラムは、実行中に解像度が変化することも考慮しないといけません。
待ち受け画面。2nd Editionの頃のエミュレータでは待ち受け画面の表示がサポートされていませんでした。