Carbide.c++ではじめるSymbianプログラミングSymbian OSアプリ開発の手引き(1)(1/3 ページ)

SDKと統合開発環境の導入からお約束の“Hello World”までを解説する。「さあ、Symbian OSアプリ開発の第一歩を踏み出そう!」

» 2008年01月30日 00時00分 公開
[大久保 潤 管理工学研究所,@IT MONOist]

 「携帯電話の高機能化が進む中、“生産性が高いフレームワーク”と“PCとは異なる省電力スキーム”の両輪を持つOSが必須となり、現在Symbian OSが必要とされている理由なのだ」というのが、前回の連載「Symbian OS開発の勘所」の主要なモチーフでした。

 特に“省電力”は、ハード面のイノベーション(画期的なバッテリーユニットが開発されるとか、無線給電の効率が上がり一般化するとか)がない限り、逃れ難い課題です。これに対して、ユーザープログラムのイベントモデルまで含めて正面から応えているSymbian OSは、まさに現代的なモバイルOSであるといえるのです(注)


注:「並行処理の奥義、非同期フレームワークとは?」「画期的な『非同期完了待ち』のフレームワーク」を参考にしてください。

 2007年12月にめでたく終了した連載「Symbian OS開発の勘所」は、そのようなあたりをほかのOSと比較しつつ論を進めたことで「なるほど、そういうことだったのか!」と一部業界筋の好評を博していたのですが、その半面Windows屋さん、Linux屋さんなどからは「なんとなくは分かるんだけど、具体的にはそれってどう書くの?」というご指摘もいただいておりました。確かに、コンセプトが分かるだけでは動くプログラムは作成できませんよね。

 そこで、本連載では「Symbian OSではどんなプログラムを書くことになるのか?」について実際のソースのイメージをお伝えしていきたいと考えています。「なんだか小難しいことをいってやがったが、なるほど、そういうことだったのか」と思っていただけるよう進めていきますので、お付き合いのほどをよろしくお願いします。

 今回の連載では、具体的に以下のストーリーを予定しています。

  • 開発環境の紹介から「HelloWorld」まで
  • 簡単なGUIアプリを作ろう − 実験環境の基礎固め
  • Symbianコーディングイディオム虎の穴 − ネーミングコンベンションから定型文まで
  • 基本トレーニング − 文字列操作、デバッグ、そのほか
  • 必要な情報を保存する − ファイル操作
  • プログラムを書かずにGUI − リソース操作
  • GUIアプリを作ろう − アーキテクチャ、コントロール、ダイアログ
  • ネットワークプログラミング
  • DBMS
  • 実機を使おう

 これらについて“広く浅く”解説していきます。

環境を決定しよう 〜 どのSDKを使うか 〜

 というわけで、今回は“開発環境の構築とお約束の「HelloWorld」の出力”を行います。

 Symbian OSが稼働する実際の環境は携帯電話ですので、コンパイルやリンクなどの開発はクロス環境で行うことになります。まずは、SDKをWindows PCにインストールするところからSymbian OSとのお付き合いが始まるわけですが、1つ決めなければならないことがあります。

 それは、具体的に“どのSDKを使うのか”です。

 「それって、例えばWindows XP用とかWindows Vista用とかみたいにOSのバージョンごとにSDKが違うってこと? でも取りあえず最新のバージョンを選べばいいんでしょ?」という話を聞くことがありますが、それは誤解です。

 「カーネルに見るSymbian OSのデザインポリシー」でも解説したとおり、Symbian OSでは独自のUI定義とミドルウェアの追加により、容易にソフトウェアプラットフォームを定義できます。そして、現在販売されているSymbian OS搭載の携帯電話は、実際にいずれかのソフトウェアプラットフォームを搭載しています。

 また、UIの作法などもこのソフトウェアプラットフォームにより異なるので、プログラムを作成する際には、どの環境(ソフトウェアプラットフォーム)に向けたものを作るのか、決定を迫られることになります。

 現在Symbian OS上の代表的なソフトウェアプラットフォームは、

  • DoCoMoのMOAP(S)
  • NokiaのS60
  • UIQのUIQ3

の3つが挙げられます。できればMOAP(S)のSDKを使って進めていきたいのですが、現状SDKが公開されていないこと、そして実機でユーザー作成のバイナリを実行するための口がないことなどから、本連載では“NokiaのS60用のSDK”を用いることにします(注)。とはいっても、Symbian OSの上での開発であることに違いはありませんから、ほかのソフトウェアプラットフォームに興味がある方もご安心ください。

注:SDKとIDEの制限からホスト側のOSはWindows XPである必要があります。ただしNokiaが保証するものではありませんが、いくらかの手間をいとわなければWindows Vistaでも動くようです(ワタシ自身もよんどころない事情でWindows Vistaを使わざるを得ないことになっていまして……)。「At your own risk」で構わないという方向けに、対Windows Vista用の回避策、制限事項を都度解説していきます。

SDKを入手しよう

 それでは、S60のSDKを早速ダウンロードしてみましょう。

 NokiaはForum NOKIAという開発者向けのサイト(英語版:http://www.forum.nokia.com/、日本語版:http://www.nokia.co.jp/forum/)を開設しており、技術情報や各種のツール、サンプルなどをここから入手できます。

 まず、Forum NOKIAのサイトで行う作業はメンバー登録です。英語版サイトの場合、トップページの右上方に[Register](日本語版だと[登録])というリンクが出ているので、ここから先に進んでください。

 登録の最初のページに、

とあります。今回はお勉強が目的ですから、[No](学生の方は[As a student])を選んでください。後は指示どおり進めていけば、登録は完了です。

 つつがなくメンバーになることができたら、次はいよいよS60のSDKのダウンロードです。英語に堪能な方はForum NOKIAの正面玄関からSDKのダウンロードページまで順番にたどっていただいて構わないのですが、そうではないという方のために直接のリンクを以下にご紹介しておきます。

S60 Platform SDKs for Symbian OS, for C++
http://www.forum.nokia.com/info/sw.nokia.com/id/4a7149a5-95a5-4726-913a-3c6f21eb65a5/S60-SDK-0616-3.0-mr.html

 ここからS60の「3rd Ed FP2 Beta(正式名は、Release Note for S60 3rd Edition SDK for Symbian OS, supporting Feature Pack 2, for C++, Betaです。以下、FP2、または単にSDKと略記します)」というSDKを選択して、ダウンロードを行います(画面1)

画面1 3rd Ed FP2 Betaのダウンロードページ

 1つだけ注意しなければならないこととして、SDKが内部的に使用するPerlのバージョン制限があります。以下にFP2のリリースノートから一部引用したものを示します。

- Active Perl 5.6.1 build 635 for SDK build tools. Newer or older
versions of Perl may not be fully compatible with Symbian toolchain.
Perl must be installed before using the SDK to build applications.

 この英文を読んでみると「Active Perl 5.6.1 build 635」に絞ってインストールを行う必要があることが分かります。幸い、ActiveStateにPerlの古いバージョンも公開されていますので、そこから拾ってくることができます。

 では、FP2およびPerlのダウンロードとインストールを実際に行ってください。インストールが成功していれば、FP2に含まれたエミュレータが正しく起動します。

 [プログラム]メニュー(Windows Vistaであれば[すべてのプログラム])−「S60 Developer Tools」−「3rd Edition FP2 SDK」の中にある「Emulator」をクリックし、エミュレータを起動してみましょう。ちなみに、最初の起動には大変時間がかかるので注意してください(Core2Duo[T7200 2.0GHz]にメモリを2Gbytes積んだノートPCで数分の時間を要しました)。画面が固まってしまったと思って強制終了しないように注意してください。

 画面2が表示されればセットアップは完了です。まずはここでエミュレータをいろいろといじって、S60のUIに親しんでみてください。

画面2 S60 エミュレータ

 フォーマルなセミナーなどであれば、この後コマンドラインからのツールの使い方や環境変数の設定、プロジェクトの構成ファイルの作り方などに進んでいくのですが、今回の連載のポリシーは「広く浅く」です。ただでさえ覚えることは多いのですから、なるべく楽に話を進めましょう。というわけで、次はIDE(統合開発環境)の準備を行います。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.