スマートフォンのアプリケーション開発には様々な方法がある。どれを選ぶかは、利用したいアプリケーションの機能によって変わる。ユーザー企業からアプリケーションの開発を受注するベンダーにとっても、条件は同じである。

 まず決めなくてはならないのがスマートフォン上で動くネイティブアプリケーションを作るか、Webアプリケーションにするかだ。現状では、「アプリケーションのパフォーマンスを上げやすい」「操作性の高いUIが作りやすい」「通信圏外でも利用できる」といった利点を評価して、ネイティブアプリケーションの開発に力を入れている企業が多い。以下でネイティブアプリケーションの開発手法を中心に見ていこう。

OS個別かマルチ対応か

 スマートフォンのネイティブアプリケーション開発には、OS固有の開発言語を使う手法と、マルチプラットフォーム対応のアプリケーション開発ツールを利用する手法の二つがある。OS固有の開発言語とは、iPhone向けはObjective-C、Android端末向けはJava、Windows Phone向けはVB(Visual Basic)またはC#である。Objective-CはMac OSやiOSなど、アップル製ハードウエア上で動くOS向けのアプリケーションを作るための言語だ。汎用的ではないため、Javaなどに比べて技術者が少ない。

 マルチプラットフォーム対応の開発ツールには、Yubizo Engineのほか、米アプセラレーターが開発した「Titanium Mobile」、カナダのニトビが開発した「PhoneGap」などがある(表1)。利用可能なOSの種類や使用する開発言語に違いがある。価格は、Yubizo Engineは5人までの技術者が利用する場合で年間20万円なのに対し、PhoneGapとTitanium Mobileはオープンソースなので無料だ。

表1●マルチプラットフォーム対応のネイティブアプリケーションが作成できる主な開発ツール
表1●マルチプラットフォーム対応のネイティブアプリケーションが作成できる主な開発ツール

 これらのツールの特徴は大きく三つある。まず、マルチプラットフォーム対応のアプリケーションが作れることだ。二つめは、ネイティブアプリケーションをHTMLやJavaScriptでコーディングできること。三つめは、ライブラリーなどを豊富に備えているため、コーディングの効率が上がるということである。

 一方でこれらのツールを使うデメリットもある。スマートフォン開発に詳しいある技術者は「完成したアプリケーションの動作が遅かったり、カメラやGPS(全地球測位システム)、音声認識、ジャイロセンサーなど端末の機能をうまく利用できないことがある」と指摘する。

 Objective-CやJavaに精通した技術者であれば、マルチプラットフォーム対応の開発ツールを使わずにコーディングしたほうが生産性が高く、アプリケーションの完成度を高めやすい、といったケースもある。