背景
社会人2年生、秋にようやく同期と社内で使う「勉強会運営支援アプリ」(ruby on rails)をリリース。これが初のアプリ完成だった。(それまでもandroidアプリを作ろうとしたが、挫折)
とにかくお金を稼げるようになりたい!という思いだけはずっとあったので、今度は外向けに何か作りたいと思ったわけでした。
目的
そしてようやく慣れたruby on railsでというところで、作り始めました。
herokuを使ってみたい
正直、未だにあんまり分かってません。クレカ登録してないから課金はされないだろうけど、どういうタイミングで起動すんの?いつ落ちるの?ログファイルどうなるの?と、このへん一回ちゃんと知っとかないと怖いなと。ただ、pushしてインターネットごしで見れるようになったのは感動した。
herokuというのはアプリをデプロイするPaaS。つまりサーバ借りて、必要パッケージインストールして、その上にアプリを作って、起動。グローバルIPをとって、セキュリティグループを作って、なんてことは気にすることがない。VPSのアプリ版に近いか。
まぁつまり開発者はアプリ作りに集中できるというわけです。それまでansibleみたいなインフラ構築自動化ツールやserverspecのようなインフラのテスト、Infrastructure as a codeの分野に興味があったんだけど、ここはあえて、herokuで一気にデプロイしたいと思い選択。これが後で話すアジャイル開発に効いたと思う。
twitter-apiを叩いてみたい
- というか、Twitterが大好き
というわけでTwitter関連のアプリにしたいというぼんやりとした考えはあった。自分自身が好きということと、つぶやきデータを自由に触れればあとはアイデア次第で何でもできるだろうという考えもあった。
そこで考えたのは「エゴサーチ」。最近では写真のことを「写メ」という勢いで、検索のことを「エゴサ」と言いつつ(誤った形で)市民権を得ているワード。(ex. スタバでエゴサしたわ〜 ←お前はスタバだったのか)
どうもバンドマン諸君は自分の名前やバンド名で検索をして、ニヤニヤしたりRTをしまくったりフォロー祭りをしたりするようです。そこでツイ廃(Twitter廃人のこと。説明は省略)には検索結果をダウンロードさせるって普通に需要あんじゃない?と思い作り始めました。
ちなみにTwitter-apiをrubyで叩いたのはqiitaに投稿した。
アジャイルな開発をしてみたい
- 作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修平,角掛拓未
- 出版社/メーカー: オーム社
- 発売日: 2011/07/16
- メディア: 単行本(ソフトカバー)
- 購入: 42人 クリック: 1,991回
- この商品を含むブログ (254件) を見る
アジャイルサムライを読んだのはかなり前だと思うが、かなり面白い本だった。実際「勉強会運営支援アプリ」も、同期が「顧客」となって、顧客に意見を聞きながら使ってもらいながら進めることができた。今回はさらに2週間というイテレーションで開発をやってみたかった。そのためにはまず最初にデプロイ、というのが必要で、それにはherokuが最適だった。
実際、最初のアプリ開発ではRuby on Railsのことがわからなさすぎて、そもそも動き始めるまでにかなり時間を使ってしまった。(今回と違って規模も大きい)今回は規模が小さいこと。挫折しないように最小限の機能実装にとどめたこと(検索結果をダウンロードさせるだけ!)作りたいものが決まってるなら爆速、というRailsの素晴らしさを実感しました。
1週間単位のイテレーションで「まずは画面作り」「検索してダウンロードするだけ」「オプションやcss」という3段階でリリースできたのは本当にうまくいったと思う。ちなみにコードのstepは以下の通り。
MacBook-Air:egosearcher take$ wc -l app/controllers/tweets_controller.rb 159 app/controllers/tweets_controller.rb MacBook-Air:egosearcher take$ wc -l app/views/tweets/new.html.erb 66 app/views/tweets/new.html.erb
...わずか200step。(もちろん、railsが自動生成したコードやテストコート、ルーティング等は除いている)フレームワークを最大限利用した。
アプリ
というわけで前置きが長くなったが、アプリは以下のurlでアクセスできる。
しかし本当にデプロイが楽すぎてビビる。
機能
先程から述べているが「Twitter検索結果をcsvでダウンロードするだけ」のアプリである。取得上限はTwitter-gemの仕様で100件。なお認証は自分のサブアカで取っているのでAPI制限に引っかかったら止まるという軟弱な仕様です。(笑)
今後
これで一段落とするが、もし使ってくれたひとからフィードバックが得られたり、バグが見つかったら修正はしたい。いつまで公開するかは不明。
これをv1とするならv2はTwitterでユーザに認証させて、個人ページを作る。そして検索間隔と検索ワードを事前登録しておいて、検索結果をメールで飛ばすっていうのはできるかなあと。
実際現状だと単にテキストをコピペする手間を助けてるだけだし。本当にエゴサしたいひとは絶えず検索して保存するってのを自動化したいはずだよね。
というわけで次回はもう少し規模の大きい物を作ろうかな。お金稼ぎたい!