ツナワタリマイライフ

日常ネタから技術ネタ、音楽ネタまで何でも書きます。

3週間でTwitter検索結果csvダウンロードアプリをデプロイした話

背景

社会人2年生、秋にようやく同期と社内で使う「勉強会運営支援アプリ」(ruby on rails)をリリース。これが初のアプリ完成だった。(それまでもandroidアプリを作ろうとしたが、挫折)

とにかくお金を稼げるようになりたい!という思いだけはずっとあったので、今度は外向けに何か作りたいと思ったわけでした。

目的

  1. herokuを使ってみたい
  2. twitter-apiを叩いてみたい
  3. アジャイルな開発をしてみたい

そしてようやく慣れたruby on railsでというところで、作り始めました。

herokuを使ってみたい

正直、未だにあんまり分かってません。クレカ登録してないから課金はされないだろうけど、どういうタイミングで起動すんの?いつ落ちるの?ログファイルどうなるの?と、このへん一回ちゃんと知っとかないと怖いなと。ただ、pushしてインターネットごしで見れるようになったのは感動した。

herokuというのはアプリをデプロイするPaaS。つまりサーバ借りて、必要パッケージインストールして、その上にアプリを作って、起動。グローバルIPをとって、セキュリティグループを作って、なんてことは気にすることがない。VPSのアプリ版に近いか。

まぁつまり開発者はアプリ作りに集中できるというわけです。それまでansibleみたいなインフラ構築自動化ツールやserverspecのようなインフラのテスト、Infrastructure as a codeの分野に興味があったんだけど、ここはあえて、herokuで一気にデプロイしたいと思い選択。これが後で話すアジャイル開発に効いたと思う。

twitter-apiを叩いてみたい

  • というか、Twitterが大好き

というわけでTwitter関連のアプリにしたいというぼんやりとした考えはあった。自分自身が好きということと、つぶやきデータを自由に触れればあとはアイデア次第で何でもできるだろうという考えもあった。

そこで考えたのは「エゴサーチ」。最近では写真のことを「写メ」という勢いで、検索のことを「エゴサ」と言いつつ(誤った形で)市民権を得ているワード。(ex. スタバでエゴサしたわ〜 ←お前はスタバだったのか)

どうもバンドマン諸君は自分の名前やバンド名で検索をして、ニヤニヤしたりRTをしまくったりフォロー祭りをしたりするようです。そこでツイ廃(Twitter廃人のこと。説明は省略)には検索結果をダウンロードさせるって普通に需要あんじゃない?と思い作り始めました。

ちなみにTwitter-apirubyで叩いたのはqiitaに投稿した。

qiita.com

アジャイルな開発をしてみたい

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

アジャイルサムライを読んだのはかなり前だと思うが、かなり面白い本だった。実際「勉強会運営支援アプリ」も、同期が「顧客」となって、顧客に意見を聞きながら使ってもらいながら進めることができた。今回はさらに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でアクセスできる。

Egosearcher

しかし本当にデプロイが楽すぎてビビる。

機能

先程から述べているが「Twitter検索結果をcsvでダウンロードするだけ」のアプリである。取得上限はTwitter-gemの仕様で100件。なお認証は自分のサブアカで取っているのでAPI制限に引っかかったら止まるという軟弱な仕様です。(笑)

今後

これで一段落とするが、もし使ってくれたひとからフィードバックが得られたり、バグが見つかったら修正はしたい。いつまで公開するかは不明。

これをv1とするならv2はTwitterでユーザに認証させて、個人ページを作る。そして検索間隔と検索ワードを事前登録しておいて、検索結果をメールで飛ばすっていうのはできるかなあと。

実際現状だと単にテキストをコピペする手間を助けてるだけだし。本当にエゴサしたいひとは絶えず検索して保存するってのを自動化したいはずだよね。

というわけで次回はもう少し規模の大きい物を作ろうかな。お金稼ぎたい!