SUZURIのAPIを使ってAndroidアプリを個人開発した話

タイトル通り、SUZURIさんのAPIを使って、Androidアプリを作成しました。
１ヶ月半ほどの開発期間でしたが、せっかく色々考えながら作ったので覚えてるうちにここに書いておきます。

開発したアプリ
SUZROID
https://play.google.com/store/apps/details?id=jp.co.seto.suzroid
<img width="200" alt="ic_app.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547773/6570deb9-1bb9-0c9b-bee8-e02b74c032ea.png">          <img width="200" alt="ic_app.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547773/cf9d81f0-a50f-6d8e-fb15-0b91a59d13a5.png">          <img width="200" alt="ic_app.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547773/626ec0aa-a534-0943-4ff3-9fb07d24eb83.png">



お世話になったAPI
https://suzuri.jp/developer/documentation/v1

## そもそもなんでSUZURIのアプリを作ろうと思ったか
前の記事でも書きましたが、Androidエンジニアになって約一年半経ちました。
たくさんの案件にアサインしてもらってAndroid完全に理解したくらいまで進めた気がするので、今持てる最高速度を出したらどのくらいのクオリティのものがどのくらいの速度で作れるか試してみたい、というのが一番最初の動機だった気がします。
<img width="300" alt="ic_app.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547773/3db32951-fe31-b4e1-e53c-3234605fb953.jpeg">

そんなとき、ちょうど一年前に「SUZURIさんのアプリ、頑張ったら作れるんだろうか。SUZURIのAndroidアプリもなくて悲しいのでやってみるか…」と思って<b>軽くやってみて挫折</b>したのを思い出しました。（確か一番最初の認証周りで挫折した）
あの頃からいうと何度か修羅場を乗り越えたはず、いまならやれるんじゃないかと思い再挑戦を決心しました🔥

## 実際に作ってみてどうだったか
思ったより詰まる所がなく、最後まで走りきることができたというのが正直な感想でした。
これが始まる前に会社で担当していた案件で、完全新規開発の案件をメインで任せてもらってたので、そこでの経験が生きたかというのもあるかと思います。

一年前に詰まった認証周りも、Tokenとかの知識がついたからなのか1日程度で突破できました。
画面数は軽いのも入れると１１ページで、まぁ小規模とはいえそこそこ機能のあるものになったかなと思います。
ガンガン考えたデザインが実装できていくのは気持ちよかったです。

あと、実装に際して完全に復習ではなくFirebaseのRemoteConfigやKuromojiなど、<b>新しい技術を取り入れつつ速度感出して作れた</b>のはよかったなって思ってます。

## 実際の実装スケジュール
initial commitは12/11日だったので、この日から始めたんだと思います。
リリースは1/26日なので期間は約１ヶ月半くらいでしょうか。
フルタイムで仕事しているので、帰ってから大体毎日3時間、土日と年末年始で1日5時間ずつ換算として大体170時間くらいでアプリリリースまでこぎつけたという感じでした。
もう少し細かい粒度でスケジュールを書くとこんな感じです。
<img width="685" alt="スクリーンショット 2020-01-27 22.48.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547773/f4e46f74-d721-60d5-98e8-9646d86bd321.png">
企画の工程が消し飛んでいるのは、目的がエンジニアとしての力試しから始まったから、結果的にこうなっちゃったんだと思います。
テストは実際コーディングと平行でやっていたので、まぁいけるかと思ってあんまりせずにリリースしちゃいました。

## 一人で企画からエンジニアリングまでやってみて
作り始めた時は、特にいつまでにリリースしようとかどういう機能にしようとかを考えてはいなかった覚えがあります。
とりあえずAPIをざっと見て、<b>なんだかECっぽいアプリにはできそうなのでやってみよう</b>くらいの感覚で始めました。
あんまり考えすぎると、手を動かす前にポシャってしまいそうでしたし…

企画はECアプリっぽいなにかをつくるというだけであまりガチガチに固めず、最初からデザインとアプリ開発を並行してサクサク進めていきました。
私はたまにお絵描きとかするのでイラレとかはさわれますが、デザイナーではないのでデザインツールを使って何かを残すということはせず、とりあえず形態が似た業種のアプリ（EC系、フリマ系）を集めてそれを見ながらコードに落とし込んでいき、実際の画面を見ながらデザインちっくなことを進めていきました。

ここで得た知見は、<b>一人の人間が一気通貫で企画〜エンジニアリングまでやるとぶれない</b>ということでした。
もちろんエンジニアリング以外の企画、デザイン部分はそこ単体で見ると本業の方にはクオリティ面では劣るでしょうし、変なところで時間もかかっていたかと思います。
ただ、全てを１人で担当するとコミュニケーションコストはないですし、良くも悪くも自分の中で完結するのでブレが少なかったです。
あまり企画を固めなかったこともあり後々こういう方が良かったとか出るかと思いましたが、<b>ECっぽいものをつくるという大目標はAPIが決まっていてぶれようがなかった</b>ので、それが良かったのかもしれません。

## サポートしてくれたデザイナーとプランナーによって変わったこと
大体お正月が明けた頃くらいには形になっていたので、社内のデザイナーとプランナーの方々にそれぞれみてもらってレビューをいただきました。

デザイナーの方は「え、めっちゃいい、楽しそう」といいながら死ぬほど忙しいはずなのにアイコンとSplashを即興で作ってくれました。心から感謝しております…
どうも最近エンジニアに極振りしていたせいか、他のアプリを参考に機能を綺麗に作るという部分はある程度できていたようですが、遊びゴコロみたいなところが足りなかったようです。
アプリに色がついて一気に華やかになったので、<b>デザイナー、スゴイ</b>って言いながら開発してました。

プランナーの方は、どちらかというと今後のSUZROIDの方向性を一緒に考えてくれました。
これがめちゃくちゃFirebaseのイベント設計にも生きてきました。
あと、正直SUZURIさんの公式アプリが出たら被るし、ストアから落としたほうがいいかなぁとか考えていたのですが、かなり面白い方向性に導いてくれたのでまだまだ<b>アップデートしがいがありそう</b>です。
こちらの方も死ぬほど忙しいはずなのですが、みんなアプリ作るのが好きなんでしょうね…

## まとめと感想
個人開発、定期的にやろうなって思いました。
会社だと、割り込みタスクとかが絶対はいるので工数とか見積もりとかしてても本当に正しいかどうかってわかりません。ただ、<b>個人開発だと割り込みタスクがほぼないので自分の実力を見直すのに適してる</b>なって思いました。
今後はこのアプリのアップデートを定期的にやっていこうとは思いますが、節目節目で何か別の新規アプリをガーッと作ることがあってもいいのかなと思ってます。

## 謝辞
最後に、SUZURIさんのお問い合わせ窓口には感謝しかないです。
多分本来対応範囲外なはずのAPIの質問を投げても、懇切丁寧に返していただけたので本当に助かりました。今後ともよろしくお願いします😇