多種多様な候補から自分好みの端末を選択でき高度なカスタマイズが可能、それがAndroidの魅力であり強みです。しかし、その自由度の反面わかりにくさを指摘されることも少なくありません。このコーナーでは、そんな「Androidのここがわからない」をわかりやすく解説します。今回は、「アプリとWebアプリはどう違うの?」という質問に答えます。

***

Android OSにおいて「アプリ」とは、独立して動作するよう設計されたプログラムを指します。Google Playやその他の公認サイト経由でダウンロードし、ホーム画面からタップして動作を開始するものはアプリと考えていいでしょう。「設定」→「アプリケーション」画面に表示されるものもアプリだといえます。

Google Playなどからダウンロードするアプリは「ネイティブアプリ」と呼ばれます。ネイティブアプリは、狭義ではCPUが直接解釈できる言語(機械語/ネイティブコード)で記述されたプログラムを言いますが、Androidの場合はJavaという言語で記述され、実行時「JIT(Just In Time)コンパイラ」の働きによりネイティブコードへと変換するケースが一般的です。ネイティブコード並みのパフォーマンスを実現できるため、Javaアプリか狭義のネイティブアプリかを意識することはありません。

一方、Webブラウザ上で実行されるプログラムは「Webアプリ」と呼ばれ、ネイティブアプリとは明確に区別されます。その性格上、実行前にサイトへサインイン/ログインを求めることがほとんどです。ネイティブアプリは実行時にインターネット接続がなくても動作可能ですが、実行するつどWebサイトにアクセスしプログラムを読み込むWebアプリの場合、インターネット接続は必須です。

ネイティブアプリは、基本的にすべての処理がAndroid端末上で完結します。そのため実行パフォーマンスは端末の処理性能に依存します。Webアプリの場合、プログラムの演算処理の多くはWebサイト側で実行され、Android側は主に描画とデータの入出力を担当するため、高性能な端末でも処理が遅いケースが発生します。

なお、Google Playからダウンロードする体裁はとりつつも、ネイティブコードで記述されているのはボタンなどユーザインターフェイス部分のみで、表示する内容はWebアプリと同じでインターネット上のコンテンツに依存する「ハイブリッドアプリ」も存在します。エンドユーザは得られるサービスに注目すればよく、ネイティブアプリかWebアプリかを意識する必要はないのかもしれません。

大まかにいえば、Google Playなどアプリストアからダウンロードするものが「ネイティブアプリ」、Webサイトにサインインしてブラウザ上で実行するものが「Webアプリ」ですが、そのハイブリッド版も存在します

(記事提供: AndroWire編集部)