読者です 読者をやめる 読者になる 読者になる

Konifar's WIP

親方!空からどらえもんが!

YOKOHAMA Ups!アプリコンテストで優秀賞もらいました。2週間のスケジュールやコミットログを全部晒します。

1月に横浜市のアプリコンテストYOKOHAMA Ups!に応募して優秀賞もらいました。横浜聖地マップという聖地巡礼アプリを作ったのですが、締切2週間前に申し込んで1人で作ったので、きっかけから開発の進め方あたりを時系列順にまとめておこうと思います。

1/13(火)- きっかけ

1/13(火)に母親からこんな報告を受けました。

f:id:konifar:20150418135005p:plain

これには本当に衝撃を受けました。今年は色々挑戦していきたいなぁと思った矢先に、まさかの母親が全く新しいことに挑戦していて。自分は全然挑戦できていないじゃんと焦りを感じました。

1/16(金)- コンテスト申し込み

で、3日後にさらに追い打ちがありまして。

f:id:konifar:20150418135434p:plain

もはや笑っちゃうレベルで、これは負けてられんなと思い直近でコンテストがあるか探して、ちょうど1月末締切のYOKOHAMA Ups!があったので勢いで申し込みました。 本当にただそれだけの理由です。

1/17(土)- テーマを決定

締切が1/31で、2週間しかありませんでした。最初の土日が重要だったので何を作ろうかなぁと考え始めました。勢いで申し込んで何も見てなかったので、まずは応募要項を見てみました。

・横浜での日常をちょっと便利で楽しくしたい

・お互いに助け合いながら生活を豊かなものに

・子供たちが夢を持てる街へと

・横浜の魅力をもっと知ってもらいたい

聖地巡礼に即決

横浜市に住んでいないので日常を便利にしたり生活を豊かにしたりってのはなんだかピンときませんでした。子供もいないので、子供のためのアプリってのも想像しにくいなぁと思いました。 じゃあ『横浜の魅力をもっと知ってもらう』に特化して勝負するべきかなぁと思った時、 聖地巡礼』という割と楽しそうなテーマが降りてきたので、横浜市聖地巡礼アプリでいこうと即決しました。 時間もなかったですし、最初のインスピレーションに従うことにしたわけです。

聖地巡礼への思い入れ

実は聖地巡礼というテーマにはすごく思い入れがありまして。4年くらい前に一度Diveという聖地巡礼サービスを作ったことがあったんですよね。今は閉じてしまったんですがあれはすごくいい思い出で、当時一緒に作ったメンバーの方には本当にたくさん刺激を受けました。 当時の自分はHtmlは書けるけどJSはちょっと・・・という感じで、リリースはしたものの中身は本当にひどい出来で、自分の力不足に歯がゆい思いをしていて。4年越しに聖地巡礼をテーマに決めたことで、あの時より少しは成長したのを実感できるといいなと頑張る気持ちが増しました。

1/18(日)- 絵をかいてタスク書き出し

テーマが決まったところで、作業を開始しました。

絵を描いてみる

まずはどんな画面にしようかと絵を描いていきました。人によりますが、自分は簡単に絵をかいてから開発始める方が効率いいです。自分のためだけの走り書きなので超汚いですが、こんな感じです。

f:id:konifar:20150418141754p:plain

描きながら、AirbnbAndroidアプリみたいな感じで聖地と現実の写真を切り替えられるのいいなぁと思い、基本のデザインはAirbnbのアプリを真似することにしました。もちろん使用頻度や目的が全然違うのでそのままのデザインがベストではないのはわかっているんですが、そこまで考える時間もないですし、描いてみるとまぁわかりやすそうだったのでいいかなぁと思ったり。

タスクを書き出す

締切まで2週間しかありませんでした。本業もあるので1日に使える時間はたぶんすごく無理して4時間くらい。 開発職じゃない人にはピンと来ないかもしれませんが、14日間 × 4時間 = 56時間で、アプリの企画から開発、リリースまで持って行くのは結構時間ないです。 しかも、このコンテストはプレゼン形式ではなく応募書類とアプリのみで判断されるので、応募書類もしっかり作る必要がありました。

これはタスク洗い出して優先度つけてやらないとまじで終わらんなと思い、1人なのにタスク管理ツール入れてタスク洗い出して、どこに時間を使うか計画を立てることにしました。

普段業務ではasanaと付箋を使ってるんですが、せっかくなので結構人気のあるtrelloを使ってみることに。 開発以外のブロガーさんへのメールやデータ登録、プレゼン資料・動画の作成なんかも全部洗い出しました。

f:id:konifar:20150418142704p:plain

機能を削って絵を書き直す

うすうす気づいてはいたんですが、洗い出してみると 「あぁ、まじで時間ねぇな」と気づきました。やっぱり最初にタスク書き出ししてみてよかったです。 で、位置情報系やログインまわりなど 別にコンテストの時点でなくてもいいなと思ったものは全部けずりました。タスクを洗い出す前に軽く絵を書いていたんですが、工数を明確にしてから修正して、コンテストの締切までに本当に必要なものだけに絞ることにしました。

その後、ちょっとかき直したのがこちらです。

f:id:konifar:20150418143457p:plain

1/18(日)〜 19(月)- サーバーサイドの管理画面作成

たぶんアプリ側だけで完結できるようにDBにデータ持たせる構造の方がよかったんですが、自分がDBを操作するような開発をあまりしたことがなかったため、サーバーサイドも作ってAPI経由で取得することにしました。 いつも個人開発する時は業務でできない実験を色々しているんですが 今回は変なことして時間ロスするのも嫌だったので無茶せず経験でできることのみで作ることにしたわけです。

ここから先はコミットログ見た方が流れがわかりやすそうなので晒します。 Railsでモデル作ってActiveAdminで管理できるようにするところまでを2日でやったようです。

f:id:konifar:20150418144820p:plain

ちなみにデータ構造は、Wikiに簡単に書いて整理していました。Indexカラムも整理しといた方がよかったなぁと後から思いました。

f:id:konifar:20150418144907p:plain

1/20(月)〜 22(水)- API作成

とりあえずActiveAdminでデータ入れてAPIで取得できるところまでやればアプリ側も作りやすいので、ざっと作っていきました。 コミットログを見ると、APIがだいたいできたのが1/22(水)だったみたいです。

f:id:konifar:20150418145348p:plain

1/23(木)〜 24(金)- アプリの画面作成

22日にAPIができたので、23日からアプリ側を作り始めたようです。 24日にはメイン画面が動くようになって、GoogleMapの表示準備あたりまでやったみたいです。

f:id:konifar:20150418150223p:plain

1/25(土)- 一気に仕上げる

25日はアプリ側をめっちゃ作って一気に仕上げました。

f:id:konifar:20150418150921p:plain

アプリ側作りながら、APIの修正もやってたみたいです。我ながら頑張りました。

f:id:konifar:20150418150939p:plain

1/26(日)〜 27(月)- 規約まわりの整理

27日になって、利用規約やプライバシーポリシーあたりを作り始めました。この時点で、アプリ側の開発もだいたい目処がついていたみたいです。 本来利用規約なんかはコンテストの時点で絶対必要なものではないと思うんですけど、聖地巡礼著作権とか色々絡むのでしっかり明記しておかないと書類時点で落とされたら嫌だなぁと思って急遽優先度をあげて作りました。

f:id:konifar:20150418151308p:plain

アプリも対応をして、この時点で最低限コンテストに応募できる状態が整いました。

f:id:konifar:20150418151957p:plain

1/28(火)〜 30(木)- データ入力と資料作成

横浜の聖地データを入力していくんですが、これがまぁ結構大変でした。。

400件の聖地データ入力

元データは聖地ブログから横浜の聖地を調べて引用許可をもらうメールを送って緯度経度、画像を調べて登録して、というのを繰り返しました。 やればやるほどアプリが充実していくので楽しかったんですが、全部で400件あり最低でも100件は登録しないといけなかったのですごく時間かかってしまいました。 普段仕事している時にこういう作業を手伝ってくれるインターンやマーケッターは本当に偉大です。

提出資料作成

10枚以内の提出資料が必要で、これを元に審査されるようだったので少し時間をかけて考えることにしました。 一応メモみたいのあったんですけど、今見ても何考えてたかよくわからないです。。

f:id:konifar:20150418153546p:plain

1/31(金)- チュートリアル作成 & 申し込み

資料作ってる中で、チュートリアルをちゃんと作った方がいいなぁと思い始めて作ることにしました。 やはり審査してもらう時に最初にかっこいいチュートリアルあった方がいいよなぁと思ったわけです。

f:id:konifar:20150418154056p:plain

作ったチュートリアルはこんな感じ。これもAirbnbを真似しました。

f:id:konifar:20150418163252p:plain

で、その他諸々修正して資料も完成させて申し込みを完了させました。作ったことなかったですが動画も初めて作りました。

2/1(土)〜2(日)- ブラッシュアップ

コンテストへの応募は31日に終わってGooglePlayStoreにリリースしたんですが、よりブラッシュアップするために2/1も作業していました。

f:id:konifar:20150418154657p:plain

コミットログ見ると、2/2も続けて改善してますね。

f:id:konifar:20150418154735p:plain

ここでコンテストの開発は完了して、あとは結果待ちすることになります。 作ったアプリはこんな感じです。 f:id:konifar:20150418163024p:plain

3/24(火)- 優秀賞もらう

2ヶ月半くらい待って、優秀賞をもらうことになりました。 最優秀賞取れなかったのは悔しいですが、母親に報告できたのはよかったです。

f:id:konifar:20150418161513p:plain

スケジュールまとめ

スケジュールを振り返ってみるとこんな感じでした。我ながら頑張りました。

やったこと・起こったこと
1/13(火) 母親からExcel試験満点合格報告を受けて焦る
1/16(金) 勢いでコンテスト申し込み
1/17(土) テーマを『聖地巡礼』に決定
1/18(日) 絵をかいてTrelloにタスク書き出し
1/18(日)〜 19(月) サーバーサイドの管理画面作成
1/23(木)〜 24(金) アプリのメイン画面作成
1/25(土) アプリを一気に仕上げる
1/26(日)〜 27(月) 規約・ポリシーを整理
1/28(火)〜 30(木) データ入力と資料のひな形作成
1/31(金) チュートリアル作成 & 申し込み
2/1(土)〜2/2(日) ブラッシュアップ
3/24(火) 優秀賞受賞

よかったこと

最後に、やってよかったなぁと思ったことをまとめておきます。

  • 2週間で仕上げられてなかなかいい体験になった。
  • 全部1人でやったので、普段の仕事で開発以外のところをいかに助けられてるか実感できた。
  • 4年前に一緒に聖地巡礼アプリ作ったDiveのメンバーの方々に久々にコメントもらえた。
  • アプリに興味持ってくれた人から問い合わせが来て次につながることがあった。
  • 1番じゃなかったけど入賞はできた。