PHP/Elixirエンジニアのブログ

有益なアウトプットを心がけます。

ネイティブアプリとWebアプリの違いはなに?

結論

ネイティブアプリがスマートフォンでインストールして動作するアプリケーション。 WEBアプリがブラウザ上で動作するアプリケーションです。

定義

比較において動作環境(デバイス)はスマートフォンのことを指します。

ネイティブアプリとは

AppleGoogleのストアからアプリをダウンロードし、 端末へインストールするのが「ネイティブアプリ」。  現在スマートフォン向けアプリと言えば、 ネイティブアプリのことを指すケースがほとんどだろう。 ネイティブアプリはApp storeGoogle Play経由でアプリを配布し、 ユーザーにダウンロードしてもらう。 端末へインストールするため、 ゲームなどのアプリはオフラインでも動き、また動作も速いのが特徴。

また、デバイス自体が持つ機能を利用し、 プッシュ通知や位置情報を使った機能などを 簡単に搭載できるのもネイティブアプリのメリットだろう。 デメリットはネイティブアプリをゼロから独自開発(スクラッチ開発)すると、 どうしても開発コストや期間がかかってしまう。 またストア経由でユーザーにダウンロードしてもらう必要があるため、 利用を始めるには若干ハードルがあるとも言える。 また課金アプリの場合、ストア側へ支払う手数料が発生する。

Webアプリとは

ダウンロードは不要で、Webブラウザ上で動くアプリを「Webアプリ」と呼ぶ。 Webアプリは一見すると、ボタンやレイアウトなどがほぼネイティブアプリと同じというものも多い。 ただ見た目は同じでもWebアプリはブラウザ上で動くのが大きな違い。 そのためストア経由でダウンロードする必要はなく、 ユーザーはブラウザでサイトにアクセスするだけで利用できる。 また、課金アプリではストアを通す必要がないため、 ストアへ手数料を支払う必要がないというメリットもある。 Webブラウザ上でもアプリとして機能を載せられるのは、 Webアプリが基本的にHTML5で開発されているため。 HTML5ではスマートフォンの機能と連動した動きも実装できる。 とはいえ現在のHTML5では、端末のOSやブラウザによって利用できない機能も多い。 そのため、ネイティブアプリほど多くの機能を持つWebアプリはまだ少ないのが現状。 例えばネイティブアプリでよく使われるプッシュ機能。 Webアプリ(HTML5)にもWebプッシュ機能(Notifications API )はあるが、 これは現状iOSで利用できないという問題がある。