「ワンソース、マルチプラットフォームへの対応が、今後のキーになりますよ」。日経コンピュータ 2011年9月1日号の特集「企業スマホはアプリが主役」の取材で何度も聞いた言葉だ。一つのソースコードが複数の環境で動く「ワンソース、マルチプラットフォーム」とはオープンシステムが普及した頃から続く課題だが、ここで取り上げるのはiPhone、Android端末、Windows Phoneなど様々なスマートフォン上で動く“ワンソース”である。

 数年前まで国内でスマートフォンと言えばiPhoneという状況だったが、続々登場する新しいAndroid端末や、8月25日に国内で発売されたWindows Phoneにより、企業が利用シーンに応じて様々な端末を所有するケースが増えている。特集では、iPhoneとAndroid端末の両方を導入しており、かつ複数の種類のAndroid端末を使っているサントリーの事例を紹介している。同様の企業は少なくないだろう。従業員が個人で所有するスマートフォンの利用を解禁している企業も、様々な端末を所有している企業と同様の状況になっていると言える。

 スマートフォンで動くネイティブアプリケーションを開発するためには、それぞれのOS固有の開発言語を使う必要がある。OS固有の開発言語とは、iPhone向けはObjective-C、Android端末向けはJava、Windows Phone向けはVB(Visual Basic)またはC#である。一つのアプリケーションをいろいろな端末で利用したい場合、複数の言語でアプリケーションを開発しなくてはならず、かなりの手間がかかる。開発言語を扱える技術者の確保が難しいという問題もある。例えば、Objective-CはMac OSやiOSなどアップル製のハードウエア上で動くOS向けのアプリケーションを作るための言語であり、汎用的に使える言語ではないため、Javaなどに比べて技術者が少ない。

 OSが異なる端末を複数そろえたり、将来異なるOSを搭載した端末へ移行する可能性がある企業の場合、どの端末向けにアプリケーションを作るか、必要な技術者をどうやって確保するかが大きな問題になる。ネイティブアプリケーションではなくWebアプリケーションを開発するという手もあるが、現状では「パフォーマンスを高めやすい」「操作性の高いユーザーインタフェースが作りやすい」「通信圏外でも利用できる」といった利点を評価して、ネイティブアプリケーションの開発に力を入れている企業が多いようだ。