初めてrails newしたら800万ダウンロードしてた話

  • 23
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

この記事は【その1】ドリコム Advent Calendar 2015 - Adventarの18日目です。

17日目はikkouさんのChatWork をちょっと便利にするブックマークレットでした。

はじめに

社会人1年目の時につくったDropMusicが2周年になったのでその振り返りをしたいと思います。

経緯

大学卒業後、株式会社Ignomを立ち上げ、当時は2人という小さな規模でやっていました。2人ともアプリなどの開発は未経験で、周りに頼れるところがなく開発してきたので、その経験をもとに0からサービスをつくる人向けに書きます。プログラミングがよくわからないままつくっていたので、苦労したところや失敗、大事にしていたことをピックアップします。

技術面

社内や外部のgemやライブラリを活用

0からつくると時間がかかってしまうので、先人たちの力を借りるのも一つの手です。例えばプッシュ通知は社内に便利なgemがあることを知らずにつくっていましたが、数百万のトークンに送るとなるとAppleの接続切れなどもありその処理も追加しないといけません。そのような手間も省けるので、そういったライブラリやgemなどにアンテナを張り続けるのも大事です。

DropMusicで使っているgemやpodを一部紹介

pod

  • Mantle

    • JSONのデータをオブジェクトとして使えるようにするライブラリです
  • Masonry

    • AutoLayoutをコードで書くときに便利です
  • PromiseKit

    • 非同期処理の時に利用しています

gem

  • Kaminari

    • ランキングなどのデータを1ページずつ返すようにできます
  • Dalli

    • 今聴かれている曲をmemcachedでデータを持っています
  • Sidekiq

    • プッシュ通知の送信やランキングの作成などジョブを処理してくれます

クライアント側もMVC

アプリはObjective-Cで書いていて、はじめは動けばいいという考えでロジックやビューなどを気にせずつくっていましたが、バージョンアップや改修する際かなり苦労しました。

obj-c MVC

ログの扱い

アプリをリリースし初めてアプリランキング無料総合1位になった時、ログが大変なことになっていました。logrotateやrailsのconfig.log_levelなどの設定があまく、まさかの容量でサーバが死にかけながら年末年始を迎えました。

ユーザが見るデータなのか、貯め方に問題は無いのかを考えながら設計すればよかったと身にしみて感じました。

企画面

アプリストアランキングに立ち寄る

プログラミングを書きつつもストアランキングの状況を気にするようにしています。競合はどうなのか、トレンドはどんな感じなのかというのを雰囲気レベルで感じて、差別化を図っていきます。

例: App Annie App Store Stats | iOS Top App Charts Japan - Overall

ちなみに私は社内ツールでランキングが見れるものを使っています。

アイコン・スクリーンショットは命

少し時間を割いてでもアイコンやスクリーンショットをやり込む価値はあります。アプリの出来がいくら良くても門前払いされては意味がありません。

スクリーンショットやアイコンを見た時、何か一味違うなと思わせ、足を止めをし出来る限り客寄せをしたいものです。

例えばDropMusicの場合は、そのころ個人的に気になっていた透明感のあるUIにし、一風変わった感を出しました。たまにデザインが載っているサイトなどを見て「おっ」と思ったものを考えてみるといいかもしれません。

音楽アプリが多くなると、どれも(見た目は)同じとなるので、カスタマイズ性をアピールしたり、他の差別化できる機能を表に出します。

store ss

アイディアの評価

サービスのアイディアが日々浮かんでそれをメモしていますが、それが本当に面白いかどうかというのは難しいものです。自分自身がターゲットで最大のユーザであった場合、以下(私生活)の観点からでもみてみたりします。

  • そのサービスは、ホーム画面の1枚目に入れるか
    • 親指に近い範囲に置きたくなるようなものか
  • 明日も使いたくなるか
  • 時間を置いてもそのサービスが頭に残っているか
  • あるサービスをみて真似してみたくなったり、新しい技術を使ってみたくなったり、という衝動ではないか
    • 時間があれば勉強目的にもなるのでやっていきたい
  • 多少自己中になってもつくっていきたいものか
  • 世界や自分へのインパクトはどのくらいか

最後に

箇条書きで内容が浅いものになってしまいましたが、良いきっかけとなればと思います。

アドベントカレンダー19日目はohrdevさんのElixirを使ってSidekiqを操作するです。