様々なスマートフォンアプリの開発手法の比較

iOSアプリやAndroidアプリを作るには、それぞれネイティブコードを書いて開発する方法のほか、最近は、Monacoなどのツールを用いて開発する方法やフレームワークもいくつかあります。
ネイティブコードを書いて開発する方法は、速度が速く、ネイティブコードなのでデバイスの機能を最大限活かせる、というメリットがあります。
一方で、Macが必要で、iOS用にObjective-Cで開発し、またAndroid用にJavaで開発するのに、それぞれ習得するのに時間がかかり、また保守性が悪い、などのデメリットもあります。

ネイティブアプリ以外での開発方法は

ネイティブアプリ以外での開発方法として、例えば、HTML5、CSS3、Javascriptなどの比較的容易な言語を用いてWebアプリとして開発する方法があります。
この場合、保守性が良く、ワンソースでiOS、Android等のスマートフォンに対応出来る、というメリットがあります。
デメリットとしては、現時点ではカメラ等のデバイス制御ができず、また、アプリではなく、ブラウザで起動する、という点があります。
HTML5、CSS3、JavaScriptを利用したフレームワークを利用し、ネイティブコードへ変換して、スマホアプリとして公開する方法だと、カメラ等のデバイス制御が可能で、アプリとして公開できますが、フレームワークによりいくつかの制限があります。

Webアプリの今後は

Webアプリの場合、互換性、開発効率、インストール不要、などのメリットもあります。
Webアプリの開発環境も進み、PhoneGap、appMobiなどのツールを使えば、HTML5とJavaScript、CSSで開発したものをモバイル向けWebアプリケーションとして提供したり、ネイティブアプリケーション化させて提供することもできます。
今後的に、Webアプリは機能面でもネイティブアプリとかなり近いものになっていくものと見られています。

参考(外部サイト):
拡大するiPhone、Androidのアプリ市場