メインコンテンツへスキップ

マスターに向けた拡張項目

このページは、GPS-MEMOをマスター版に向けてより魅力ある内容へ育てるための拡張候補を整理するものです。本日の段階でプロトタイプとしては合格ラインを超え、思ったようなエリアに到着すると通知する体験は達成できました。プロトタイプでは、意図したエリアへの到着通知を確認できました。ここでは、リリースやマスター化に向けて検討すべきA-Iの項目を、現在の理解に基づいて一覧化します。リリースやマスター化に向けて検討するA-Jを一覧化します。詳細な実装順と検証条件の正本は、リポジトリの作業計画書で管理します。

ステータス機能名機能説明実装難易度
候補A: バックグラウンド未起動でも通知スマホアプリがバックグラウンド起動していなかったとしても通知したい。現状の到着通知プロトタイプを、アプリ非起動時にも成立する形へ拡張する。スマホアプリが前面や通常のバックグラウンドにいない場合も、iOSが許す範囲で到着通知を成立させる。 候補B: 消費電力削減スマホ側の消費電力をもっと抑えたい。位置監視、判定頻度、通知条件のON/OFFを整理し、実用時の電池負荷を下げる。常用時の電池負荷を下げる。 候補C: 通知エリア設定値の洗練入った、通知のエリア設定値をもっと洗練させる。通知半径、到着判定、実際に思い出したい距離感を調整し、「入った」、通知、要求精度などの設定値を実測で洗練し、誤通知や遅すぎる通知を減らす。中 候補D: UI見直しUIが致命的に使いにくいので見直す。メモ追加、最新通知、メモ一覧、診断ログ、到着テストなどの配置を、通常利用者が迷わない構成にする。診断機能などを、通常利用者が迷わない構成へ見直す。 候補仕様整理済みE: 重なり合った複数の入ったエリア対応重なり合った複数エリア対応(徒歩版)重なり合った複数の通知エリアに対応する。複数の通知条件を同時に満たした場合、通知は該当メモのうち一番登録が新しいものを表示する。一方で履歴には条件を満たしたメモをすべて記録する。将来の拡張として、優先度、中心距離、半径をタイブレークに入れられる余地を残す。複数メモの「入った」エリアが重なっても確認状態を独立して維持し、それぞれの通知エリアへ到達した順に履歴記録・通知する。通知エリアは安全マージン込みで重ならないよう作成・編集を制限する。低-中中-高 候補F: 近くのメモ検索何かしらの操作をすると、現在地から設定した距離の範囲のメモを検索し、利用者の操作で、現在地から設定距離内のメモを検索し、リスト表示する。例えば秋葉原に行った時に、近くのメモ検索で数キロ範囲のメモを見つけ、店の前まで行かなくても未処理の用事を思い出せるようにする。 候補G: 履歴のフォルダ化現在はすべての履歴が一律でリスト表示されているが、これをフォルダ階層やグループ単位で表示できるようにする。UIは別途検討しつつ、内部的には特定グループで履歴を絞り込める仕組みを用意する。履歴をフォルダ階層やグループ単位で表示・絞り込みできるようにする。 候補H: メモ情報のインポート現在はメモを手入力しているが、PCなどで作ったデータをデータアセットとして生成し、インポートできるようにする。鎌倉地域の観光スポットデータ集のようなものを作成し、ユーザーはダウンロードしてインポート、削除できる。作成者側にはPCでデータを作成し、ダウンロードできる形式へ変換し、ストアなどへ登録する導線が必要になる。FとGを組み合わせることで、近隣の観光地だけをリスト表示できる。PCなどで作った観光スポット等のデータ集をインポート・削除できるようにし、F/Gと組み合わせる。中-高 候補I: 曜日・時間による通知ON/OFF入った、通知判定を曜日、時間でON/OFFできるようにする。帰宅時に最寄駅へ着いた時、ランチタイムだけ表示したい、といった用途に対応する。OFF判定時はGPS判定のための電池を消費しないようにする。曜日・時間で判定をON/OFFし、OFF時間は不要な測位を止める。中-高 新規候補J: 自動車・進行方向別・超広域モード高速道路の上り・下りなど進行方向に応じて通知を分け、サービスエリアや沿線の名所を高速移動中に案内する。

E: 重なり合った複数エリア対応(徒歩版)

判定

    「入った」エリア同士は重なってよく、大きなAの「入った」エリア内にBの「入った」、通知、安全エリアが存在してよい。 Aを確認中にBへ進入してもAの確認状態を失わない。Bの通知エリアへ先に到達したらBだけを履歴記録・通知し、その後Aへ到達したらAを別に履歴記録・通知する。 iOSのenterイベント順へ依存せず、確認中メモは集合で管理する。位置情報ストリームは1本を共有し、各メモの退出・期限切れ・通知は他の確認状態を終了させない。

    通知半径と自動計算

      通知半径は25-250m。プリセットは短域25m、中域125m、広域250m。 通知スライダーは 通知半径 = 25 + 225 * x^1.1699 とし、中央で125mにする。 準備距離は 25 * (通知半径 / 25)^0.77815、「入った」半径は通知半径と準備距離の合計。短域50m、中域約212m、広域400m。短域50mは実地試験し、取りこぼしが多ければ70mへ見直す。 安全マージンは 10 * (通知半径 / 25)^0.77815。短域10m、中域約35m、広域60m。2件の中心間距離は、双方の「通知半径 + 安全マージン」の合計以上を必須とする。 短域25m同士は中心間70m以上で通知円間20m、広域250m同士は中心間620m以上で通知円間120mを空ける。 要求精度は短域30m、中域60m、広域90mとなる指数曲線で計算する。確認時間は「入った」半径に対して10-30分を1分単位の直線で計算する。 測位頻度は基準歩行速度2.0m/s、通知半径、実測速度から3-30秒で自動計算し、停止・極低速時は30秒とする。線分が通知円を横切った場合も補完判定する。

      画面

        メモ作成・編集地図は、通知エリア、安全マージン、「入った」エリアの三重表示にする。既存メモも表示し、既存分はグレースケールにする。 通常画面で操作するのは通知半径スライダーだけとする。 計算式の最小・最大・指数は、メモを作れないプレビューMAP付き詳細・開発設定画面で調整する。 設定保存時は既存メモの通知半径を変えず、派生値を再計算する。次のアプリビルド時は既存メモを全削除した状態から始める。

        J: 自動車・進行方向別・超広域モード

          徒歩版Eとは別モード・別実装単位とする。 高速道路の上り・下り用メモは、同じ地点でも方向条件と内容が異なる別メモとして扱えるようにする。 通知地点の手前側だけへ伸びる細長い接近エリアを持たせ、正しい方向では測位と方向確認を始めてから通知地点へ到達できるようにする。 逆方向は「速く通過して判定が間に合わなかった」ことへ依存せず、進行方向不一致として明示的に通知対象外にする。 方向判定にはiOSのcourse、courseAccuracy、speed、speedAccuracyを使い、不十分な場合は連続位置から補完する。 iOSのregion監視は円形のため、接近エリア全体を覆う起動用円と、アプリ側の方向付き形状判定を組み合わせる案を第一候補とする。 形状、許容角度、上下線の指定方法、超広域時の半径・測位頻度はJの実装計画で確定する。

          補足として、Eの重なり対応は単に通知を一つに絞るだけなら難易度は高くありません。ただし履歴には該当メモをすべて残す設計にすることで、通知の見やすさと後からの確認しやすさを両立できます。Hのインポート機能が入ると、優先度やグループ、近隣検索との組み合わせが特に活きます。H/I/Jなどの属性は、将来iOSのregion上限内で監視対象を内部選択する材料にできる。ただし、利用者が直接指定する優先度UIや計算規則は現段階では確定・実装しない。