コンテンツへスキップ

ROADSTOCK

Contents

アプリ概要

ROADSTOCKは、車・オートバイのツーリングの記録を残すためのアプリです。GPSログに加えて、走った道路や立ち寄った場所の情報、給油やメンテナンスの記録などを保存すること、そして、これらをできるだけ自動的に残すことを目的としています。特に「道」の記憶を残すことを重視しています。

ROADSTOCK_ja_480_2

もう一つの目的は、ツーリングや道路の記憶を残すことを中心として、給油記録やメンテナンス記録もまとめて1つのアプリで管理できるようにすることです。そのため、燃費管理もしくはメンテナンス管理のために使うこともできます。

なお、ROADSTOCKは車・バイクに特化したアプリです。自転車やランニングのログは取得できません(モーションセンサーで除外しています)。

ROADSTOCKはGPSとモーションセンサーを利用します。また、道路名取得のため、頻繁にデータ通信をします。そのため、常時給電状態での利用を強く推奨します。

コンセプト(開発のきっかけ)

iPhoneがない時代のツーリングの記録は、ジャケットのポケットやタンクバッグに入れた小さなメモ帳に、停まるたびに鉛筆で書き込んでいたものです。ROADSTOCKは、その作業をなるべく自動的に代行します。途中で休憩したり、食事をとったりするために停止すると、その情報を残します。走行した道路の情報は、Webサービスを介して道路名を取得して、自動的に保存します(但しOpen Street Mapに情報がある場合に限られます)。区間ごとの走行距離や時間も、GPS情報に基づいて記録します。

メモと鉛筆の場合、雨が降ったり、時間に追われたりすると途端に空白だらけになったものですが(そのような残念な経験こそが、ROADSTOCKの開発に至った大きな理由です)、ROADSTOCKを使えば、基本的にはほとんどのツーリング情報を勝手にiPhoneに記録します。

とはいえ、ある場所で停まったという記録は残っても、何のために停まったかは当の本人にしかわかりません。道路名の自動取得は完璧ではありません(林道や農道は情報を取得できませんし、高速道路と一般道が重なったようなところも苦手です。そもそも通信圏外では取得できません)。これらはツーリングが終わってから、行程を振り返りながらゆっくり書き込んでください。面倒に思われるでしょうか。それでも、都度手書きするよりはよほど楽です。ROADSTOCKに残っている大雑把な情報を手直しするだけでいいのですから。

機能

車両管理

  • 自動車・二輪車を複数台登録可能(5台まで:サブスクリプションで制限解除可能)
  • 各車両のサービスデータを任意に設定可能(タイヤ空気圧や各種オイル量、締付けトルク等のメモとして使用することを意図しています。サンプルは提供していますが、これはあくまでサンプルです。貴方にとって必要な情報を自分で書き込んでください)

ツーリング記録(GPSログ+情報)取得

  • GPSログを取得します
  • 何らかの理由で所定の時間(デフォルトでは3分)停止した場合は、停止イベントを自動的に追加します
    • 再び走り出した場合は、停止状態から走行状態に戻り、ログ取得を再開します
    • 各イベント毎に名前設定、写真追加、アイコン設定などができます
    • モーションセンサーにより走行状態かどうかを判断するため、車両から降りて歩いた場合等はログを取得せず、停止扱いとなります
    • 停止後に歩き回った際、それはログ取得対象外となります
    • エンジンをかけたまま仮眠をした場合等は乗車状態と判断する場合があります
  • イベントは手入力も可能です。休憩、給油、メンテナンス、写真等の情報を残すことを想定しています
  •  位置情報を用いて、実際に走行した道路名を取得します
    • 道路名とGPSログはリンクしていますので、道路名タップ→地図上の表示、またはその逆が可能です
    • Web APIを用いて、適当な間隔(時間または距離)をおいて道路名を取得するため、道路が変わるタイミングは不正確です(実際の道路変更点より数秒後の地点になることが多いです)
    • 【日本国内限定】道路名の取得には、Open Street Mapの情報を用いています。Open Street Mapに無い場合は取得できません
    • 例えば高速道路と一般道が重なる場合など、正確な値は取得できません
    • データ通信圏外となった場合は道路名を取得できません
    • 道路名、道路が切り替わるタイミングは事後編集できます
    • 過去に走ったことがある道を再度通過する場合、ROADSTOCKに記録済みの位置情報があれば、それを優先利用します。何度も通っている場合は、直近の情報を利用します。即ち、道路名をWebサービスから取得できない場合でも、過去に道路名を手入力してあれば、それを利用して道路名を取得できます
  • 区間ごとの走行距離・時間を記録します。平均速度が一定以上の場合は高速道路走行と判断します
  • 距離は基本的にGPSの値を使用しますが、オドメーター値を手入力することも可能です。手入力した場合はそちらを優先します
  • ツーリング全体の所要時間、走行時間(停止時間除外)、平均速度、最高標高、燃費、費用等をサマリー情報として表示します
  • 特定のイベントに関係ない費用(道路代など)を記録できます
  • 各イベントに付加した写真を一覧表示できます

道路の管理

  • GPSログ(経路)を道路毎に分割し、道路名を設定できます
  • 道路毎に写真やメモを貼付できます
  • 道路名は自動取得しますが、精度が良くないこと、全ての道路名を取得できるわけではないこと、そもそも通信圏外では取得できないことから、編集機能を用意しています
  • 保存済みの道路を分割/結合できます

お気に入り(★)表示

  • をつけたツーリングだけを一覧表示/地図表示
  • をつけた道だけを一覧表示/地図表示

給油記録管理

  • ツーリングとは関係なく、通常の給油記録管理(燃費計算)をすることができます
  • ツーリング時と通常時(非ツーリング時)の情報をまとめて管理します
  • 機能的には通常の給油管理アプリが普通に持っている機能と同等ですが、それに特化したアプリではないので、過剰な機能はありません。例えば、トリップ入力はできませんし、給油間の走行情報(エアコンをつけていたか、何名乗車だったか、高速道路メインだったか等)を保持する機能はありません。メモを残すことはできるのでそれで代替してください

メンテナンス記録

  • ツーリングとは関係なく、通常のメンテナンス記録を管理できます
  • ツーリング時と通常時(非ツーリング時)の情報をまとめて管理します
  • 予定(ToDo)を登録しておき、実施時に実績化することができます。ツーリング中に不具合(異音がする、フィーリングが悪いなど)に気付いたものの、すぐに対処できない場合等のメモとして利用できます
  • 項目ごとにフィルタリングすることができます(数があまりにも多くなった場合に、エンジンオイル交換の間隔だけ見たい時などに利用することを想定しています)
  • オイル交換等、定期的に実施するメンテナンス項目等をリマインドする機能はありません でしたが、Ver2.2.0で追加しました(追加機能サブスクリプションが必要です)
  • メンテナンス項目は全て手入力ですが、コピーして再利用することは可能です(メンテナンス管理に特化したアプリでは、項目を予め用意しているものもありますが、コピー再利用で充分だと考えています)

出費管理

  • 車両毎の出費情報(税金、保険など)を管理できます
  • リマインダーのような機能はありませんが、過去の実績をコピーして再利用することはできます

GPXエクスポート/シェア

  • GPSログをGPXファイルとしてエクスポートできます
  • GPSログではなく、ツーリング画面(ログを反映した地図およびタイムライン)をTwitter, Facebook, メールに送ることができます。タイムラインはテキストとして送ることもできます
  • 各種イベント単体でシェアすることもできます

GPXインポート

  • GPX形式のGPSログをインポートすることができます。インポートにあたっては、ポイント毎の速度等をもとにして自動的にイベントを挿入して区間に分割します。但し、GPXログにはモーションセンサー情報が無いため、徒歩移動なども含まれてしまうことから、正確ではありません
  • インポートしたログに道路情報を付加することができます(通常のログに再付加することもできますが、あまり意味はないでしょう)。なお、この機能はWeb APIの制約により、ツーリング丸ごと実施することはできません。区間ごとの実施になります。また、短時間に何度も使うとWeb APIの制約により失敗することがあります

追加機能サブスクリプション

以下の機能をサブスクリプションで提供しています。
詳細はこちらを参照ください。

  • 広告除去
  • ツーリングフォルダ
  • ロギング再開リマインダー
  • 全車両ツーリングリスト
  • 車両台数制限除去
  • ツーリング写真一括インポート(Ver 2.1.0〜)
  • メンテナンスリマインダー(Ver 2.2.0〜)
  • 車両毎の費用総額集計(Ver 2.7.0〜)
  • ツーリングのSTOPイベントの連続編集(Ver 2.7.0〜)
  • メンテナンス、出費の一括編集(Ver 2.7.0〜)

使い方(詳細)

オンラインマニュアルを参照ください。
Ver 1.xはこちら

アップデート情報

アップデート情報(Ver 2.8.x)

給油記録のインポート/エクスポート機能を追加しました。ファイル形式はTSV(タブ区切り)です。詳細はこちらを参照ください。

アップデート情報(Ver 2.7.x)

  • ツーリングを長押しして名称変更する機能を追加しました。
  • 以下の機能を追加しました。いずれも追加機能サブスクリプションが必要です。
    • 車両毎の費用総額集計
    • ツーリングのSTOPイベントの連続編集
    • メンテナンス、出費の一括編集
  • 上記「車両毎の費用総額集計機能」の追加に伴い、車両情報編集ボタンの位置を変更しました。
  • 上記「ツーリングのSTOPイベントの連続編集」の追加に伴い、終了したツーリング(実行中のツーリングの場合は違うメニューになります)におけるツーリング画面内右上のボタンから表示するメニュー項目を変更しました。従来はタイムライン/ツーリング一覧画面の長押しから実行していた「写真をインポート」機能(追加機能サブスクリプションが必要)、地図画面右下のボタンから実行していた「地図設定」機能も、このメニュー内に追加しました。

アップデート情報(Ver 2.6.x)

各画面のリスト表示項目を年単位で区切って表示するように変更しました。

アップデート情報(Ver 2.5.x)

  • 年ごと、月ごとのツーリングの回数と距離を集計する機能を追加しました。ツーリング記録タブ右上のアイコンから起動してください。
  • 地図上の軌跡を長押ししてGoogle Mapアプリを起動し、Street Viewを表示する機能を追加しました。長押しして表示されるメニュー内にあるボタンを押してください。軌跡以外の場所をタップしてもメニューが出てきませんのでご注意ください。
  • 過去のツーリングログの軌跡を、現在開いているツーリング画面に重ねて表示する機能を追加しました。ロギング中、終了後いずれも使用できます。ツーリング画面右上の「+」ボタン最下部にある「過去ログを重ねて表示」を選ぶと、過去の全車両のツーリング記録がリスト表示されます。重ねて表示したいツーリング(複数可能)を選んで、右上の「Done」を押してください。過去のツーリングを紫の細い線で表示します。
  • 地図を縮小表示した際にイベント等のアイコンを消す機能を追加しました。拡大縮小に伴いアイコンが消えたり現れたりします。
  • GPXファイルのインポート元を、iOS標準のファイルアプリから参照可能な場所に変更しました。ファイルアプリで「ブラウズ」→「このiPhone内」→「ROADSTOCK」で開ける場所にGPXファイルを保存した上で、ROADSTOCKの「GPXファイルをインポート」機能を実行してください。

アップデート情報(Ver 2.4.x)

  • 給油やメンテナンス項目の登録や修正にあたり、入力した値を即データベースに保存するように操作方式を変更しました(画面右上の保存ボタンを廃止)
  • 写真の登録処理も同じ方式とし、選択した写真を即座に保存するように変更しました
  • 写真の選択画面をiPhone標準の方式に変更しました

アップデート情報(Ver 2.3.x)

  • 出費/経費(車両単位の出費、ツーリング毎の出費両方)をカテゴライズする項目「分類」を追加し、それを使って集計する機能(下図)を追加しました
  • 「分類」は、各項目をタップして出てくる画面で設定してください
  • 既存の項目は、「分類」が空欄となるため、全て「未分類」として扱います

アップデート情報(Ver 2.2.x)

  • メンテナンス記録を同一項目観点で集約する画面を追加しました(下図のボタンから起動)
  • 前回実施からの経過日数/距離観点で表示する画面を追加しました(下図のボタンから起動)
  • メンテナンスリマインダー機能を追加しました(追加機能サブスクリクションが必要です)

アップデート情報(Ver 2.1.x)

  • ツーリング記録、ツーリング内のイベント、メンテナンス記録、出費記録などのサムネイル画像を選択可能にしました。写真タブ内にタイル状に表示されている写真のうち、サムネイルにしたいものを長押ししてください(従来は最初に登録した写真を使っていました)
  • ツーリング記録に対して写真を一括インポートする機能を追加しました(追加機能サブスクリプションが必要です)

アップデート情報(Ver 2.0.x)

こちらを参照ください。

アップデート情報(Ver 1.6.x)

  • 広告非表示、機能追加などをサブスクリプションで提供しました(詳細はこちら
  • 地図上に表示するアイコンの表示/非表示設定画面を、地図上のボタンから起動できるようにしました

アップデート情報(Ver 1.5.x)

  • 日本語表記に対応しました(英語表記にもできます)
  • 給油情報の金額入力時に総額入力または単価入力を選べるようにしました
  • 日付入力をカレンダー方式にしました(iOS14以降のみ)
  • 地図上に表示する幾つかのアイコンの表示/非表示を選択できるようにしました
  • iCloudへのバックアップ機能を追加しました(1.5.13以降)
  • 起動時に自動的にデータベースのバックアップをとっておくようにしました(1.5.14以降)

アップデート情報(Ver 1.4.x)

【新機能】

  • 地図への経路表示にあたり、50km毎にキロポストを表示する機能を追加しました(ツーリング完了後のみ表示します)。
  • ツーリング中のイベントやメンテナンス等への写真インポートにあたり、当該イベント直前・直後の画像だけを自動インポートする機能を追加しました(イベントは当該日時の5分前から20分後まで、メンテナンスは当日の画像をインポートします)。
  • フォントの大きさをiPhoneの「設定→画面表示と明るさ→テキストサイズを変更」で変更可能にしました。一部のフォントはこの設定では変更できませんが、デバイスサイズに応じて最適化しました。

【変更点】

  • 給油情報登録時に給油量とガソリン単価を必須入力から除外しました(事後入力可能)。
  • PAUSE / RESUME(一時停止 / 再開)アイコンを変更しました。
  • 一部のTwitter/Facebookシェア機能を廃止しました。

【修正点】

  • 道路名を取得できたのに最終的に”=====”になってしまう不具合を修正しました。
  • ツーリングタイムライン画像のTwitter/Facebookエクスポートの不具合を修正しました。
  • 道路名を再取得する機能がいつまでも終わらない問題に対処しました。

アップデート情報(Ver 1.3.x)

  • ログ取得処理、道路名取得処理を全面的に見直しました。停止判定失敗の回避、道路名取得漏れ削減等により、現実との乖離を減らしました。
  • ログ取得中に地図画面操作が重くなる、画像追加時に重くなる等の問題に対処しました。
  • イベントアイコンの見直し、メンテナンス画面のフィルタ順序見直し等の修正を実施しました。

アップデート情報(Ver 1.2.x)

  • iOS 13のダークモードに対応しました。
  • ログ取得中の操作画面(距離/時間表示、ボタン)を一部変更しました。

アップデート情報(Ver 1.1.x)

Ver 1.0.xで発生していた以下の問題を修正しました。

  • 道路名を取得できない
  • iOS11以上の場合、ロギングが途中で止まってしまうことがある

また、以下の対応を実施しました。

  • イベントのアイコンに温泉マークを追加しました。
  • iPhone X/XS/XS Max/XRに対応しました(今更)
  • その他細かい不具合を修正しました。

道路名を取得できない問題

2018年夏頃から、道路名を取得できない問題が出ていました。原因は、Google Maps APIのポリシー変更によるものです。Google Geocoding APIは従来無料でしたが、それが有償化され、地点情報の取得方式が変わりました。ROADSTOCK Ver 1.0.xは、新しい指示方式に対応できていないためエラーとなり、道路名を取得できませんでした。

【修正方針】
有償APIは従量制で、概算ですが10回程度の日帰りツーリングを処理すると無償範囲を超えて有償となります。これは利用者ごとではなく、全ROADSTOCK利用者の合計です。その金額は、現在のROADSTOCKのアプリ収入(広告収入のみ)から考えると全くペイしませんので、Google Geocoding APIを使うという選択肢はありません。その代替として、Open Street Mapを利用するように修正しました。ただし、取得できる道路名は従来より精度が落ちます。取得できないよりは良いと思いますので、その方針で修正しました。

なお、Google Geocoding APIでは県道より上位のものしか取得できませんでしたが、Open Street Mapを使うことで、市道や農道、林道等の道路名も取得できる可能性はあります。ただし、あくまで有志の方が道路名を登録してくれている場合に限ります。

【精度が落ちる例】
Open Street Mapは有志により作られているものであり、登録者の癖が反映されますし、各種名称の統一化が徹底できていません。また、道路の正式名より通称が優先されている傾向があります。したがって、下記のような事象が発生します。これが期待に沿わない場合、自分でOpen Street Mapの活動に参加して直すしかありません。

・県道xx号、といった表示(整理番号)が「xx線」という路線名や「xx街道」のように通称となることが多い。
・同じ道なのに、区間により「xx街道」「xx線」「県道xx号(xx街道)」のような別表現が混在する。

なお、ROADSTOCKは一度通った座標を再利用するため、意図した道路名を手修正でセットしておけば、同じ道を再度通る際はおかしな道路名にはなりません。

【補足】
これは日本限定の現象です。日本以外では元々Google Geocoding APIではなく、AppleのGeocoderを利用しています。理由は、Apple Geocoderが返す日本の道路名が著しく不正確なためです。Appleの対応が変わり、正確な道路名を返すようになれば、Apple Geocoderに変更することで正確な道路名を取得できるようになるかもしれませんが、それがいつになるのかは誰もわかりません。

米国以外の他国では同じく不正確という情報も見たことがありますが、実際にテストすることができないため、それ以上追求していません。

よくある問い合わせ

ロギング中にアプリが落ち、その後ずっと「ONGOING」状態になってしまっていて新規ツーリングを開始できない

ロギング中に何らかの理由でアプリがクラッシュした際に変なデータが残り、内部的にツーリング続行中の情報を保持したままになってしまっているという問題です。Ver 1.3.4で、メニュー「RESET(TERMINATE) LOGGING」を追加しました。これを実行することで、とりあえずツーリング続行状態から脱却することは可能です。

停まっている/休憩しているのに「STOP」にならない

原因はわかりませんが、iPhoneのモーションセンサー利用許可設定がいつの間にか消えて無くなってしまうことがあるようです。以下の操作で対処できた(設定が復活した)例が報告されています。

  • iOS標準の「設定」→「プライバシー」→「モーションとフィットネス」を開き、「フィットネストラッキング」を有効にする
  • そこでROADSTOCKが現れた場合はONにする
  • 無い場合、ROADSTOCKアプリを強制終了
  • ROADSTOCKを起動
  • 新規ツーリングを開始(特に何かに乗車しなくてもかまいません)。その際に、iOS標準の確認画面が出れば成功です。出ない場合、10秒ほど待ったあとにツーリングを終了してください。終了時に画面が出ることもあるようです
  • iOS標準の「設定」→「ROADSTOCK」で「モーションとフィットネス」が選ばれていることを確認する

ロギング中にアプリが落ち、その後起動できなくなった

落ちる原因・直った原因ともにわかっていませんが、アプリの再インストールで回復したケースがあります。
Ver 1.5.13 でiCloudへのデータバックアップ・復元機能を追加したため、それを用いてバックアップ→アンインストール→復元は可能ですが、そもそも起動できない場合はこの手段は使えませんので、その際の手順を示します。

普通にアプリを消してしまうと過去のデータが全滅してしまいますので、以下の手順を踏む必要があります。
PCまたはMacが必要です。無い場合はこの手段は使えません。また、下記以外の方法で回復できた事例はありません。

  • PC/MacのiTunesを用いてiPhone自体をバックアップ
  • iTunesのファイル共有機能を用いてROADSTOCKのデータを全てバックアップ
  • iPhoneからROADSTOCKアプリを削除
  • AppStoreからROADSTOCKを再インストール、起動(初期状態になっているはず)
  • PC/MacのiTunesファイル共有で、バックアップしたROADSTOCKデータを「追加…」ボタンでiPhoneに上書きコピー(但し ROADSTOCK.realm.lock, ROADSTOCK.realm.management, ROADSTOCK.realm.note は対象から外してください)
  • iPhoneをPC/Macから取り外す
  • iPhoneでROADSTOCKを起動(既に起動していた場合は一旦アプリを強制終了してから起動)

「iTunesファイル共有」の公式情報は以下のApple社の情報となります。
https://support.apple.com/ja-jp/HT201301

取得対象のイメージはこのキャプチャの通りです。全てのデータをバックアップしてください。

これでも回復できない場合、取得した ROADSTOCK.realm をお送りいただければ原因を解明できる可能性があります。送付にあたっては、アプリ設定内の「開発者へデータベースを送信」をご利用いただけますが、起動できない場合は上記手順でデータベースファイルを取得する必要があります。いずれにせよ、一旦Contactからお問い合わせください。

データが初期化されてしまった

発生原因や経緯は不明ですが、そのような事例が報告されたことがあります。そのケースでは、iOS標準の「ファイル」アプリの「ブラウズ」タブ内にある「最近削除した項目」に何故かデータベースファイル(ROADSTOCK.realm)があった(つまり何故か削除されていた)ため、それを用いて上記手段で復元することで回復できました。

iCloudへのバックアップに失敗する

バックアップを指示したものの「iCloudへのバックアップ中に問題が発生しました。バックアップは完了していません。」または「iCloudへの接続で問題が発生しました。お使いのiPhoneがiCloudにログイン済みかをご確認下さい。」というメッセージが出た場合、以下の可能性があります。

  • 「設定」アプリの一番上にある自分のApple IDタップ→iCloud→「iCloudを使用しているAPP」セクション内にある「すべてを表示」→ROADSTOCK がオンになっていない
  • ネットワークに接続していない(機内モードになっている等)
  • iCloudストレージの空き容量がない
  • iCloudにログインしていない

上記どれでもない場合、残念ながら理由はわかりません。時間を置いてやり直してください。

時間を置いても失敗する場合、申し訳ないのですが解決策がわかりません。iPhone自体をiTunes等でバックアップすれば、ROADSTOCKのデータも同時にバックアップされますので、そちらをご利用ください。

原因調査にお付き合いいただけるのであれば Contact からご連絡ください。ただし、解決できることをお約束することはできません。

突然起動できなくなってしまった

大抵の場合はアプリのバグまたはデータベースの何らかの不整合なのですが、これまでにデータベースの中身が壊れてしまったケースが3件見つかっています。この場合、大変申し訳ないのですが、完全な回復手段はありません。また、発生原因はわかっていません。

Ver 1.5.16 以降は、起動時に自動的にデータベースのバックアップを取るようにしています。これを使えば、少なくとも起動直後の状態までは戻れます(その後に追加したデータはなくなってしまいます)。

バックアップしたデータは、iOS標準の「ファイル」アプリで見つけることができます。

  • ファイルアプリを開く
  • 画面下部「ブラウズ」タブを開く
  • 「このiPhone内」をタップ
  • フォルダ「ROADSTOCK」を開く

ここにある「ROADSTOCK_ab.realm」がバックアップファイルです。このファイルがない場合、古いバージョンをお使いか、何らかの理由で失敗しており、これ以下の復活手段は使えません。

これを使うためには、壊れてしまったオリジナルのデータベースファイル「ROADSTOCK.realm」と入れ替えます。例えば以下のような手順になります。

  • ROADSTOCK.realmを長押しし、出てきたメニューから「名称変更」を選び、適当な名前(例えば「ROADSTOCK_damaged」)に変える
  • ROADSTOCK_ab.realmを長押しし、出てきたメニューから「名称変更」を選び、「ROADSTOCK」に変える

これでデータベースファイルは入れ替わりましたので、アプリを再起動し、動作すれば成功です。

データが増えたら起動が遅くなった

上記の方法で「ファイル」アプリからROADSTOCK.realmとROADSTOCK_ab.realmのファイルサイズを比較してください。明らかにROADSTOCK.realmの方が大きい場合、上記と同様にデータベースファイルを入れ替えると、起動が早くなる場合があります。

ロギング中にアプリが落ち、ログ取得が停止する

ROADSTOCKでのログ取得中にアプリが落ちてしまうことがあります。せっかくのツーリング記録を残すことができず、大変申し訳ありません。

開発者自身が何度も体験しており、なんとかして根絶したいと改善を続けています。Ver 2.0.x時点での対応状況は以下の通りです。

原因(仮説) 【Ver 2.0.4での対処】

本アプリはモーションセンサーを利用してログの保存要否を判断しています。モーションセンサーは、現在の動作が【徒歩】【ランニング】【自転車】【自動車/バイク/列車】【その他】のような判定結果を返します。ROADSTOCKは【徒歩】【ランニング】【自転車】の場合はログを保存しないようにしていました。

しかし、いつからそうなっていたかは不明確ですが、バイクに乗っているにもかかわらずモーションセンサーが【自転車】を返す事態が稀に発生していることがわかりました。これが原因でログ取得漏れ(飛んでしまう)が発生してしまいます。この現象は、4気筒のツアラーバイクであるBMW K1100RSでは発生せず、単気筒のスクーターVespa LX125ieでのみ発生しているので、車体やエンジンの構成による振動の相違が原因となっている可能性があります。

この現象は過去には発生していなかったので、iOS側の何らかの変更、または当方所有デバイスの何らかの変化(故障含む)等が関係していると思われます。

いずれにせよ【自転車】を除外していてはログ取得漏れが発生してしまうため、ログ取得対象のモーションを見直し【自転車】であってもログを取得するように変更しました。同時に、幾つかの厳し目に設定していたログ取得・除外判定基準を少し緩めに変更しました。

この修正により、少なくとも当方所有のVespa LX125ieでのログ取得漏れは発生しなくなったため、この状態で一旦Ver 2.0.4としてリリースしました。

原因(仮説)

以下はVer 2.0.3以前の古い記述で、外れている可能性が高いですが、一旦書いたので当面残します。

原因は不明確ですが、主に以下3つのいずれかと想定しています。

  1. アプリの不具合で落ちている
  2. iPhoneが何らかの理由で高負荷状態(いわゆる「もっさり」した状態)になっていたり、GPS処理や通信に関するiOS側の応答速度低下等により、どちらかというとiOS側の都合に引っ張られて落ちている
  3. 高温や直射日光にさらされてiPhone自体の温度が上がり、処理速度が低下し、上記と同じ現象が発生している

1.のアプリの不具合に関しては、開発者が入手可能なクラッシュログから原因を解析して都度対処していますが、ROADSTOCK Ver 1.5.xの後半あたりからは、ログ取得中の処理に関するクラッシュログはほぼ得られなくなっています。クラッシュログさえ生成できない落ち方をしているのかもしれませんが、いずれにせよ情報がなく、対処する術がない状況です。得られた場合は対応します。

2.は、GPS情報に何らかの変化があった場合、即ち移動中にこれらが重なった場合に、アプリのクラッシュを引き起こすような問題が起こる可能性があります。理由は、GPS情報の変化がない限り、ROADSTOCKは何もしないからです。

Webサービスに道路名を問い合わせる処理や、停止時の住所情報を取得する処理も、アプリのクラッシュを引き起こす可能性はありますが、これらもGPS情報の変化がきっかけなので、それがない限りはこのようなクラッシュも発生しません。

逆に言えば、大渋滞でピクリとも動かない状態や、小休止中に非常に負荷がかかる処理をしても、おそらく影響はありません。

この手の問題の場合、アプリ側に何らかの情報が返される前に落ちてしまう可能性があり、何故落ちたのかわからないクラッシュログが提供されるのではないかと想定しています。これに該当すると考えられるクラッシュログはたまに提供されますが、手がかりが無さすぎて原因がわかりません。Ver 2.0.x以降でロギング中に落ちているケースは、これが多いのではないかと想定しています。これに対しては、アプリ側でできる対策がほとんど無いのが現状です。

3. は、原因は異なりますが、発生している事象は2.と同じと想定します。

他アプリとの併用は原因になりうるか

クルマにしろバイクにしろ、移動中(運転中)に、意図的に何らかの重い処理をすることは無いと思われますので、GPS利用アプリを併用することが問題を引き起こしている可能性はあります。ただ、後述のようにナビアプリを併用した程度では当方の環境では問題は出ていないため、可能性は低いと考えています。

ナビアプリが何らかの理由で非常に高負荷になり、iOS自体が不安定になった場合はその限りではありませんが、それはナビに限らずどのアプリでも同じことです。

対策(気休め)

特に性能が低いiPhoneの場合は、ログ取得前にiPhoneを再起動しておくと、気休めにはなります。実際に効果があるかはわかりません。

参考情報

開発者自身は、2019年の岐阜ツーリング中に落ちたケースを最後に、ロギング中にアプリが落ちる現象は体験していません。その理由が、使い方に拠るかは判断できかねますが、参考までに近年の利用スタイルを提示しておきます。

  • バイクツーリング時:iPhone13 Pro MaxでROADSTOCKを利用し、別のiPhone6sをGoogle Mapナビで利用。iPhone6sはSimが無いため通信できず、iPhone13のテザリングで利用。iPhone13はジャケットのポケットにあり、常時給電はしておらず、バッテリー容量が著しく減った場合にモバイルバッテリーで補充。
  • クルマでのドライブ時:iPhone13 Pro MaxでROADSTOCKとGoogle Mapナビを併用。さらにSpotifyやTuneIn Radio等で音楽再生も利用。常時給電。

このように、特にクルマでのドライブ時はそれなりに負荷をかけて利用していますが、落ちる事態にはなっていません。

ロギング中にROADSTOCKを使う(アプリを表示する)ことはほぼ無く、給油時に情報を登録する程度です。一応、アプリが落ちていないかを確認するためにアプリを開いてみることはあります。

走行経路としては、関東・東海を中心に、信州・東北・北海道でのツーリングやドライブ等に加え、東海道/東北新幹線乗車時や首都圏の鉄道各線でのテストも実施しています。したがって、僻地のため携帯電話の電波が無いケースや、長大トンネルでGPSが遮断されるケースはそれなりに実地検証していますが、世の中に存在するすべてのケースをカバーできているわけではありませんし、それは無理な話です。

お問い合わせ

本アプリケーションに関するお問合せ等はContactからお願いします。