ツーリングの軌跡から写真整理まで。GPXを軸にアプリをリリースした

2026/04/09 22:57

※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】

Vroma と Chrova をリリースしました。

別々のアプリを作ったつもりだったのですが、振り返ってみると、 やっていたことはだいたい一つでした。 GPX を軸にして、移動の記録を残し、あとから整え、写真や動画と結びつける ための流れを作っていました。

先にリンクを置いておきます。ストアへのリンクもこちらから。

Vroma Studio Track メイン画面

Mac 側では、記録したルートを確認して、必要なら編集して、 あとから振り返れるようにしています。

ずっと、位置情報をちゃんと使いたかった

iPhone が登場した頃からと言っても良いと思うのですが、 写真や動画に位置情報をちゃんと設定できるアプリを作りたい気持ちがありました。

ただ、やることが多すぎた。 私はバックエンド寄りのエンジニアなので、iPhone アプリの作法にも長く慣れず、 昔は作ってみても実機にうまく入れられない、みたいなところで止まっていました。

macOS アプリは自分で使う分にはわりと自由です。 なので、こちらは Swift でちょこちょこ作っていました。 ただ、C のライブラリをきれいにつなぐところで長く苦戦していて、 「動くけど、なんか微妙」はしばらく続いていました。

2025年、Cline の登場でそのへんが一気に変わりました。 5 月ごろにはmacOS アプリを生成 AI と一緒に現実的に育てられるようになっているのに気づきました。 以前なら面倒で放置していたようなところまで、ちゃんと詰められるようになった。 配布できない事情のあるものも含めて、個人用途の道具がだいぶ良くなりました。

その流れの先に、今回の Vroma と Chrova があります。

バイクに乗り始めて、GPX が急に自分ごとになった

2025年の7月に自動二輪免許を取り、9月ごろからバイクに乗り始めました。 11月には四国にも行きました。

ツーリングの記録を YouTube に載せ始めると、地図の上を自分の移動の軌跡がたどっていく映像を入れたくなります。 でも、ただの趣味なので、サブスクの高機能アプリを契約するほどでもない。

一方で、私は写真も好きです。 四国にもミラーレスを背負って行きました。 使っているのは Nikon Z6。Nikon初代のフルサイズミラーレスで、とても気に入っているのですが、GPS は内蔵されていません。

Nikon には SnapBridge があります。 つながっていれば写真に位置情報は入ります。 ただ、これが「いつつながってるのか分からない」「アプリ名を思い出しにくい」 みたいなこともあり、だんだん面倒になります。

つまり、

という要求が、全部同時に発生しました。

ここで GPX が効いてきます。

まずは Vroma を作った

2026年の1月ごろにClaude Codeで作り始めました。途中からtoken 2倍ボーナスに引かれてCodexに。別でも書いてますが、2月3日以降はAIエージェントとモデルがだいぶよくなり、作りきりました。

Vroma は iPhone で移動を記録して、GPX として残すアプリです。 単に記録するだけではなく、あとから使える形で残したい、という気持ちが強くありました。

そのため、Vroma 単体で終わりではなく、

という流れになっています。

作ってみてあらためて思ったのですが、 記録は「取れること」よりも あとで見返せること のほうが大事ですね。

ただ GPX ファイルがあるだけでは弱い。 確認できて、ずれを直せて、共有前に整えられて、 さらに別の用途でも再利用できると、初めて価値が出る。

一時停止の自動再開はうまくいかなかった。でも、あとで整えられる

ツーリング中に屋内へ入ることってありますよね。 そのまま記録を続けると、GPS が飛び飛びになったり、 無駄にうろうろした記録になったりします。 なので、一時停止機能は必要でした。

問題は、再開を忘れることです。 10km くらい走ってから「あっ」となる。

そこで、一時停止地点の周辺をリージョンモニタリングして、 そこから出たら自動で再開する仕組みを試しました。 イベント自体は取れたのですが、欲しかった品質では成立しませんでした。

コードパスとしては再開しているのに、 継続的なバックグラウンド記録に戻れない。 少しだけ点が入って、その後止まる。 これでは機能として中途半端です。

ただ、ここで終わりではありません。

Vroma Studio Track や Vroma Studio では、 GPX の位置情報をあとから編集できます。 なので、屋内移動や不要な記録、公開したくない開始・終了地点などは、 後から削除したり整えたりできます。

Vroma Studio Track の編集画面

記録中の完全自動化を無理に追うより、 あとで確実に整えられること のほうが、 結果として使いやすいと判断しました。

これは実際に作って、実機で試してみないと分からなかったところです。

動画生成時に出発地点などを少しボカしたい場合にも有用です。

Chrova は Lightroom の代替を目指したわけではない

もう一つの軸が Chrova です。

AppleのApertureなき後、Lightroomを使ってきました。本当によくできています。 特に、オリジナルが外付けストレージにあっても、 ローカルに軽いデータを持っておいて閲覧や編集を進められる考え方はとても良い。

ただ、自分に必要なものはもう少し絞られていました。

つまり、自分には Lightroom の全部が必要なわけではなかった。

そこで Chrova では、RAW の巨大な仕組みを前提にせず、 一定サイズの HEIC プレビューで十分、という割り切りにしました。 移行してみると、手元で扱うためのデータは 4.5GB で済みました。 100GB以上→4.5GB、この差はかなり大きいです。

しかも、Vroma で取った GPX は Chrova でも使えます。 GPX の時間範囲に沿って地図にマッピングされた写真を見たり、 位置情報のない写真に位置を反映したり、 「その日どこをどう移動して、どこで撮ったか」をあとから追える。

Chrova の GPX 連携画面

地図から写真をたどる、は以前からありました。 でも、ひとつのツーリング記録を軸に写真を見る のは、また別の体験です。

リリースの現実として気にしたこと

せっかく出すなら、日本語だけではなく英語でも出したいと思いました。 今は日本語環境のときだけ日本語で、それ以外は英語です。

20年くらい前に、日本語・英語・中国語の3言語対応システムを作っていたことがありますが、 当時はいちばん大変なのが翻訳の回収でした。 今はそのへんを生成AIにかなり助けてもらえる。 時代は変わりました。

一方で、現実の面倒くささは別に消えていません。

今回はVromaとChrovaでリポジトリが分かれていて、 さらに公開ページはこのブログ側のリポジトリにあります。 スクリーンショットの生成元と、公開先のパスも違う。 Codexはファイルパスとスレッドが紐づいていますが、横断もできるので体験は良かったです。

審査は思ったより平和だった

App Storeの審査は、もう少し往復するかと思っていました。

結果としては、 権限取得時の文言で1回指摘を受けたくらいで、 2つ目と3つ目はリジェクトなしで通りました。

生成AIの進化で申請が増えていて審査が厳しくなっているという噂も見かけましたが、気にすべきところはなんとなくわかるのでなんとかなったのかもしれません。

小ネタ: Vroma の GPX は Insta360 Studio でも使えた

Insta360 StudioのDashboard

これは試してみてちょっと面白かったところです。

Insta360 には GPS プレビューリモコンのような仕組みがありますが、 Insta360 Studio を見ていたら、GPX ファイルの取り込み機能がありました。

そこで、Vroma で出力した GPX を Insta360 X5 の動画に食わせてみたところ、 普通に動きました。

注意点は一つで、時計がずれていると位置がずれます

なので、Insta360 側の時刻は事前に同期しておいたほうがよいです。

こういう「別用途でも使える」があるので、 やはり GPX は軸として強いです。

使ってもらえると嬉しいです

今回作ったのは、ものすごく大きな市場を狙ったプロダクトというより、 自分が長く欲しかったものを、ようやく使える形にしたものです。

でも、同じように

と思っている人には、かなり刺さるはずです。

ツーリングに限らず、ドライブでも、散歩でも使えます。

詳しくはそれぞれのページを見てもらえると嬉しいです。

Prev Entry