Linebbot 周辺施設検索アプリの作成

Linebotを使ったアプリケーションの作成が楽しいです。最初はインターネットの記事をコピペしていただけでしたが、少し自分で改変しました。
周辺施設を検索して表示するアプリを作成しましたのでその過程をご紹介します。

今回作成したBot

ユニークな点は 2つの周辺検索APIを使って検索していることとGoogleMap起動までできる点です。

実装したソースコードはお見せできる品質ではございませんが、必要であれば有料noteで公開することも検討します。

Botから自分の位置情報と検索キーワードを入力すると周辺検索してくれるWebAPIを使って周囲の施設を検索し表示します。その情報を使って自分から施設までの距離とみんな大好きGoogleMapを起動して施設までの経路検索の導線を作りました。
使いたい方いらっしゃいましたらTwitterまで連絡ください。URLを共有させていただきます。使用した感想などいただけると幸いです。
周辺検索に利用しているAPIは グルナビYOLPを採用しました。
距離の測定は国土地理院が提供しているサービスを使ってます。
Googlemapの起動はMap URLsを使いました。APIKeyの取得などは不要ですのでお気軽につかうことができます。 それでは本文へ。

何をつくるのか考える

アプリを作る際にどういったサービスを提供したいのか?という視点で考え始めるかと思います。僕は自分が欲しいサービスを生み出すのが一番良いと思ってます。課題にぶつかっても自分が欲しいからがんばりますし、諦めつけるときの判断も自分の基準で判断することができます。最初思った構想に比べてできないことのほうが多いくらいです。そのくらい仕様を整理して行く必要があるので割り切ることは重要です。そう、サービスの提供者でもあり享受者でもあるのですね。私は写真が趣味です。車で撮影に出かけて山の中で車中泊ということもあります。その際に必要なのが近くの食べたいもの、コンビニと道の駅です。これを検索するサービスを提供したいと思ったのが始まりです。

単純なキーワードを入力して現在地から周囲を検索して表示してくれる。

これをサービスの骨子として考えました。 細かいこと考えても後でどうせ変えるので、譲れないポイントだけ明確にします。地方へ遠征した際にコンビニ、道の駅、味噌ラーメン、そば これが検索できるBotを作ることにしました。

基本的な実装を組み立てる

施設検索という基本的な考え方に近いフレームワークを探していきます。食べ物施設を検索するグルナビAPIを使ったサンプルのソースコードがありました。それは位置情報を送ると周辺の施設を検索し、その中からランダムに1件表示する仕様でした。それをベースに実装をしていきます。この際オリジナリティなど全く無くひたすら写経していきます。このときコピペですと処理の流れが理解できないので写経がおすすめです。 初心者の私は一語一句が勉強になりますし、間違えてタイプしたものをデバッグするのも自分の経験になります。実装が終わったら自分で動かしてみます。いくつか改変したい箇所が出てきます。私の場合以下のポイントを最初の改善点としました。
①1件のみ表示だったが、複数件表示する
②検索キーワードを入力する

付加価値を増やしていく

基本機能から増やしたい付加価値をどのようにして実現していくのかを勉強していきます。複数表示の方法はGoogle先生を駆使してメッセージの複数返信する方法を見つけました。このとBotでは1つのメッセージに対して最大5件までしか返信できないことを知ります。とりあえず上位五件表示するようにします。そうすると表示順が気になりましたのでWebAPIで検索の際にソート順を距離順で返すようにしました。
次に検索キーワードです。Botの仕様上テキストと位置情報を同時に送信することができないです。そのためキーワードは覚えておく仕様としました。RailsチュートリアルのModelそれに個人特定のラインIDと入力したキーワードを保存する処理を追加しました。この時点で自分のオリジナリティが少し出始めましたね。このままドンドン進めていきましょうとなりますが、実はそうではないと思ってます・

友達から意見を求める

ある程度動作できるものができたら友人に見せましょう。自慢するためではないです。意見を聞くためです。自分の意見のみで作り切るのも手法としてありますが、このようなサービスアプリは人の意見を取り入れながら進めていくのが良いです。動くものがあると会話も弾みます。そのため自分のコンセプトが説明できるくらいまでの実装をしたら友達に使っていただき意見をいただくのが良いです。僕はその中で以下の意見をいただきました。
①候補は5件でも多いくらいだ
②候補数増やすよりも、より簡単に検索できるようにしたほうが良い。
5件以上候補を表示するため、一つの返信にもっと情報を詰め込むことを考えましたが利用者からすると情報過多のようです。気付かされました。
このような意見をいただき、ユーザーインターフェースの改善(QuickReplyの採用)を行いました。そして自分で使っていて気づいたのですがコンビニがグルナビでは検索できないという事実でした。

さらなる改善

最初に仕様を固めて作り込むよりも基礎を作ってコンセプトを固めながら仕様検討と実装を同時に進めていく手法を取りました。これは開発にかかるコストが安くなったため、軌道修正が簡単に行えるからでしょう。昔のWalter Fall型の開発が懐かしいです。グルナビAPIではやりたいことが実現できないので、グルナビで検索した結果に何もなければYOLPで検索する実装としました。優先順位はグルナビ>YOLPとしてます。これはグルナビのほうが欲しい情報要素が多いからです。(お店へのURL情報など)このあたりも実際に使いながら優先順位を変えていきたいと考えてます。また使っていて店の情報よりもそこまでの距離と行き方が知りたいということがわかりました。
GoogleMapへの導線を作り、位置情報から距離を取得するようにしました。

このように日々使いながら改善していきたいと考えてます。皆様からもご意見いただければ仕様に反映していきたいです。

マトメ

はじめて自分が仕様を考えて実装してみました。自分の生活している中でちょっとした改善がLinebotを通じて実現できるといいなと思ってます。

Botを作る際に最初に仕様を作り上げるのではなく、骨子のみを決めて作り始めていき途中で人の意見を取り入れながら良いものに仕上げていくのが良いかと思います。


この記事が気に入ったらサポートをしてみませんか?