development
年輪を作るはずが、ログアウト!?「今月の年輪」完成までの長い開発記録
走った努力を年輪として可視化したい。そんな思いから始まったRunner’s Ringsの新機能「今月の年輪」。開発中には、英語に切り替わらない、日本語へ戻らない、ログアウトしたように見える、さらには「Japan語」になる珍事件まで発生。AIとの試行錯誤、第三者監査、そして一人の人間の発想によって、ようやく完成へたどり着いた開発の舞台裏を紹介します。
そもそも、何を作りたかったのか?
Runner’s Rings(ランナーズリングス)は、走った道が地図に刻まれ、努力が年輪のように積み重なるアプリです。
今回作ろうとしたのは「今月の年輪」。
今月どれだけ走ったのか。先月と比べてどうだったのか。1年前の自分はどうだったのか。
日々のランニングを、少し違う視点から振り返る機能です。
比較するのは次の3期間。
* 対象月
* 先月
* 前年同月
走行回数と距離に加えて、走った道も比較できるようにしたい。
そんな構想から開発が始まりました。
ENを押しても、日本語のまま
ところが、開発を進めるうちに別の問題が見つかりました。
日本語・英語の切り替えです。
「EN」を押すと、ボタンは英語を選んだ状態になる。
しかし、画面の文章は日本語のまま。
ページを更新すると英語になることもありましたが、一部の文章は取り残されていました。
調べていくと、言語設定を保存する処理と、実際の画面を翻訳する処理がうまく連携していないことが分かりました。
しかも、複数のJavaScriptがそれぞれ翻訳を担当していました。
一つを直しても、別の処理が表示を書き換えてしまう。
思った以上に複雑な問題でした。
今度はログアウト!?
翻訳の修正を繰り返していると、今度は別の症状が現れました。
英語表示に切り替えたり、画面を更新したりすると、ログイン画面に戻ってしまうのです。
言語を変えたいだけなのに、自分のランニングデータが見えなくなる。
これでは安心して使えません。
そこで、ログイン情報を復元する処理と、翻訳を開始するタイミングを見直しました。
認証の初期化が終わってから翻訳を動かすように調整し、再読み込みを必要としない言語切り替えを目指しました。
なお、この症状は、認証情報そのものが消えていたのか、画面の初期化によってログアウトしたように見えていたのか、完全には特定できていません。
それでも、何度も実機で確認しながら改善を重ねました。
「日本語」が「Japan語」に!
そして今回、忘れられない珍事件が起こりました。
日本を英語に翻訳する処理が、言語切り替えボタンの「日本語」にまで作用してしまったのです。
結果は、まさかの「Japan語」。
直したはずの英語表示から日本語へ戻れなくなる問題も発生しました。
翻訳は、ただ言葉を置き換えればよいわけではありません。
どの文章を翻訳するのか。いつ翻訳するのか。元の日本語をどう保存し、どう復元するのか。
その仕組みが大切だと痛感しました。
むせの監査で見つかった問題
開発を担当するAI「チャッピー」だけでは、修正したつもりでも見落としが残ります。
そこで、もう一人のAI「むせ」に第三者監査をお願いしました。
むせは公開サイトとGitHubのコードを確認し、問題を具体的に指摘してくれました。
補完翻訳ファイルの記述ミス。複数の翻訳処理の競合。日本語へ戻す際の復元漏れ。英文の途中に残る日本語。
さらに、登録者数などの集計が毎回読み込み直され、表示まで時間がかかる問題にも取り組みました。
公開集計には24時間のキャッシュを導入し、初回取得が遅い場合でも次回以降は保存済みの値を使えるようにしました。
修正して、監査して、また指摘される。
その繰り返しです。
途中では、一つの修正を優先するあまり、別の依頼を置き去りにしてしまうこともありました。
開発を急ぐだけでは、完成には近づかない。
問題を記録し、直した箇所と残っている箇所を区別することの重要性も学びました。
最終的に、2026年10月29日のBuild 2026.10.29.13について、むせから多言語対応の一区切りという判定を受けました。
ようやく「今月の年輪」に戻った
翻訳の問題が落ち着き、ようやく本来の開発へ戻りました。
最初の共有画像は、3期間のGPSルートを水色・黄色・ピンクで重ねたもの。
開発した本人たちには意味が分かります。
しかし、画像を初めて見た人にはどうでしょうか。
色のついた線が並んでいるだけで、何を伝えたいのか分かりにくい。
背景に薄い年輪模様を入れたり、ルートを太くしたり、表示範囲を調整したりもしました。
それでも、根本的な問題は残りました。
「そもそも、何を見せたいのか?」
この問いが、デザインを変えるきっかけになりました。
地図を捨てて、ロゴを使おう
そこで考え方を変えました。
アプリ内では、これまでどおり走った道を地図で確認できればいい。
一方、SNSで共有する画像には、走った努力の比較が一目で分かる表現が必要です。
それなら、無理に地図を使う必要はありません。
Runner’s Ringsには、ピンクから黄色へと変化する年輪のロゴがあります。
この年輪を3つ並べ、走行距離に応じて大きさを変えたらどうだろう。
今月も、先月も、前年同月も、まったく同じロゴを使う。
最大距離の月を基準に、ほかの2期間を縮小する。
色ではなく、大きさによって走った量を表します。
距離に比例するのは円の直径ではなく、面積です。
そして期間の見出しと距離だけを、水色・黄色・ピンクで区別しました。
38回、261.3kmの年輪
完成した共有画像には、次の記録が並びました。
2026年10月:38回、261.3km。
2026年9月:29回、248.3km。
2025年10月:17回、138.2km。
同じ年輪ロゴなのに、走った距離によって大きさが違う。
これなら、1年前から積み重ねたランニングの量も視覚的に比較できます。
むせによる最終監査では、実際の共有画像からロゴの大きさを測定し、距離と面積の比例関係が正しいことも確認されました。
監査で指摘された0kmの期間の表示と、共有画像の注意文も追加調整しました。
今回の新しい共有画像にはGPS軌跡を含めず、期間・走行距離・回数を掲載する設計です。
AIだけでは完成しなかった
今回の開発で印象に残ったのは、AIの技術だけではありません。
AIはコードを書き、翻訳の問題を調べ、画像を描き、監査することができます。
しかし、最初の画像を見て「これでは何を見せたいのか分からない」と指摘したのは人間でした。
同じロゴを3つ並べればいい。
そのシンプルな発想が、複雑になっていたデザインを変えました。
チャッピーが実装し、むせが監査し、人間が方向を決める。
開発中には失敗も遠回りもありましたが、そこから得られたものは小さくありません。
Runner’s Ringsが残したいのは、ただのランニング記録ではありません。
昨日も、今日も、そして1年前からも続いている、走った人生そのもの。
「今月の年輪」は、その思いを小さな3つのロゴに込めた機能になりました。
まだ改善できることはあるでしょう。
それでも、今回の開発はここで一つの年輪を刻んだと思います。
Journal一覧へ戻る