TextGoダウンロード

2026年6月15日月曜日

見えない問題を可視化し、見えにくい配達先を見える化しました


見えないが見えるに


経由地点アニメーションを強化したらメモリが限界だった

「乗車の予定表」の情報を取得できるフローモード機能を使った時に、地図に表示する経由地点の順序を分かりやすくすることを目的に、線をアニメーションするようにしました。
ところが、そのアニメーション負荷が高いためか、メモリ不足によるクラッシュが多発してしまいました。幸い、ベータ版の段階で発見できたので、大半の方には影響はありませんでした(ご協力いただいた方ありがとうございました。)。
その調査中に、メモリの残り状態をコンパニオンパネルに表示する機能を実装しましたが、今後のことも考えてそのままにしておくことにします。

そのメモリ残量は、設定のコンパニオンパネルウィンドウで、メモリ残量をオンにすることで表示できます。

オレンジ色の縦長バーはメモリ残量を示します。少なくなると使われなくなったメモリが解放されて、縦長バーが伸びる様子を観察できます。基本的に、その動きを繰り返すのが正常です。
縦長バーが最後までなくなってクラッシュした場合、メモリが不足したのかもしれません。

リクエスト受諾前に全体像を一瞬で把握。「リクエスト地図」追加

以前、「呼び出し時P/D地図」と呼んでいたものと同じ役割の機能を、また実装しました。
リクエストが入った瞬間に、ピック先やドロップ先をコンパニオンの地図で確認できます。公式配達員アプリで普通に見ることができるのですが、実質、上半分程度の大きさなので、パッと見て分かりにくいことがあります。
コンパニオンの「リクエスト地図」は、現在地、ピック先、ドロップ先の範囲全体をフルスクリーンで初期表示できます。

さらにBluetoothやFCMで別の端末に転送することもでき、それであれば公式配達員アプリの操作を妨げません。

設定に追加した「リクエスト地図」ボタンから使うことができます。

・この端末
公式配達員アプリが動いているその端末でリクエスト地図を表示します。
さらに「地図を最大化」チェックボックスをオンにすると、自動で画面いっぱいの地図を表示します。ただし、それでは、地図を閉じないと公式配達員アプリを操作できないのであまりおすすめはしません。
・Bluetoothで他の端末に転送
あらかじめBluetoothにより接続設定されている端末上で、最大化されたリクエスト地図を表示します。
・FCMで他の端末に転送
FCMで、他の端末に送信し、最大化されたリクエスト地図を表示します。送信元端末と送信先端末のコンパニオンが、同じGoogleアカウントで使われている必要があります。

ピック先やドロップ先の位置は、リクエスト時に表示されている情報をもとにジオコーディングした座標や、Historyページで登録された登録済ピック位置の情報を利用しています。公式配達員アプリが内部で保持する情報に基づくものではありませんので、リクエスト地図に表示されるピック先やドロップ先の地点は、不正確になる可能性があります
ジオコーディングの結果、ピック先やドロップ先の位置が特定できないことや、まったく異なることがあります
登録済ピック位置で個別のピック位置を登録しておけば、ピック先に関しては正確になります。
リクエスト地図を表示する端末で現在地が取得できない場合、リクエスト地図自体表示されません。
現在地→ピック先→ドロップ先の順で、直線またはルート探索した線で結びます。ピック先の位置が不明な場合、線で結ばれません。
ルート探索は独自のサーバーで行っていますが、メンテナンスのため停止することがあります。その場合、ルート探索は行われず、直線で結ばれます。


このリクエスト地図はリクエストが入った時に、受諾するか否か判断する助けになります。以前に「呼び出し時P/D地図」を実装していましたが、廃止したものの、やはり自分自身こうした機能が欲しくて改めて作りなおした次第です。

2026年5月19日火曜日

配達中の無駄操作をまとめて削減しました

外部キー操作が効かない場合のバックアップ機能「座標クリックモード」追加。

コンパニオンは、Bluetooth等による外部デバイスの物理キーに、特定の機能を割り当てることができます。
例えば、リクエストがあった時に承諾や拒否を外部デバイスのボタンを押して実行できます。
ただ、それが特定の環境では動作しないことがあるということもあり得るようで、そのため「座標クリックモード」というのを追加しました。通常の方法でうまくいかない場合は、こちらをお試しください。
ただし、これは本当に画面のその場所をクリック(タップ)するのと同じことをします。
画面変更のアニメーション中に取得した情報は座標がずれるかもしれませんし、タップした瞬間にはもう画面から存在しなくなっていて、関係ない部分をタップすることがあるかもしれません。
「座標クリックモード」を使わなくて済むのが一番いいと思いますが、もしも、機能しない場合は、第二の選択肢として「座標クリックモード」をお試しください。

「キー割り当て」に「ハンバーガーメニュー」を追加。

新たにハンバーガーメニューのタップも外部キーに割り当てることができるようにしました。
これは、まさに上記の「座標クリックモード」でないと正常に動作しないケースだと思います(開発者の環境では)。
公式配達員アプリの「乗車の予定表」を簡単に見ることができます。あのハンバーガーメニューボタンはタップしにくいので、地味に便利です。

もう一つずつ開かなくてOK:住所自動展開機能。

その「乗車の予定表」では、ご存じの通りピック/ドロップ先の予定を見ることができます。
しかし、詳細な住所情報は、一つ一つ開いていかなければなりませんので、コンパニオンに搭載されているフローモードによる地図での確認が少し面倒でした。
その一つ一つ開くというタップを自動で行うようにしました。
「フローモード」の「自動で住所を開く」をオンにしておけば、「乗車の予定表」で、各行の住所を自動で開いていってくれます。
※「フローモード」とは、公式配達員アプリの「乗車の予定表」の情報をコンパニオン側に取り込み、一覧表示や地図上へのマーカー表示を行う機能の名称です。

玄関前でゴソゴソしないための新機能

さらに、「乗車の予定表」にドロップ順が分かる機能を追加しました。
ピックに向かっている時に、「乗車の予定表」を開くだけで、そのピック先でピックした商品を次に何番目にドロップするかを音声で教えてくれます。
これによって、ピックした商品を計画的にバッグに収納できまます。ドロップ先の玄関前で、上にあるものを出して、奥から取り出し、出したものをまた入れなおす…みたいな状況を少しだけ軽減できるかもしれません。
実は、以前にも似た機能がありましたが、公式配達員アプリの変更で使えなくなっていました。
すみません。今、発掘中です…

上で紹介した「キー割り当て」からドロップ順の読み上げまでを、一連で活用すれば、あなたの配達効率をますますアップできますよ。

住所ではなく「止まる場所」を案内します。

コンパニオンユーザーの配達記録によるピック/ドロップ時の情報を、ピックやドロップ先の正確な位置情報として活用できるのではないかと考えました。
配達の現場でちょっと迷う場面のひとつとして、ピックやドロップの時、走行しながら、さて、どこに停車するかと考えなければならないことがあります。
マンションの入り口がどこなのか、どちら側の道路なのか、店舗の入り口はどこなのかといった、正確な停車ポイントをピンポイントで知ることができれば、減速開始のタイミングが分かり、無駄な行き過ぎを減らせます。
コンパニオンユーザーの使用データから独自のアルゴリズムでその位置を計算し、音声で残り距離を知らせるようにしました。車両を最適地点にピタっと止められる確率を高めるのが狙いです。
探さない配達がいちばん速い

ナビの目的地を読み上げているのではなく、実際に配達員の稼働データに基づいた最適地点への誘導であることがポイントです。
それであれば、ドロップ先でこそ効果を期待してしまいますが、残念ながらドロップ先のデータは少ないので、データが存在する確率や正確性は低いです。
とはいえ、ピック先であっても、特に商店街等の込み入った状況等、明確に場所を覚えていない店舗であったり、副業稼働で覚えている店舗が少ない人にとっては、役立つ可能性があると思います。
コンパスを表示している場合には、目的地付近に近づくとコンパス上にも、その方向(黄色の矢印)と距離を示すようにしています。

なぜ設定を減らすのか。

前回のブログ記事で、お知らせしましたが、これまでの設定はこれから廃止し、新しい設定画面に移行します。
それにあたり、設定できる項目や機能自体も一部廃止します。廃止することで使えなくなったり、使い方が変わってしまう機能が出てくることになります。

数年前、UberEats黎明期にコンパニオンが誕生したころの配達員は、新しいサービスに興味を持つ、いわば先行的な層が多かった印象がありますが、現在は参加者の層が大きく広がり、配達員の構成も初期とは性質が変わってしまった印象があります。

配る側も、受け取る側も、まだ楽しんでいた頃

そうした中、はじめてコンパニオンを使う人が、設定項目の多さを見ただけで尻込みしてしまったり、どういうことができるのかを知らなかったりするような状況をなるべく少なくし、より使いやすくしたいと考えています。
究極的には、設定やヘルプは、ないのが理想です。そこまで実現するのは難しいものの、できる限り細かい部分はそぎ落としたいと考えています。

コンパニオンのもともとのコンセプトは、分かりにくく、とっつきにくく、無骨。だが、理解するのに時間がかかっても、現場で繰り返し使う上では、最短、最速、軽量、気が利く、といったプロフェッショナルのための実用性に大振りしたものでした。
しかし最近は、既存機能に関する問い合わせや、利用状況が十分に伝わっていないケースも増えており、ユーザー側に判断や操作を委ねるよりも、できるだけ意識せず使える、操作を減らした方向性へ寄せた方がよいのではないかと感じています。
設定しなくても、もう使える

2026年5月5日火曜日

なぜ機能を削るのか ― コンパニオン設定大改修

開発優先からユーザー優先へ

これまでコンパニオンの設定画面はAndroid標準の機能を使って作られていました。
シンプルで、限られたことしかできませんが、新機能の実装や変更に早く対応できることを優先するために、この方法にしていました。
これまでの設定画面

しかし、どこにどういう機能があるのか、そもそもどういう機能が存在しているのか、といったことを知るには、適していない形式でした。
コンパニオンの開発初期はアプリの仕組みや開発経緯をよく理解したユーザーが中心でしたが、利用者層が増え、IT操作や制作意図の前提知識を持たないユーザーも増えてきました。そのため、より直感的で、新しいユーザーにも理解しやすい設定画面に作り直しました。
新しい設定画面

機能削減という決断

設定画面を作り直すにあたって、ほとんど使われていない機能や、すでに機能していない機能、変更されることがないような設定の削減も行うこととしました。
コンパニオンをご使用中の方には、これまで、それらの機能を使われてきた方もおられるかもしれませんが、ユーザー全体の利便性を考えてなくしてしまう決断をしました。
機能を削減することで、リソースの節約になりますし、設定項目が絞り込まれ、迷いにくい構成になります。プログラムコードの複雑さを軽減することで、問題の発生を抑えることもできます。
具体的には、以下機能が削減または変更となります。

①オーバーレイの非表示ができないようになる。
「設定」→「オーバーレイ」→「オーバーレイ」スイッチの廃止。
②オーバーレイの操作表示を廃止する。
「設定」→「オーバーレイ」→「オーバーレイの操作表示」スイッチの廃止。
③コンパニオン独自計算によるコンパスを廃止する。
「設定」→「オーバーレイ」→「コンパス」→「従来のコンパス」スイッチの廃止。
「設定」→「オーバーレイ」→「コンパス」→「コンパス感度」スライダーの廃止。
④情報ウィンドウの文字サイズ変更機能を廃止し、表示設定に一本化する。
「設定」→「ウィンドウ」→「情報ウィンドウ」→「情報ウィンドウの文字サイズ」数値入力の廃止。
⑤情報ウィンドウの時間・距離、見積金額の合計表示を廃止する。
「設定」→「ウィンドウ」→「情報ウィンドウ」→「時間、距離、見積金額の合計表示」スイッチの廃止。
⑥フラットレートの配達単価表示を廃止する。
「設定」→「ウィンドウ」→「呼び出し時単価計算」→「フラットレートの配車単価表示」スイッチの廃止。
⑦地図の使用をオフにできないようにする。
「設定」→「ウィンドウ」→「住所アシスタント」→「地図の使用」スイッチの廃止。
⑧ピックドロップ位置ヒートマップをオフにできないようにする。
「設定」→「ウィンドウ」→「住所アシスタント」→「ピック・ドロップ位置ヒートマップ」スイッチの廃止。
⑨緯度経度ボタンを無効化できないようにする。
「設定」→「ウィンドウ」→「住所アシスタント」→「緯度経度ボタンを無効化」スイッチの廃止。
⑩非表示テキストDBを廃止する。
「設定」→「ウィンドウ」→「住所アシスタント」→「非表示テキストDB」関連設定の廃止。
⑪登録済ピック位置検索をオフにできないようにする。
「設定」→「ナビ」→「登録済ピック位置検索」スイッチの廃止。
「設定」→「ナビ」→「登録済ピック位置自動ナビ切替ボタン表示」スイッチの廃止。
「設定」→「ナビ」→「登録済ピック位置自動ナビ」スイッチの廃止。
⑫音声設定から一部機能を廃止する。
「設定」→「音声」→「再生条件」→「複数店舗ピックの業者名」スイッチの廃止。
「設定」→「音声」→「再生条件」→「ドロップ順序」スイッチの廃止。
「設定」→「音声」→「再生条件」→「複数店舗ピックで次のピックのナビボタンタップ時」スイッチの廃止。
⑬ピック/ドロップ先までの距離読み上げを一般ユーザーでも使用可能にする。
「設定」→「音声」→「再生条件」→「ピック先までの距離」スイッチを一般ユーザーでも使用可能にする。
「設定」→「音声」→「再生条件」→「ドロップ先までの距離」スイッチを一般ユーザーでも使用可能にする。
⑭暗証番号入力の読み上げを他の項目に統合する。
「設定」→「音声」→「再生条件」→「配達用の暗証番号入力」スイッチの廃止。
⑮画面カバーの細かい設定を廃止する。
「設定」→「その他」→「画面カバー」→「画面カバーを閉じる端末の回転角度」を廃止。
「設定」→「その他」→「画面カバー」→「閉じる角度」を廃止。
「設定」→「その他」→「画面カバー」→「開く角度」を廃止。
「設定」→「その他」→「画面カバー」→「呼び出し時画面カバー」をすべて廃止。
⑯テキストスキャナーを廃止する。
「設定」→「その他」→「テキストスキャナー」をすべて廃止。
⑰メディアプロジェクションは画面全体のみにする。
「設定」→「その他」→「メディアプロジェクションは画面全体のみ使用」スイッチの廃止。
⑱マルチスレッドで画面解析する。
「設定」→「システム」→「マルチスレッドで画面解析」スイッチの廃止。

せっかく作った機能を捨てるアプリ開発者

名称変更と旧設定画面の廃止予定

各種名称や呼び方を変更します。
例えば、
「住所アシスタントウィンドウ」→「住所パネル」
「呼び出し」→「リクエスト」
「業者」→「店舗」
といった感じです。使われている部分が多々ありますので、すぐにすべてを変更することはできませんが、見つけるたびに改変していくつもりです。

そして、従来の設定画面は廃止する予定です。
ただし、新しい設定画面が、特定の機種で正常に動作しないといった問題が見つかる等した場合、併用する可能性もあります。
もしも、新しい設定画面が正常に動作しない場合、Playストアを更新したり、コンパニオン以外のすべてのアプリを最新に更新してみてください。

ToDo

有給休暇を管理できるアプリをダウンロード