はじめてのAndroidアプリ開発でやらかしたことまとめ

早くもCirclesearch for Android(以下c4a)の初版リリースから2年が経とうとしています。
今後の自分への教訓に過去のつぶやきからおさらいしておくことにしました。

Circlesearchについて

いわゆるTwitterから同人誌即売会に参加するサークルをリストアップするやつです。
Web版を公開してから1年が経過するタイミングに合わせてAndroid版を開発することにしました。

開発について

開発を開始したのが夏コミ前の7月ごろではありましたが、
Android開発未経験の状態から始まったこともあり結構な無理をしていた記憶があります。

右も左もわからないまま作り進めていく中でデバッグを友人に頼めたので本当に助かりました。

Releaseビルドが通らない

初めてのアプリ制作に苦労する中でリファレンスを読み漁りながら解決することを繰り返していましたが、個人的なリリース前のクライマックスはReleaseビルドが通らなかったときですね。

時代遅れのJackを使っていたので外したら通りました。焦ると本当に目の前が見えなくなるんですね。
Javaのことが全然わからない中相談に乗ってくれたあやにゃん(@ayatk_ch)としばふ氏(@shibafu528)には感謝してもしきれません。

紆余曲折を経ましたが、最終的には無事夏コミ開催前にリリースを間に合わせることができました。

これでめでたしめでたしと終わることができればよかったのですが、残念ながらそううまく事は運びませんでした……。

クラッシュアラートがめっちゃ上がってくる

めっちゃ落ちました。
ぬるぽ出しまくってて本当に申し訳ない気持ちしかありませんでした。

書いたSQL文が間違っている

しかもDBからはイベント情報を引っ張ってきているのにその結果をユーザ情報として処理するというガバガバっぷり。

データの初回フェッチ時は大丈夫だけどキャッシュから引っ張った瞬間に死ぬおかげで気づくまでに時間がかかることに……。

時間に追われる中でやった脳死コピペが災いしました。

こうしてリリース直後から2度の修正を経たc4aですが、このときまだ表面化していない恐ろしい実装ミスを仕込んでいたことを知る由もなく夏コミ3日目に突入します。

イベントが消える

3日目の朝、ビッグサイトへ向かう電車の中で異常に気付きました。

原因

結論から言うと完全にクライアント側の実装ミスです。
JavaのDateが日付だけを保持していると思い込んでいましたが時刻も持っていて、イベント開催期間の判定処理が間違った結果を返していました。

時刻は朝の6時半、コードを直して修正リリースを打つなんて芸当は外出中にできるはずもありません。
それでも3日目になった途端に使えなくなるというのは最悪すぎる状況です。

結果

はい。

イベント情報はサーバ側で管理して配信する仕組みをとっていたので、イベントの終了日を1日後ろにずらす、すなわち開催期間を4日間にすることでイベント一覧から消失しないように†運用で対処†しました。

Twitterなどで流れてくる運用で対処ネタを笑っていたのに、
こんなタイミングで当事者になるとは思ってもみませんでした……。

いろいろと不備が多かった初回リリース

はじめてのAndroidアプリ開発は困難の連続で利用するユーザには不便を強いてしまいました。反省です。

特にコミケ会場という劣悪な通信環境下ではキャッシュ実装がないというのが
かなり厳しいポイントになっていました。
学校も忙しくなる中でキャッシュを実際に実装できたのはさらに1年後。時間を有効に使いながらスピード感を持って開発できるようになりたいです。

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です