Help us understand the problem. What is going on with this article?

初心者がオリジナルのRailsアプリを作れるようになるまで

More than 1 year has passed since last update.

Railsアプリを開発できるようになるまで

はじめに

私はRailsアプリやiOSアプリを仕事や趣味で開発しています。
僕の以前の記事(初心者がオリジナルのiOSアプリを開発できるようになるまで)が100ストックを超えて嬉しかったので、Rails版も書こうと思いました。いろいろ突っ込みどころはあるかと思いますが、気づいた点があれば、コメントで教えていただけたら幸いです。また、iOS版の記事同様、プログラミングをマスターすることではなく、自分が作りたいものの簡易版を作れるようになるまでを目指します。また、ストック数が伸びたり、僕のノウハウがたまったら運用についても別記事でかけたらと思います。

大原則

1. Webアプリとは: WebアプリとWebサイトの違い

WebアプリをRailsで作ろうと言われて、僕は最初思いました。
「Webサイトと何が違うの?」
そこでいろいろ調べてみると簡単に説明すると以下のような違いがあるみたいです。
Webアプリ: ユーザとのインタラクションがあるサイト
Webサイト: ユーザとのインタラクションがないサイト
Webアプリの代表例はFacebookですね。ユーザはログインし、友達とつながり、投稿したりコメントしたりします。対して、Webサイトの例は、こちらは最近少ないですが、区役所のホームページなどが近いでしょう。情報が一方的にのっているだけで、見た人はコメントしたりはできません。Ruby on RailsはWebアプリを作る時に便利なフレームワークです。

2. 巨人の肩に乗るという意識

iOS版の記事でも触れましたが、巨人の肩に乗るという意識が大事です。

僕が最初の頃に描いていた幻想はプログラミングというのは完成されたものであり、学校の勉強のように決められた範囲を勉強すれば、あとはそれを使いまわすだけである、ということでした。ところが実際は、日々進化していて、昨日まで確立されていた手法は今日は違うということもあるということです。それでも、先人たちの築いてきた土台の上に新しいものが乗っかっているものです。この記事でも後半でライブラリというものに触れますが、先人たちの知恵に恩恵を受けることはとても重要です。

3. 英語への抵抗を減らす

前述の巨人の肩に乗るためにも英語はとても便利です。エラーが起きても英語のエラー文で検索すると日本語の情報と比べ物にならないくらい多い情報が手に入ります。

実際の開発

ここからは実際のRailsアプリ開発についてみていきます。

0. 環境構築

iOS版よりもRailsは最初の環境構築が大変です。iOSはXcodeをダウンロードしてきたらほとんど完了なのですが、Ruby on Railsはここが長いです。こちらの記事を参考にするなど、がんばって乗りこえてください。ハンズオンセミナーなども随時開催されているので挫折しそうになったら利用すると良いかもしっれません。

1. 習うより慣れろ

簡単なプログラムを写経する

最初の段階ではプログラミングをマスターすることよりも、プログラミングを書いてそれが動くということに重きを置きます。そこで大事なのは自分が書いたものが動いたという幸せをかみしめることです。この実感が次へのステップにつながります。理屈はだんだんとわかってきます。そのためにも、簡単なプログラムを写して真似します。

a. 本

サンプルコードを書いて動かすタイプの参考書があります。インターネット上にもそういった記事はあるのですが玉石混交で見分けるのは難しいので、系統だった本を買うのが時間的効率を考えると得策です。お勧めの本を上げておきます。
* Ruby on Rails 4 アプリケーションプログラミング

b. ネット: ドットインストールなど

本だとわかりにくい場合には動画で学べるサービスがあります。ドットインストールと言って3分以内の動画でわかりやすく説明してくれます。多くのコースが無料で提供されているので、試してみるといいでしょう。英語がわかるのであれば同様のサービスが多々あるのでそちらも調べてみるといいかもしれません。
ドットインストール

c. スクール

TECH::CAMPなどプログラミングを教えてくれるスクールもあるようです。ただこれらは高額なことが多いので最終手段でしょう。

2. ググる力を身につけていく

第1段階でアプリ開発に慣れることができたかと思います。実際に自分の書いたコードがアプリとして動くことを体験すると、次なる欲求が出てきます。それは自分の思いついたアプリを創りたい!という欲求です。しかし、この段階では一から自分の創りたいアプリを作ることはまだ難しいかもしれません。そこで私がおすすめしたいのは「既存のアプリを真似てみる」ということです。

3. オリジナリティを高めていく

ここまできたらその先に作りたいものは皆それぞれなので、自分の欲しい機能をググってどんどん実装していきましょう。

補足

1. webサイトを作るために必要な知識

webサイトを作るためにはHTML, CSS, JavaScriptの知識が必要です。どこまでの知識が必要かはそのWebアプリのUIに自分がどこまで関わるかによって変わります。ただ、ドットインストールの入門講座で扱われるような初歩的な部分はマスターしておくと、開発がスムーズに進むでしょう。
もし、より深く学びたい時は開発合宿も開催されているので参加してみるのも良いかもしれません。
プログラミングに集中できる環境が短期間であなたを稼げるエンジニアに変える!【石垣島ITブートキャンプ】

2. オススメのRuby入門書

RailsでWebアプリを作るためにRubyのエキスパートになる必要はありませんが、基礎的なことを押さえておくことは必須です。そこで、Rubyに不安がある人にオススメの参考書を紹介します。最初からプログラミング言語をマスターしようとすると必ず挫折するので、Railsアプリを作っていて、Rubyがわかっていないことに不自由さを感じるようになったらこれらの本を手にとって体系的に学ぶというスタンスで良いと思います。
作りながら学ぶRuby入門 第2版
こちらの本は題名の通り、「作りながら」学ぶ本です。プログラミングを学ぶ人の中には文法を学ぶことばかりに気を取られて肝心のプロダクトを全く完成させられない人がいますが、そういった人にはモノづくりへの考え方の転換と、Rubyの知識が得られて一石二鳥でしょう。紙版絶版になってしまったため、Kindle本しか定価で買えませんが、Kindleのパソコン用のアプリを使えば読めるのでKindle版がオススメです。
たのしいRuby 第5版
こちらはRuby入門書の定番です。迷ったらこれ!というぐらい定番です。

3. 人とつながる

結局人に聞いたら早かった、ということも多いです。勉強会に参加して知り合いを作るなりTwitterでiOSエンジニアにからんでみたりするといいと思います。僕もTwitterやってるので、気軽にメンションやダイレクトメッセージ送ってもらえればと思います。記事の感想を聞くのはいつもうれしいです。

justin999
iOSエンジニア
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした