Webアプリ開発に必要なものや事例について
はじめに
これからWebサイトやWebアプリを作成してみたい方や、フリーランスとして活動してみたい方、会社で開発する予定がある方にとって、Webアプリってなんとなくわかるけど、実際のところどんなものなの?という疑問をお持ちの方もいると思います。この記事ではそんな方を対象とした「Webアプリとは?」から「Webアプリ開発に必要なもの、事例」について紹介し、疑問を解決できるよう解説していますので、難しく考えず、楽しみながらお読みください。
Webアプリとスマホアプリは同じ?
WebアプリとはWebアプリケーションの略で、簡単にいうとWeb上で閲覧できるサイトのことです。ただし、毎回同じ内容が表示されるWebサイトはHTMLで作成されたWebサイトであり、これを静的ページと呼びます。基本的に内容が変化することがない、研究資料や何かの団体を紹介するページなどがそれに当てはまります。
一方で、同じURLでもユーザによって表示されるページが異なったり、毎回異なる情報が表示されるページはHTMLだけではなく、サーバやデータベースを使用して作成されたWebサイトです。これがWebアプリと呼ばれるものです。
ここまでがWebアプリについての説明です。では、アプリはアプリでもスマホアプリはWebアプリでしょうか?・・・
答えはNoです。
WebアプリはChromeやSafari、Firefoxなどのブラウザで使うアプリです。YouTubeやAmazon、Facebook、プログラミングを勉強している人ならおなじみのProgateもWebアプリです。しかし、ここに挙げた4つすべてがスマホアプリも存在しています。どれか1つでも使ったことがある方ならわかると思いますが、ブラウザから検索してWebアプリを利用した場合とスマホにインストールしたアプリを利用した場合を比較した際、使い勝手や表示に関して微妙に異なると感じたことはないでしょうか?これがWebアプリはスマホアプリではないことを体感できる方法です。ここではざっくりとでいいので、別物なんだなと理解してもらえれば大丈夫です。
Webアプリで開発された事例
さきほども紹介しましたが、Webアプリとして開発された事例をいくつか紹介します。
まずは誰もが一度は見たことがあるYouTubeでしょう。これはPython(パイソン)というプログラミング言語を用いて開発されています。PythonはAI(人工知能)開発に最適なプログラミング言語として2020年は特に注目を浴びている言語です。他にPythonで開発されたWebアプリではDropboxが有名です。
次はFacebookについてです。FacebookはHackという言語で開発されています。これはPHPをベースにした言語ですが、互換性が高いためPHPを習得していれば基本的にはHackでも開発ができると言われています。
このようにWebアプリは誰もが知るようなものばかりではなく、個人で運営しているようなものも非常にたくさんあります。また、日常的に利用しているものもあります。例えば・・・
- 食べログ
- クックパッド
- 価格.com
- CAMPFIRE
- ビズリーチ
など、飲食店探しの際や自宅で料理をする際、ネット注文時、クラウドファンディング、転職・・・と日常で利用するものばかりです。このように、Webアプリは多くの事例があるため、参考材料が多いのが良いです。Webアプリを開発する際はまずどんなサービスを提供したいか、調べて参考にすると良いでしょう。
Webアプリ開発に必要なもの
Webアプリの事例について紹介しましたが、次は開発に必要なものについて紹介していきます。
Webアプリ開発に必要なものは作りたいサービスによって変わってくるため一概には言えませんが、ざっくりとお伝えします。
- プログラミング言語
- フレームワーク
- インフラ
- Webサーバ
- アプリケーションサーバ
- プロキシサーバ
- サーバOS
- データベース
- CI/CDツール
- その他ツール
このように、Webアプリを開発するうえで必要なものを挙げましたが、サービスの内容によっては必要ではないものもあります。また逆も然りで他に必要なツールが出てくる可能性もあります。さきほども紹介した『食べログ』は上記に当てはめると以下のようなツールを利用しているので参考にしてみてください。
- Ruby
- Ruby on Rails
- オンプレミス
- Apache
- Unicorn
- なし
- CentOS
- MySQL
- Jenkins
- GitHub、Redmine
また、ツールは有料無料のものがあるため、コストをかけずに開発をしてみたいという方は無料のオープンソースのツールから使ってみることをおすすめします。ツールを選ぶ際は「何を作りたいか」「どんなことを実現したいか」ということを検討することで、ツールを選ぶ際の判断に迷うことは少なくなるでしょう。
おわりに
Webアプリの開発といっても、社員として複数の仲間と共同開発する場合と個人で開発をする場合とでは様々な面で違いが生じてくることかと思います。共同開発の場合、複数人と連携を取る必要がありますが、一人ひとりの役割が減るため、深く専門的に学べ、その分野のスペシャリストになることも可能です。
一方、個人で開発をする場合、すべてを一人で作業しなくてはならないため覚えることも多く、時間が非常にかかります。しかし、一人でWebアプリを開発できるようになれば、自由な時間に作業ができ、また、Webサービスをリリースすることで収益を大きく上げることも十分に可能です。
ここまで書いて思ったのですが、『Webアプリ開発に必要なもの』を考えることは大事です。ですがそのまえに専門分野のスペシャリストになるのか、一人で開発をしていくのかといった、『自分の人生にとって必要なもの(人生の指針となるもの)』を考えることのほうが重要かもしれませんね。
最後までお読みいただきありがとうございました。