Symbian OS開発の勘所

Symbian OS開発の勘所 − Moving to Symbian OS 第1回

移行者のためのSymbian OS「超」概説

大久保 潤 管理工学研究所 2007/1/30

しばしば「難しい」「独特」と評されるSymbian OS。確かに個性的だが、その設計思想を理解すると理にかなっていることが分かる。各論に入る前に、まずはSymbian OSの全体像を概観しよう。(編集部)

- PR -

Symbian OSの思想を理解しよう

 「Symbian OS」は、イギリスのSymbian社が提供している携帯電話やスマートフォンに特化したOSです。最近ではFOMAの903シリーズにおいて、国内ハンドセットベンダ4社が搭載機をリリースしています。Windowsなどに比べ雑誌などで解説されることが少ないためマイナーなOSだと思われがちですが、実は皆さんのすぐそばで稼働しているまさに旬のOSなのです。

 この連載では副題に「moving to Symbian OS」とあるとおり、すでに何らかの環境で開発をされている方が、これからSymbian OSに引っ越して開発を始める(もしくはリサーチなどの目的で理解しようとする)際のお手伝いを目的としています。「APIリファレンスを見れば十分」という声が聞こえてきそうですが、いやいやどうして。Symbian OSにおけるAPIやフレームワークのデザインが「何を目的に行われているのか」という根本のところを理解していないと、パフォーマンスを発揮するプログラムを書くことは容易ではありません。

「アレがないシンドローム」から抜け出そう

 例えば、Symbian OSのトレーニングコースでよく出る質問として、「Symbian OSの規約は分かったから、STLの導入方法を教えて」というものがあります。本当にSymbian OSでSTLを使うのですか? それはリソースが限られた携帯電話に適したプログラミングスタイルでしょうか?

 「ほかのOSでは普通に使っていたから、Symbian OSでも使いたい。ソフトウェアの再利用性は大事でしょう」。確かに、ソフトウェアの再利用性は大切です。同じコードがそのまま使えれば良いことがいろいろあります。しかし、ほかのOSと同じ仮定でプログラムを書くことが許されているのですか? 省電力は? リアルタイム性の保証は? ロバストネスの確保は?

 このように、OSや実行環境などの差異を検討することなしに移植をたくらもうとする態度を「アレがないシンドローム」(もしくはより重篤な状態として「アレを持ってくるのだシンドローム」)と筆者は名付けています。なぜこのような思考停止が起きるのでしょうか。

図1 Symbian OSへの典型的な引っ越しパス

 Symbian OSに引っ越してくる人の環境は千差万別です。例えば前述のSTLを使おうとした方にいろいろお話を伺ってみると、Windows系、それもマシンを専有するタイプのアプリケーションを書いていることが分かりました。そのため、リソースや環境制約に対する仮定が、その方の中ではまったく異なっていたのです。どうやら「アレがないシンドローム」は、制約に対する検討がないことと関係がありそうです。

 逆のケースもあります。フレームワークを軽視する傾向は、少ないリソースの中で性能要求を満たすことを最優先にするという、組み込み系から来た方に強いように思います。極端な例ですが、スレッドという概念は知っていても、スレッドに設計上のどの要素を割り当てればよいかということについて、まったく無頓着な方にお会いしたことがあります。その方によれば、「何をスレッドに割り当てるのかは実装の問題であって、全体で設計をすべきことではない」のだそうです。このケースは特殊例だと思うのですが、そうでなくても「小さく速いコードが良いコード」という文化から来た方には、Symbian OSの規約やフレームワークはそのままでは理解し難いように思います。なぜならば、Symbian OSは性能だけではなく、高度化した機能を安全に実行させ、かつそれらの生産性を向上させることを目的として、高いレベルでバランスを取っている環境だからです。

 APIリファレンスだけではうまく引っ越しができない事情が、何となくでもお分かりいただけたでしょうか。Symbian OSは携帯電話に必要なソフトウェア開発のベストプラクティスを満載した、非常に強力で便利な環境です。ただし、「理解して使う分には」という条件が付きます。この連載では、Symbian OSに引っ越してくる典型的なパスを考慮しつつ、Symbian OSのデザインの背景にあるものを解説していきます。そして、携帯電話やスマートフォンでのプログラミングに必要な考え方を理解してもらうことを目標に進めていきます。

 というところで、筆者の自己紹介です。筆者はCP/Mの時代にキャリアをスタートして、MS-DOSというよりはPCのローレベルプログラミングに一時期ハマった後、メインフレーム→UNIXサーバ→Windows→Symbian OSと各種の環境を転戦してきました。また、下はハードを直接たたくレベルから、ミドルは通信のプロトコルスタックやOLTPシステム、DBMS(といってよいのかな桐は)、言語処理系。上は最近だとWeb2.0もののサーバサイド、クライアントサイド一式までと、各種設計・開発をやってきています。そういう意味では、図1の「引っ越しパス」で何が起きるかを一通りフォローしていけるかと思います。

 では、謎に包まれている(という声をよく耳にする)Symbian OSの解説に入ります。

関連リンク:
Symbian
http://www.symbian.com/
シンビアン
http://www.symbian.com/Japan/
Symbian OSの搭載機一覧
http://www.symbian.com/phones/
  • 連載バックナンバー
  • 全記事インデックス
  • 組み込み開発トップ
  • MONOistトップ

メールマガジン

スキルアップ/キャリアアップ(JOB@IT)

スポンサーからのお知らせ

@IT Sepcial

Windows Embeddedコーナー

Windows Embedded
Windows Embedded専門コーナー。Windows Embedded StandardやWindows Embedded CEをはじめとする「Windows Embedded」ファミリの最新動向や技術情報をお届けします!!

Androidコーナー

Android
Android専門コーナー。組み込みデバイスへの適用からアプリケーション開発、イベントレポート、ニュースなどAndroidに関するさまざまな技術情報がここに集結!!

@IT MONOist 求人情報