Webアプリはインターネットブラウザ上で利用するアプリケーションのことです。1990年の『World Wide Web』誕生以降、急速に発展を続けております。Webアプリは今や人々の生活の一部となり、大変便利なサービスとしてなくてはならない存在となりました。この記事ではWebアプリを理解するために初心者でも分かる歴史やメリット・デメリット、Webアプリとの違いなどを簡単に解説して行きます。
Webアプリとはブラウザ上で利用するアプリケーションのことをいいます。そもそもアプリーケーションは大まかに分類すると『Webアプリ』と『ネイティブアプリ』の2種類があります。Webアプリの仕組みはHTMLやCSSなどで構成される「フロントエンド」と、JavaやPHP構成される「サーバーサイド」という両側面で成り立っております。
端末からダウンロードして起動させるネイティブアプリとは違い、インターネットに接続できる環境さえ整っていれば利用できるというのがWebアプリの特徴です。代表的なWebアプリとして「Amazon」「Gmail」「Skype」などが挙げられます。
Webアプリの歴史は1990年の『World Wide Web』誕生に伴って始まりました。1993年には『CGI』が登場し、プログラムの処理結果に基づいて動的に HTML 文書を生成・送出することができるようになりました。それから急速なWebサービスの発展が続き、2001年になると『ブログ(Blog)』が世界的に注目を集め、日本でも2005年に1,600万人の利用者に登りつめる成長を見せます。
以降SNSの登場、スマートフォン『iPhone』『Android』の誕生などWebアプリはこれらの歴史ともに現在も急速な発展を続けております。年表を以下の表にまとめてありますのでご覧ください。
年代 | 内容 |
1990年 | World Wide Webが誕生 |
1993年 | CGIの登場 |
1995年 | WiFi誕生によりネット環境が激変 |
2001年 | ブログ(Blog)誕生、普及 |
2004~2006年 | Webアプリ(Twitter,Facebookなど)誕生、普及 |
2007~2008年 | iPhone、Androidが誕生 |
2008年 | Amazon、Google、Microsoftを中心にクラウド関連技術の発展 |
Webのメリットを見ていきましょう。
Webアプリはインターネット環境さえあれば利用が出来るため、初回利用する際にアプリをダウンロードする必要はありません。したがって、使用する端末の保存容量を占用することもなく使えます。
Webアプリはマルチプラットフォームに対応しやすいといわれています。マルチプラットフォームとは例えば、WindowsやAndroid、iOSといった複数の異なる機種やOS上で作動するプログラムのことを指します。ネイティブアプリの開発では、ダウンロードを行う端末(iPhoneならApp Store、Android端末であればGoogle Playなど)によって開発言語が異なりますが、Webアプリであればインターネット上で動作を行う想定のため、どんなプラットフォームにも対応しやすいといえます。
Webアプリのメリットとして開発リリースする際に、運営会社の審査が不要であるという点が挙げられます。ネイティブアプリをリリースする場合は、各運営会社(iPhoneならApp Store、Android端末であればGoogle Playなど)に審査に出さなければいけません。
審査期間は通常1~2週間程度かかるといわれていて、運営会社独自の審査基準に満たさないとリリースが遅れてしまったり、重大な欠陥が見つかった場合はアカウントを停止され、その後アプリリリースが出来なくなってしまうリスクもあります。したがって、Webアプリの方がアプリ開発のハードルは低いといえるでしょう。
ネイティブアプリに比べて、開発出来るプログラミング言語が多いのがWebアプリのメリットです。ネイティブアプリの場合の開発言語は、iOS端末であれば大きく「Swift」「Objective-C」の2つ。Android端末の場合は「Java」と「Kotlin」のみとなっています。一方でWebアプリの場合は、数多くのプログラミング言語が対応しています。それぞれの言語に特徴があるためどれを選択するかはアプリによって選択出来たり、対応出来るエンジニアの数も多い点がメリットといえます。
Webのデメリットを見ていきましょう。
Webアプリはブラウザ上で利用するため、そもそもインターネット環境がない場所では利用することが出来ません。また回線の速度によって通信速度が変わるため、環境によっては動作が遅くなることもあり、ユーザーにストレスを与えてしまう可能性があります。一方でネイティブアプリは一度ダウンロードさえすれば、それ以降はWeb接続の必要のない操作についてはオフラインでも利用が可能です。
Webアプリのデメリットとしてバックグラウンド処理が出来ないという点が挙げられます。ネイティブアプリの場合は、バックグラウンドを処理を随時行っています。(バックグラウンド処理とはアプリを起動していない時も情報更新などを自動的に行う通信のこと)一方でWebアプリは、ページが閉じられてしまうと処理が出来なくなってしまいます。
インターネット上で利用するWebアプリは、デバイス機能と連携させることが難しいです。ネイティブアプリの場合はiPhoneならApp Store、Android端末であればGoogle Playを経由して端末自体にダウンロードを行うため、デバイス自体の機能と連携させて、利用することが出来ます。したがってプッシュ通知や位置情報などの機能が使えないのはWebアプリのデメリットといえます。
Webアプリとネイティブアプリの違いは、Webアプリはインターネット環境においてブラウザ上で操作をするのに対し、ネイティブアプリはスマートフォンなどの端末内で操作を行うという点が大きく異なります。その他の点においても、例えばWebアプリの方が対応している開発言語が多いため市場にも開発者が多いことやリリース時に審査の必要がないため、開発コストを抑えたい場合や開発からすぐにリリースしたい場合はWebアプリが適しています。
一方でネイティブアプリはWebアプリに比べると操作がスムーズです。したがって、オフラインでも利用が可能なアプリや、動作のスピードや細かさを求められるゲームアプリなどの場合はネイティブアプリの方が適していると言えます。
ネイティブアプリのメリット・デメリット、基礎知識について解説された記事はこちら>>
ハイブリッドアプリとは簡単にいうと、Webアプリとネイティブアプリそれぞれのメリットを兼ね備えたアプリです。開発段階では、HTMLやCSS等のWebアプリと同様のプログラム言語を用いて作成することが出来ます。そこに端末独自の機能を利用したい場合はJavascriptを用いコンポーネントすることえでネイティブアプリ同様に端末独自の機能を利用することも可能となります。
またハイブリッドアプリはネイティブアプリ同様に通信会社を通じてアプリをリリースすることが可能なため、信用性の高いものを作ることが出来ます。
ハイブリッドアプリのメリット、デメリット、Webアプリとの違いなどの解説された記事はこちら>>
Webアプリ開発の派遣や業務委託業務の場合、エンジニアの就業単価は40~60万/月であると言われています。Webアプリは開発言語の種類も豊富なため、市場に対応出来るエンジニアの数は比較的多いといえます。したがって求人量や種類は豊富であるものの、より高単価で就業したい場合はネイティブアプリで必要な開発言語を学んだ方が市場価値はさらに高くなります。
今後もスマートフォン端末の拡大に伴い、アプリエンジニアの需要は高いため(ネイティブ、Web問わず)アプリ開発のプログラミング言語を習得することで市場価値は高まります。
Webアプリを開発する主要なプログラミング言語を見ていきましょう。
JavaとはOracle社が開発・提供するオブジェクト指向のプログラミング言語です。1995年にサン・マイクロシステムズ(後にOracle社が買収)のジェームス・ゴブリン氏によって開発されリリースとなりました。プログラミング言語の発展に大きな影響をもたらしたC言語を元に開発されたことでも有名です。
Javaの特徴は『オブジェクト指向の先駆者』で『どこでも動く』ということらが挙げられます。世界中で最もポピュラーでネイティブアプリのみならず多くのWebアプリケーションで採用されていることで知られております。
PHPとはラスマス・ラードフ氏によって1995年に開発されたオープンソースのサーバーサイド言語です。動的なWebページを生成することができるプログラミング言語として全世界で親しまれております。HTMLに埋め込むことが出来ることからWebシステム開発で使用される機会が多いです。PHPというその名称には「Hypertext PreprocessorPHPはHTMLのプリプロセッサである」という意味が込められております。
特徴は『動作確認が簡単であること』や『HTMLの中で簡単にコードを動かせる』といったことが挙げられます。またPHPはインタプリタ言語ですのでプログラムを実行する際にコンパイルが不要でソースコードの修正をした場合、即座に修正が反映されます。Webサービスを開発するプログラミング言語としてPHPは世界的にトップクラスの人気を集めております。
Rubyとはまつもとゆきひろ氏によって1995年に開発されたオープンソースでオブジェクト指向のプログラミング言語です。日本人プログラマーのよって開発された言語として初めて国際電気標準会議(IEC)で国際規格に認証されました。2018年には米国において最も稼げる言語はRubyと言われるほど国内外問わず世界的にも注目を集めております。
Rubyというその名称には『Perl(パール)に続ぐ』という意味が込められており6月宝石であるPerlの次月(7月)宝石のRuby(ルビー)という名称を採用することになりました。Rubyの特徴は記述量が少なく、自由度が高い、そして何より『書くことが楽しい』と多くのプログラマーの方が口を揃えております。RubyはWebアプリケーションの開発に最も向いており代表的な開発事例としてGunosy、食べログ、価格.comなどが挙げられます。
Pythonとはグイド・ヴァンロッサム氏によって1991年に開発された汎用的に使用されるプログラミング言語です。サーバサイド言語としてWebアプリケーションやデスクトップアプリケーションの開発に使われるだけでなく、組み込み開発、自動処理、統計・解析、機械学習など幅広い領域に対応出来るプログラミング言語として親しまれております。Pythonはプログラミング言語の中でも高い人気を集めており、GitHubの2019年調べによるとJavaを抜き2番目に人気のある言語となっております。
特徴として『コードがシンプルで覚えやすい』『少ない記述で多くの処理が可能』などが挙げられます。Pythonは人工知能(AI)やビッグデータなどトレンドの分野にて重宝されております。このように幅広い分野にて扱われる汎用的なプログラミング言語として高い人気を集めております。
Scalaとはスイス連邦工科大学のマーティン・オーダスキー氏によって2001年に設計されたJavaに影響を受けたオブジェクト指向と関数型言語の特徴を統合したプログラミング言語です。世に公開がされたのは2004年始めの頃でJavaプラットフォームにリリースされました。ScalaはJVM上で動作するため、Javaのライブラリを不自由なく使えるという特徴があります。
他にも.NET Framework上でも動作するため、同様に.NETライブラリも使用することが出来ます。(※.NETサポートは2012年に中止)2003年に誕生した比較的新しいプログラミング言語ですが、2019年に『GitHubPullRequest』によって発表されたプログラミング言語使用率ランキングによると第12位を記録するほどの人気度が伺えました。日本国内でも様々な有名サービスがScalaを用いた開発を行っており、代表的なものとして『SmartNews』『Chatwork』などが挙げられます。
Webアプリを理解するために初心者でも分かるメリット・デメリット、ネイティブアプリとの違いを簡単に解説させて頂きました。Webアプリを一言で表すと『ブラウザ上で利用するアプリケーション』です。Webアプリのメリットとして「ダウンロード不要」「マルチプラットフォーム対応しやすい」「リリース時の審査不要」などが挙げられます。Webアプリについてこの記事で記載されている最低限の内容は理解しておくようにしましょう。