今日からできる!RailsでオリジナルWebアプリを作る5ステップ

プログラミング
今日からできる!RailsでオリジナルWebアプリを作る5ステップ

もくもく会に、Ruby on Rails チュートリアルを1周し、Webアプリケーションを公開するところまで経験された方が参加されました。

その方から、「さらにWebアプリケーション開発のスキルを高めたい、また、オリジナルのWebアプリケーションを開発できるようになりたいので、そのために何を行えば、また、学べばよいのか」というご質問をいただきました。

そこで、その質問にお答えするとともに、Ruby on Rails チュートリアルや他のオンライン教材、書籍などのお手本をなぞりながらRailsでWebアプリケーション開発を経験された方が、オリジナルWebアプリケーションを開発するレベルになるために必要な行動や学習をご紹介します。

このとき大事なのは、1からWebアプリケーションを作ってみるという体験をすることです。
完璧さを求めず、完走することを目指して取り組みましょう。

1.アイディアを出すor世の中の課題を集める

※既に作成したいWebアプリケーションのアイディアがある場合はスキップしてください。

この段階では、質より量が大切なので、ブレインストーミングを行ってたくさんのアイディアを紙に書き出しましょう。
目安は100個。1人で取り組むより、複数人で行うことをおすすめします。

このとき、既に類似のWebアプリケーションがあるとか、お金になるかわからないとか、そういった疑問は一旦おいておきます。

また、全くアイディアが浮かばない場合、世の中の課題や困りごとを集めにいくのがおすすめです。

例えば、世の中の課題に取り組むNPO法人の活動に足を運ぶとか、Yahoo!知恵袋などの投稿サイトに寄せられる相談を読むなど。

その後、集めた課題や相談をWebアプリケーションで解決するとしたらどうやるかを考えます。

2.要件定義、テーブル設計、デザイン

次は、画面遷移、機能要件の定義、データベースのテーブル定義を行います。

それぞれ、書籍やGoogle検索などでやり方を調べて行っていきます。

画面遷移や機能要件に悩んだら、Rails製の既存のWebアプリケーションを操作してみて、参考にするのもおすすめです(パクるのはダメ)。

画面遷移、機能要件については、この時点で網羅している必要はありません(IT企業の現場では別ですが)。
まずはざっと洗い出して、開発途中で思いついたら、その時に随時追加していけばOKです。

データベースのテーブルは後から変更するとエラーの原因になるので、ここでしっかり決めます。
(後で誤りに気付いたら、最初から作り直しましょう。学習のためのものですし。)

デザインについては、Bootstrapを使用するなど、テンプレートを利用することで、HTMLやCSSの知識やスキルが浅くても対応できます。

3.Webアプリケーションの土台を作る

Ruby on Rails チュートリアルやオンライン教材、書籍等に沿って作ったWebアプリケーションの機能の中で、オリジナルWebアプリケーションでも使えそうな部分を実装します。

Webアプリケーションで必要となる基本的な機能(CRUD、ログイン、投稿、メール送信等)はそのまま実装できるはずですので、まずはそれらを実装し、土台となるものを作ります。

4.Webアプリケーションをカスタマイズする

基本的な機能が実装され、動作するWebアプリケーションができたら、それをカスタマイズして機能追加をしていきます。

ここで追加する機能は、前のステップで行った機能要件の定義で洗い出した機能となります。

機能要件によって、Gemの追加、Controllerの修正など、必要なことが異なってきますので、一概にこれをしてくださいとは言えません。
その機能を実装するための方法を、google検索や質問サイト(teratailなど)を活用して見つけ、試行錯誤しながら実装していきましょう。

エラーが表示された場合、そのエラーのメッセージをgoogle検索するなどして、解決方法を探します。
teratailなどの、質問を投稿すると答えてもらえるサイトもありますし、このグループの掲示板でも質問を受け付けています。

5.Webアプリケーションを公開する

herokuなどでWebアプリケーションを公開し、GitHubでコードを公開します。
方法はgoogle検索すると出てきますので、それに沿って行います。
(もくもく会で質問していただければお答えします)

これが転職活動時に、実績をアピールするのに役立ちます。

おまけ:Webアプリケーションを事業にする場合に考えるべきこと

オリジナルWebアプリケーションを公開し、そこから収益を上げて事業にするためには、以下の問いに明確に答えられるレベルに仕上げる必要があります。

・誰のどのような課題を解決するものなのか?
・そのWebアプリケーションの利用者は、どのようなニーズや属性(※1)を持つ人なのか?
・市場のボリューム(利用者となりうる層の人数)は?
・その利用者を早期に大量に獲得するために何を行うべきか?
・どのように収益(※2)を得るのか?
・既存のWebアプリケーションと比べた場合の優位性は?

(※1)性別、年齢、職業、生活習慣、住所、インターネットの利用頻度、抱えている悩みetc
(※2)広告収入、物販の売上、月額利用料の課金etc

このあたりは、筆者が商学部卒でマーケティングや経営学を学んでいたため、もくもく会でお答えできます。

おすすめのコラム