「アプリ」ってそもそも何?

「アプリ」ってそもそも何?

こんにちは、セブテク編集部です。
iPhoneやAndroidのスマートフォンが2008年の夏に誕生してから10年以上、
みなさんは日常生活において「アプリ」という言葉をどれほど耳にしているでしょうか。
ネットではもちろん、街中の広告、友達や家族との会話で「アプリ」という言葉が頻繁に登場していることは、間違いなく多いと思います。

では、いきなりですが「アプリ開発」において「アプリ」が何を指すかはご存知でしょうか?
はたまた「アプリ」ってそもそも何なんでしょうか?

今回は開発側の視点から「アプリ」とは何か、わかりやすく解説します。

一般的な「アプリ」とは

一般的に「アプリ」といえば、iOSやAndroidのスマートフォンやタブレット端末にインストールして使うアプリを想像する人がほとんどだと思います。アプリは、「アプリケーションソフトウェア」の略で、本来であれば、パソコンにインストールされているWordやExcelのようなPCで使われるソフトウェアも含みます。アプリは基本的にOSごとに開発され、OS以外のソフトウェアはすべてアプリと呼ぶことができます。

しかし、今では、私たちの日常会話や街中に登場する「アプリ」と呼ばれるものの大半が「モバイルアプリケーション」(以下モバイルアプリ)を指しているといっても過言ではありません。一般的な「アプリ」の意味するところは、モバイルアプリではないでしょうか。

モバイルアプリとは、俗に言う、スマートフォンやタブレット端末用のアプリで、 代表的な モバイルアプリにGoogle MapsやLINE、Instagramなどが挙げられます。また、モバイルアプリといってもサービス別のジャンルに分けると、メッセージアプリ、写真アプリ、音楽アプリ、地図アプリ、決済アプリ、ゲームアプリ等々、多岐に渡ります。

アプリは3種類

「アプリ開発」において、モバイルアプリの種類は、大きく3種類。 ネイティブアプリ、 Webアプリ、ハイブリッドアプリです。

ネイティブアプリ

ネイティブアプリとは、 AndroidであればJavaやKotlin、 iOSであればSwiftやObjective Cなど、特定のプログラミング言語で開発されたアプリケーションです。

スマートフォンに内蔵されている「電卓」や「アドレス帳」やiOSのApp StoreやAndroidのGoogle Playなどのアプリストアからインストールできるアプリは、ネイティブアプリと呼ばれます。

ちなみに、スマートフォンのゲームアプリの大半はネイティブアプリです。

代表的なネイティブアプリ:電卓、アドレス帳、カレンダー

ネイティブアプリのメリット

  • ネイティブアプリは、カメラやGPS、ストレージなどのスマートフォン搭載のデバイスにフルにアクセスすることが可能
  • インストールを済ませれば、基本的にインターネットに接続することなくアプリの使用が可能
  • 特定のプラットフォーム(OS)用に構築されているため、高速かつスムーズに動作

ネイティブアプリのデメリット

  • アプリのインストールが必要
  • 開発に使用されるプログラミング言語の習得が少し難しい
  • 複数のプラットフォーム(AndroidやiOS)やOSのバージョンに合わせて開発する必要がある
  • スクラッチ開発の場合、開発コストや時間がかかる
  • シンプルなアプリには不向き

Webアプリ

Webアプリとは、ChromeやSafari、FirefoxなどのWebブラウザ上で動作し、本質的には、ネイティブアプリのように見えるWebサイトです。

App storeやGoogle Playといったアプリストアからインストールする必要もなく、WebブラウザからURLにアクセスすれば簡単に使用することができ、スマートフォンに限らずPCでも利用ができます。

Webアプリは、JavaScript、CSS、PHP、およびHTMLといったWebサイトを開発する言語で開発されます。

代表的なWebアプリ:Gmail、Google Drive、Dropbox

Webアプリのメリット

  • Webブラウザで実行できる限り、iOS、Androidなど、すべてのプラットフォーム用に1つのアプリを開発するだけで良い
  • 開発、メンテナンスが簡単
  • ネイティブアプリに比べて開発コストは安価

Webアプリのデメリット

  • カメラやGPS、ストレージなどのスマートフォン搭載のデバイスにアクセスすることは不可
  • インターネットの接続が必須でネイティブアプリと比べると、動作が遅い

ハイブリッドアプリ

ハイブリッドアプリとは、JavaScript、CSS、およびHTMLなどのWebサイトの作成に使用される言語で開発されるアプリです。

ただ、 Webブラウザ上で動作するWebアプリとは異なり、Android やiOSに標準で組み込まれているWebViewと呼ばれるアプリ内でWebページを表示できる機能の上で動作します。また、 ハイブリッドアプリでは、ネイティブアプリのようにカメラやGPS、ストレージなどのアクセスが可能です。

まさにネイティブアプリとWebアプリを組み合わせたハイブリッドなアプリです。ネイティブアプリ同様、 iOSのApp StoreやAndroidのGoogle Playなどのアプリストアからのインストールも可能です。

代表的なハイブリッドアプリ:Instagram、AirBnb、Uber

ハイブリッドアプリのメリット

  • iOSとAndroidの両方に対応したアプリを開発可能(クロスプラットフォーム開発)
  • Webサイトの作成に使用される言語でアプリの開発が可能
  • ネイティブアプリのようにカメラやGPS、ストレージなどのスマートフォン搭載のデバイスにアクセスが可能 ※一部
  • ハイブリッドアプリ開発に必要なフレームワークを提供するCordovaがJavaScriptのAPIを提供しているため、開発が容易

ハイブリッドアプリのデメリット

  • WebViewを経由するため、ネイティブアプリに比べると動作が遅い

まとめ

「アプリ開発」において「アプリ」とは何か、お分かりいただけましたか?
今回は、3種類のアプリを紹介しましたが、どのアプリの開発をする場合でも、各アプリに使われる技術(プラットフォーム(OS)やプログラミング言語)やメリット・デメリットを理解し、自分が実現(提供)したいサービスや機能が実装できるアプリを決めることが大切です。

さいごに

オフショア開発については、以下の記事も参考にしてみてくださいね。
【現役ブリッジSEが徹底解説】オフショア開発の発注・導入フロー

オフショア開発・ブリッジSEカテゴリの最新記事