はじめに
こんにちは、ひるげです。
気になっているカフェの前を通るたびに、なんとなく入れずに通り過ぎてしまう。
マップアプリを開いても候補が多すぎて選べず、やがて選ぶのが嫌になって気づいたらいつもの店に落ち着いてしまう。
...こんな経験をしたことはないでしょうか?
私は、まさにこの悩みを抱えていました。
そこでこの課題を解決するために、新しいお店開拓アプリ"Roamble" を開発、まさに今日App Storeに公開しました🎉
この記事では、できるだけ技術的なところに焦点を当てながら、Roambleのシステム構成・技術選定の理由・プロダクト設計で心がけた点・今後のロードマップについて述べていきます。
Roambleとは
Roambleは、現在地周辺のお店をランダムに提案し、訪問するたびにXP・レベルアップ・バッジを獲得できるお店開拓アプリです。
一般的なグルメアプリが「良い店を探す」ためのツールだとすると、Roambleは「お店開拓の手前で止まってしまう人を動かす」ためのツールです。
様々な候補を表示してユーザーにそこから選ばせたのでは選択負荷がかかってしまう。そこでRoambleでは、あえて現在地周辺のお店をランダムに"数件だけ"提案して選ぶ余地を消す。そしてそのお店を実際に訪問できたら経験値とバッジが積み重なるという作りになっています。
この「あえて選ばせない + 新しいお店に行けた経験を形に残す」の組み合わせが設計の核です。
ただし「あの店に行きたい」というのが決まっている場合のために、マップからお店を探して提案カードに加えられる"お店を探す"機能も用意しています。
候補が多くて決めきれないときはランダム選択で1件に絞り込めるようにもしていて、選択負荷をなるべくかけない設計にしています。
実際に使っている様子はこんな感じです。
2026年3月にWebベータ版を公開したところ、規模を絞った募集であるにもかかわらず三十数人のユーザーに参加いただくことができ、そこで得たフィードバックをもとに改善しながら、このたびiOS版としてリニューアルしました。
技術構成
| カテゴリ | 技術 |
|---|---|
| フロントエンド | React Native(Expo) |
| バックエンド | Go(Gin) |
| データベース | TiDB Cloud Starter(MySQL互換) |
| キャッシュ | Upstash Redis |
| インフラ | Cloud Run |
| 外部API | Google Maps Places API |
| 課金 | RevenueCat |
フロントエンドはReact Native(Expo)を選びました。Web版をReact(TypeScript)で作っていたため、ほぼコードを流用できたのが決め手です。
Web版からの移行の際、「フロントだけ差し替えてバックエンドは共通。しかもフロントはほぼコードを流用可能」という構成をとれたおかげで、移行コストが想定よりずっと小さく済みました。
バックエンドはWeb版と同一のGoサーバーをそのまま流用しています。ここはAPIをそのまま使いまわせたので、クライアントがReactからReact Nativeになってもサーバー側の変更はほぼゼロでした。インフラごと引き継げるのは想像以上に楽で、iOS版の体験を最大限高めることに集中できました。
諸々のインフラの選定基準は、「商用利用でき、かつなるべく無料枠範囲内で利用できること」です。
私は、「個人開発のいちばんのコツは維持費を極限まで下げること」だと思っています。長期運用していくためにも、ここはこだわりましょう。
ちなみに現状として、先月のWebベータ版運用費は¥22/月という脅威の安さでした。(多分細々した設定をミスしているだけで、やろうと思えば本当に無料にできるはずです)
小規模なWebベータ版での話なので、iOS版でもこのようにいくか微妙なところではありますが、気軽に挑戦できるという面では素晴らしいと思います。
この辺りのインフラ知見については、以前別記事でまとめたものがあるので以下をご覧ください。
プロダクト設計で心がけた点
AIの発展もあり、アプリを機能として動作させるだけならほぼ誰でもできる世界になってきました。ただ、「使ってもらえるプロダクト」になるかどうかは別の話です。
ここでは、Roamble開発を通じて自分が重要だと考えていることを濃縮してお伝えします。
根源的な欲求に接続し、拡散されることを想定して作る
参考にしたのはBlake Andersonさんの動画シリーズ「How to Build Viral Apps in 2025」です。
ここで繰り返し言われていたのは「機能を見せるのではなく、人生がどう良くなるかを見せる」という点です。さらに深く言うと、バイラルしやすいアプリには共通点があって、「モテたい」「魅力的に見られたい」「自分を改善したい」といった人間の根源的な欲求に直結しているというものです。
この視点で見ると、Roambleは「お店をランダムに提案する」という機能を届けるアプリではなく、「一人でも新しいお店に踏み込める自分になる」という自己変容欲求、そんな自分を見てほしいという気持ちに訴えかけるアプリです。
この思想は設計のあちこちに反映されているのですが、とりわけXP獲得モーダルやバッジ獲得モーダルがわかりやすいです。
これらのモーダルでは、スクリーンショットをそのままSNSに貼りたくなるデザインを意識して、「開拓できた自分」が可視化されるよう繰り返し調整しました。口コミは「これ見せたい」という瞬間から生まれるので、その一枚を作ることが起点になります。
加えて写真撮影機能も用意し、SNSに料理の写真をあげる際、Roambleでの開拓記録もさりげなくアピールできるような基盤を整えました。
これらの施策を通じて、Roambleが人から人へ拡散されることを狙っています。
触っていて気持ちいい状態を先に作る
これは私の持論なのですが、「何も用がないのに開いてしまうアプリ」は強いと思います。その状態を作るには、「使う理由」より先に「触るのが楽しい」という感覚が必要です。
そこでRoambleでは、その辺りを意識してUIを作り込んでいます。
例えば、提案カードはスワイプ対応にして「無限にスワイプしたい!」と思わせる作りになっていますし、ほぼ全ての部分にexpo-hapticsによる触覚フィードバックを組み合わせています。
こういった体験を通じて、アプリを開くことが習慣になれば、自ずと新しいお店の開拓も習慣になっていくだろう...ということを狙った施策です。
このあたりのプロダクト設計論やマーケティング的な話については、需要があったりRoamble自体が大きく跳ねたりしたら、改めて一本の記事として体系的にまとめようと思っています。
もし読みたい方がいれば、この記事のコメントや、Xでのリプ・DMなど寄せていただけると嬉しいです!
おわりに
以上がRoambleのシステム構成と開発の記録です。
ということでRoambleは、気になる店があるのに一人で入る勇気が出ない、いざとなると足が動かず結局いつもの場所に落ち着いてしまう...そんな自分のために作った"新しいお店開拓アプリ"です。
以下のリンクからインストールできるので、ぜひ今日から試してみてください!
ここまで読んでいただきありがとうございました!


