先週からインターンはお休みをいただいてWebサービスを作っている. 今の見た目はこんな感じ(ま, まだ全然完成じゃないんだからねっ(言い訳1))
で, 要はiPhoneアプリのレビューまとめを作ろうとしている.
基準
最初に以下の項目について考えた.
- 実現性 - 最初は1~2週間で十分出来るもの
- コンテンツの確保と更新 - 自分がコンテンツ作者だと続かない
- ある程度の商圏 - 全く需要無いのもつらい, データで開発方針決めたりしたい
- 興味 - AppStoreのランキング以外の方法でアプリを知りたい
- 売上 - どうしたらより見てもらえるかなどのデータ欲しい
- 問題の解決 - しょぼくても何かしら世の中の役に立つこと
偉そうに並べているけどなかなか条件をクリア出来るものが思いつかずに3日ぐらいかかった.
サービスの意味
こんなことを考えてた.
-
自分が探すとき, 「AppStoreのランキングを見る -> たまにレビューを検索する -> 購入」という流れがほとんどだった. これはアイコンやタイトル, 評価をざっと眺めてから気になったものだけを細かく知りたいということなのだけれど, 既存のレビューサイトだとざっと眺めるのが難しうえに, 複数のレビューサイトを見るのも面倒で, 一サイトだけだと更新頻度にも限度があって不満だった.
-
レビューサイトで思い浮かぶのって2つ3つ程度しかない. 多分みんなも同様で, 結果, 有名サイトがほとんどのアクセスを占めているんだと思った. もしレビュー単位で同列に扱えればマイナーサイトでもアクセスが得られて, {中略}結果, レビューサイト界隈の多様性が増えたらいいと思う.
-
有名レビューサイトにレビュー依頼をしても採用されないかもしれないことを考えるとすごくもったいない. なので開発者が自分で書いたレビューをプレスリリース的に載せる場所があればいいんじゃないかって思った.
開発方針
- 最初は最小の機能で
- 必要な物から作る
- 汚くてもいい
- 手間かけない
とにかく早く作ることを目指した.
必要な機能
- レビューのスクレイピング
- レビューと紹介されているアプリの表示 (最初はiPhone向けに作る)
データの取得と更新はスクレイピングだけで良いのでタスクをcronで回すようにすれば管理画面も要らない, 素敵!
予定
- スクレイピング -> プロトタイプ2日 + 回しながらバグ修正とか追加とか2日
- 表示 -> 3日(CSS苦手)
- 本番環境の準備 -> 1.5日
実際
- スクレイピング -> プロトタイプ5日 + バグ修正1日弱(もう増えないと思う)
- 表示 -> 2日目(途中), 後2日見込み
以下ハイパー言い訳タイム.
悩んだ(でいる) || 時間かかったところ
-
自分だけが読むもの(これとか)は1文字変数とか長い関数でもいいやってなるんだけど, 人が見る可能性考えると読みやすくしなきゃってなってそのために時間を浪費していると思った. 汚くてもいいやって思えたのは作り始めてしばらくしてからだったので, 既存のコードとの汚さのバランスとか考えてもっと時間を浪費することになった.
-
最小の機能と言いつつ範囲をはっきりさせてなかったので良くなかった. まだ必要ないrouteやcontrollerを作ってしまった. 範囲を決めたのは画面デザインを考え始めてからで, あんまり遷移させたくないなって思ったから. 必要な物から作ると決めていたので傷はそこまで深くなかったのは良かった.
-
アプリのアイコンを保存しておくか, Appleのにリンク貼るかも少し悩んだ. 工数増やしたくないし, AppBankがやってて怒られてないならいっかと思ってリンクにした.
-
何を表示するかとかユーザが必要な情報は何かとか難しい. レビューまとめなのでレビューを目立たせたいけど, 本文まで表示するとレビューサイトへのタダ乗りになるので良くない. レビューされたアプリを表示しないと見た目的にただのリンク集になってしまうし, 表示したら今度は一つのレビューにつき何個まで表示するのかとか, どこまで詳細に表示するかも悩むことになる. 今は, 最小限の表示にしておいてユーザ操作で残りを表示するのがいいかなって思ってる.
やっぱりというか, 悩んでることは実際に手を動かし始めると簡単に解決することが多い. とりあえずやってみるの大事. “Shut the f**k up and write some code.”な.
他に
私事だけど開発に一番影響大きかったのが人生に関わる提案をいただいたこと. 正直なところ開発どころではなかったけど, やっと結論と気持ちの整理が出来た.
今後
現状だとただのリンク集なのでリリース後には
- レビューの人気ランキング
- 開発者(or ユーザ)がレビューを投稿できるように
などサイトの特徴を出す機能を開発していきたい. 合わせて
- アプリ別
- レビューサイト別
- 開発者別
- カテゴリ別
のレビュー一覧画面と, 並べ替え機能を追加していきたい.