iPhoneアプリのランキングサイト書いた

iPhoneとかiPadとかのCMで40万以上のアプリが使えるとか言われてるわけですが、数あるアプリから目当てのもの探すのは正直大変です。そこでユーザのレーティングをもとにiPhoneアプリをランク付けするサイトを書きました。名前はApp Statsです。

アクセスはココから。

AppStats Top Page

残念ながらカテゴリ別とか国別とかのランキングは普段からiPhone触ってる人が見ると当たり前で詰まらない感じです。一方で検索結果でレーティングが高い順番にアプリを並べられるのは割とありじゃないかと思っています。例えば “todo” で検索するとこのような結果が得られます。目的に対してベストなアプリを少し探しやすくなりましたね。

search result

あとアプリに加えて開発者も集計しています。このランキングは眺めていると割と面白くて個人的に気に入っています。

環境はさくらVPS + nginx + uwsgi + Django + MySQL です。最初はGAE + Kayで作ってたのですが、値上げが辛かったのと、Bigtableでの集計処理が大変だったので、現在の環境で作り直しました。

KayもDjangoもかなりリッチな環境なのでWeb側のコードを書くのは楽だったんですけど、データ量が多くてMySQLを普通に使うのが大変でした。アプリの数は40万件程度なのですが、アプリのスコアデータはその何倍にもなります。現状でも2000万件とかになっていて、ちゃんとしたSQLを発行しないと全く動きません。DjangoのORマッパーが出力するSQLだと汎用化されすぎていて遅いので、大部分を生のSQLを発行する形で書き直す必要がありました。面倒すぎて放置しかけましたが、次の次位に作る予定プログラムで後2桁くらい数の大きいデータを扱いたいので良い練習になりました。

あと申し訳程度ですが、jQuery Mobileを使ってiPhone用の最適化ページもどきも書いてみました。ajaxな画面遷移を全部OFFにすると、PC向けとmobile向けでtemplateの差し替えのみで済んだので個人的には満足しています。

for mobile

反省点としては時間がかかりすぎた事です。期間としては半年以上かかってしまいました。当初もっと機能を詰め込んでたんですけど、1000件程度のテストデータでサクサク動いてても本番のデータ量になると全然動かなくて、試行錯誤してたら何ヶ月も経ってしまってました。しかも結局機能削りまくったという。。。次からはもっとスピーディーに開発したいと思います。

Leave a Reply

Your email address will not be published. Required fields are marked *