はじめに
未経験からアプリエンジニアになると大体聞かれるのがこの質問。
「アプリエンジニアって何作ってるの? インスタとかそういう?」
こういう質問をされる場合、たいてい相手の頭の中にあるのはモバイルデバイス上の「ネイティブアプリ」のアイコンです。
そもそも、エンジニア界隈での「アプリ(=Webアプリ)」と、一般的な用法としての「アプリ(=スマホアプリ、ネイティブアプリ)」は基本的に別物なのですよね……(もちろん重なってはいるものの)
なんで同じ名詞を採用してしまったのか……命名って大事ですね……
エンジニアと非エンジニア同士の会話では、「アプリ」の認識合わせを行わないまま話が進むことが多々あり、そういう現場を目にすると非常に歯がゆい思いになります。
それだけでなく、ビジネス上の会話で、ここの認識がずれていると、ちょっと悲惨な手戻りが発生する可能性もあります。
今回は、
- エンジニア的「アプリ(=Webアプリ)」とは何なのか?
- スマホアプリと何が違うのか?
という2点について、ざっくりご説明いたします!
Webアプリって何?
そもそもWebアプリとは何なのでしょうか?
プロになるためのWeb技術入門によるとWebアプリとは以下のように説明できます。
主な処理はサーバー上で行われ、
HTMLで表現されWebブラウザー上で表示される、
ダウンロード不要のアプリケーション
サーバー上にサービスを提供するアプリケーションが存在して、手元のPCやスマホは主にサーバー上のアプリケーションが一生懸命考えて処理した結果を表示しています。
Amazonや楽天で買い物をし、YouTubeやNetflixで動画を見る……というように、ユーザーが、Google Chrome、Safari、Internet ExplorerなどのWebブラウザーを介して、能動的に検索をしたりフォームを入力して利用するサービスは「Webアプリ」です。

WebアプリとWebサイトの違いは?
Webアプリはユーザーが能動的に利用する、対話型サービスであり、Webサイトは情報提供を目的としているサービスのことを指します(Web サイトから Web アプリケーションへの変換:第 1 回 Web サイトと Web アプリケーションの違いより)。
たとえばWikipediaは、サービス内で主にリンクを飛んで情報を閲覧するサービスなので、Webサイトです。
一方、Amazonは、もちろん商品情報閲覧もできますが、商品を購入する過程でフォームに住所を入力したり、ポイントを使用するかしないか選べたり……と、対話が発生しているので、Webアプリです。
スマホアプリとの違いは?
Webアプリがインストール不要である一方、利用する前にアプリケーション(ソフトウェア)をインストールする必要があるものは、PC用なら「デスクトップアプリ(ソフトウェア)」(Microsoft WordやOutlookなど)、
スマートフォン用ならApp StoreやGoogle Playなどからダウンロードする「スマホアプリ(ネイティブアプリ)」といいます。
エンジニアの中では、「アプリエンジニア」というと前述のWebアプリを開発するエンジニアを指していて、スマホアプリを開発するエンジニアは「ネイティブアプリエンジニア」と呼ぶことがあります。
スマホアプリの場合、処理がデバイス本体で行われるため、いちいちサーバーとのやり取りが必要なWebアプリと比べて、処理が高速であることが特徴です。多くのゲームアプリがWebブラウザーを介さず、デバイスに直接インストールするタイプのアプリであるのも、この理由からです。

ちなみに…ややこしいですが、Webブラウザーそのものは「デスクトップアプリ」あるいは「スマホアプリ」です(Webブラウザーはデバイスにインストールしていますよね!)。
おわりに
エンジニアとビジネス上で関わる機会のある方は、「エンジニアの言う『アプリ』は、ひょっとしたらスマホアプリのことじゃないかもしれない」という可能性を知っておいていただけると嬉しいです。
逆にエンジニア志望の学生などと話す機会のあるエンジニアは「『アプリエンジニア』と言うと、学生はネイティブアプリ開発のイメージを持ってしまうかもしれないから、補足しておこう」などと想像して話をすると、誤解のない会話ができるかと思います!