駅すぱあと for Androidの新機能「再検索」実装で学んだ事

ヴァル研究所のBtoC開発チームに所属している遠島と申します。
駅すぱあと for Androidの開発を担当しており、4月で入社3年目になりました。
今回の記事では、駅すぱあと for Androidの新機能「再検索」のリリースにあたり、 実装で苦労した事などを雑多に書いてみようと思います。

再検索機能とは

経路検索詳細画面から検索条件を再設定して検索できる機能の事です。
従来の仕様では、違う条件で経路を再検索したい場合、経路検索トップ画面に戻って条件を設定し直さないといけませんでした。
しかし、再検索機能の実装により、従来よりもスムーズに目的の経路を探すことができるようになりました。

使用シーンとしては以下のようなイメージになります。

  • 従来
    • 経路検索してみたけど、なんか思ってたのと違うな
    • 一旦経路検索トップ画面に戻って...
    • 検索条件を変えて再度検索!
    • うーんやっぱりさっきの方が良いかも...
    • あれさっきの検索条件なんだったっけ?
  • 再検索実装後
    • 経路検索してみたけど、なんか思ってたのと違うな
    • 再検索ダイアログから条件を変更して再検索!(戻る時はバックキー)

再検索機能、あったら嬉しいですよね。
自分もプライベートで駅すぱあとを利用している時に、従来の仕様を手間に感じており、そのため今回再検索機能の実装の話は願ってもいない話でした。
普段ユーザとして利用して、不便に感じていた所を開発者として改善する。
アプリ開発の大きな魅力なのではないかなと感じます。

大変だったこと

大きく二つあり、一つはUIについての提案をする事でした。
駅すぱあと for Androidの開発は、プロモーション担当者と会議をしながら決めていく事が多いです。
今回の再検索機能について例を挙げると、再検索条件設定ダイアログのUIについてです。
最終的には、以下画像のようにラジオボタンで各項目を切り替えられるようにしていますが、別案としてラジオボタンを撤去し、各項目でタップ→ダイアログ表示をして条件を変更してもらう案が出ていました。

ここについては、それぞれメリットデメリットがあると思っています。

  • ラジオボタン
    • 検索条件の変更が容易だが、縦幅が嵩張るため項目の一覧性が低く情報量が過多気
  • ダイアログ
    • 検索条件の変更に操作が1ステップ挟まるが、項目の一覧性が高く画面として整っている

UIに関しては明確な正解がないものと思っていますが、提案する以上根拠を提示する必要があるため非常に悩みました。
しかし、そもそも再検索機能の価値は、経路詳細画面から手軽に検索条件を変更して再検索ができる所にあると立ち返り、その旨を提案し了承をいただいて実装に漕ぎ着けました。
迷ったら立ち返る。
当たり前ですが、とても大切な事だと思います。

そして大変だった事の二つ目は、進捗に遅れが出た事です。
最初こそ順調に作業を進めていましたが、再検索条件設定画面は、多岐にわたる検索条件をその画面内から一括で変更できる画面です。
そのため、変更した条件が他の箇所に波及していないかなど気にしながらの実装が必要になるのですが、当時の自分は考慮が足りず順調にタスクの消化と既存機能の破壊を並行して進めていました。

実装当時は、配属から1年と半年ほど経っていましたが、駅すぱあと for Androidもリリースから10年近く経つプロダクトです。
その間に積み重ねてきたソースコードもまた大きなものになっており、 全てのコードを把握できている訳ではありませんでした。

日に日に食い潰していくバッファ期間に焦り、必死に修正作業を進めていたのを覚えていますが、今思い返せば良い教訓が得られたなと思っています。
日付が迫ってきて焦りが生まれるとまた余計なミスを生みがちです。
スケジュールは不足の事態が起きる前提で見積もる事、スケジュールに遅延が出た際は即座にスケジュールの見直しや調整を図る事が大切なのだなと感じました。

おわりに

今回、学んだこととしては大きく3つです。

1.大きめな機能改修などの際には、タスク管理シートを作成しこまめに進捗管理
2.スケジュールは不足の事態が起きる前提で見積もり、不足の事態が起きた際には即座に見直し・調整をかける
3.迷った時は大元に立ち返り、元々の目的や趣旨を再考

再検索機能リリースにあたって振り返ってみましたが、改めて良い経験になったと感じています。
一人で(といっても機能の下地はチームの先輩に作ってもらいましたが)有償機能の完成まで漕ぎ着けた事もそうですし、自分の意志を提示してUI方針を決めていった事もそうです。
とはいえ、何とか機能をリリースできたのも、チームの先輩やプロモーション担当者との協力があってこそだったと思っています。

この記事が、アプリ開発に興味がある方やこれから始める方の参考になれば幸いです。