読者です 読者をやめる 読者になる 読者になる

クフでダローバルな日記

タフでもグローバルもない

Sinatraを使ってtwitter連携のwebアプリを作ってみた記録

ちょっと前に書いた記事を公開し忘れていたので公開します。

-----------------------------------
こんにちは。もうすぐクリスマスですね。

先月くらいにSinatraを勉強してみて、先週ようやくWebアプリらしいものを作れたので、これから勉強しようと思ってる人の参考になればと思いここまでの記録をしておこうと思います。

1.Sinatraを始めたきっかけ
もともとWebサービスには興味があって、Ruby on Railsを今までも何度か勉強していたんですが、「何度か」という言葉からわかるように始める度に挫折をしていました。当時はなぜ挫折していたのかも自分でわかっていなかったのですが、今考えると

  1. そもそもhtmlを使ってページを作ったことがあまり無い
  2. 自動化されすぎていて何をやっているのかわからない
  3. └→どうしてRailsが便利なのかわからない
  4. 作りたいもの・作れるもののイメージが湧かない

というのが原因だったのだと思います。html手打ち→phpRoRという時代の流れを見てきた方々にとってはRoRの便利さも分かりやすいのでしょうが、僕のような物心ついた頃にはSNSが流行していたゆとり世代にはいまいちぴんとこないものです。

そこで、まずRailsほど「便利」ではないけど「シンプル」なSinatraを使って、まずはなにか作ってみることを目標にしました。

2.勉強の道程
最初にしたことはやっぱりドットインストールのsinatra入門です。
Sinatra入門 (全17回) - プログラミングならドットインストール
ドットインストールのSinatra入門の素晴らしいところは、これが終われば掲示板を作れるところで、それさえ理解すればちょっと応用することでかなり多くのことに応用できることですね。この場合はSinatra,erb,ActiveRecord,jQueryの使い方を知ることが出来ました。
ちなみに今までドットインストールを試聴するときは純粋に「視聴」していたんですが、動画に合わせてソースコードを写経することでかなり理解も捗ったような気がします。

もともとTwitterbotを作っていた際にHeroku上でTwitterのツイートをDBに保存する術を何となく身に付けていたので、とりあえずDBとの連携の仕方がわかっただけで簡単なwebサービス(?)を作ることが出来ました。https://ynewsretrans-viewer.herokuapp.com/ です。
昔作ったyahoo newsの再翻訳botをまとめて見たり、タグ付け・ふぁぼしたりするサービスです。練習として作ったので大して凝ってませんが、とりあえず一つ作ってみることで何となくSinatraと言うものに対する距離感は縮まったんじゃないかと思います。
ちなみに、これを作るためにjQueryやBootstrapも少し勉強しました。と言っても、この二つは簡単なのでドットインストールとか日本語版のリファレンスを読めば基本的なことはすぐに使えるようになれました。

そして、最近作れたのがTwitter連投チャレンジです。友人や先輩には「邪魔だ」「不快だ」「害悪だ」などとだいぶ不評ですが、これくらいしかモチベーションを維持して作れるものがなかったのでお許し下さい(o_ _)o
OAuthを使ったログインとかの新しい知識は必要でしたが、基本的にRubyでプログラミングしているのと近い感覚なので、結局2,3日でおおまかな部分を完成させることが出来ました。
デザイン面とか超適当ですが、Sinatraとbootstrapとjqueryを使えば簡単なwebアプリならこんな気楽に作れるのかと感動です。

3.感想
今までは自分が楽しむもの・botくらいしか作れなかった自分が、webページを作れるようになっただけで世界がかなり広がったような気がします。Railsに挫折した僕のような人にはSinatraをオススメしたいところです。とはいえ、昨日の学科忘年会で「Railsはもう古い」みたいな噂を聞いて不安に震えています。
また、先ほど「こんな気楽に作れるのか」と言ったばかりですが、実際は悩みどころも多いです。というのも、色々な人に実際に使ってみたところ結構バグが多くて、テストの必要性をひしひしと感じています。やはり今後はrspecとかを使えるようにならなきゃいけないし、その後にRailsをやっと使えるようになるんだろうなって感じます。Railsへの道は長い……

勉強する上で特に参考になったページを羅列させていただきます。
Sinatra入門 (全17回) - プログラミングならドットインストール
簡単Sinatra!WebAPI・OAuth認証を使ってみよう - 角幸一郎 | type IT Academy