こんにちは、セブテク編集部です。
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が徹底解説】オフショア開発の発注・導入フロー