測定が実際に行われる場所を考えてみてください。電波が1本しか立たないスーパーマーケットの青果コーナー、地下の機械室、ガレージ、アパートの2つの扉に挟まれた階段室などです。もし測定アプリにサーバーが必要なら、まさに必要とされるその場所で機能しなくなります。そのため、最初のアーキテクチャ上の決定であり、最も譲れない決定でもあったのは、すべての取り込み、すべての分析、そしてすべての保存された結果がネットワークオフで動作するということです。制限のあるオフラインモードではなく、これが主要なモードです。そこから機能を制限するようなオンラインモード自体が存在しません。
オンデバイス化が実際にもたらすもの
測定方法を変えるスピード
スマートフォン上での分析は、1秒未満で結果を返します。このレイテンシ目標は単なる見栄えのためではなく、ワークフロー自体を変えるものです。メロンを叩いて測定値を確認し、別の場所をもう一度叩いて比較する。数分でホイールの32本のスポークをすべて弾く。測定のたびにサーバーとの往復が必要な場合、1回だけ測定してうまくいくことを祈るしかありません。しかし瞬時に完了するなら、5回測定して確信を得ることができます。測定器具とは、試行錯誤を繰り返すためのものです。
ポリシーではなく、アーキテクチャによるプライバシー
自宅で録音されたマイクの音声は、まさに送信されるべきではない種類のデータです。このアプリでは送信されません。生の音声はデバイス上で処理され、抽出された特徴量がデバイス上に保存されます。サインインして明示的に同期を押さない限り、スマートフォンから外に出ることはありません。また、アプリはサインインしなくても完全に利用可能です。プライバシーポリシーは、企業がユーザーのデータをどのように扱うかを約束するものですが、オフラインアーキテクチャはそもそもそうした約束のほとんどを不要にします。
製品の方向性に逆らわないコスト構造
クラウドでの推論は、測定のたびにベンダーにコストがかかることを意味し、それは最終的にサブスクリプション、制限、あるいは広告につながります。デバイス上での推論は、使用ごとのコストがゼロであるため、測定回数を制限するような圧力はありません。インセンティブの方向性の一致は目立ちませんが、本質的なものです。限界費用がゼロのアプリであれば、ユーザーに好きなだけ測定してもらうことができます。
カタログはスマートフォンに保存され、クラウドは単なるコピーです
測定したものはすべて、ローカルのカタログ(オブジェクト、ユースケース、測定値、ラベル)に整理され、常にローカルのデータベースが信頼できる唯一の情報源(Source of Truth)となります。Googleでサインインすることで追加される機能は1つだけです。それは、クラウドのコピーを取得し、あなたのデータを送信する、手動で意図的な同期です。これにより、2台目のデバイスやウェブビューアで同じカタログを表示できるようになります。手動であることは制限ではなく、機能です。同期は、予期しないバックグラウンド処理として実行されるのではなく、あなたが要求したときに、把握しやすい一方向のペアとして実行されます。
ウェブビューアに関する補足:ブラウザベースのエクスポートビューアも同じルールに従います。エクスポートされたバンドルを開くと、すべてブラウザ内で解析されます。ローカルファイルを読み込むだけで、サーバーにアップロードされることは一切ありません。
誠実さを保つための制約
オフラインファーストには、目立たないものの大きな利点があります。それは、安易なエンジニアリングを許さないことです。不十分な機能セットを、生の音声データに対して巨大なクラウドモデルを適用することでごまかすことはできません。すべてがスマートフォンのCPU上で1秒以内に動作する必要があるため、分析はコンパクトで解釈可能であり、物理的な根拠に基づいたものにならざるを得ません。ブラックボックス化された埋め込みではなく、共振周波数と減衰比を使用し、絶対レベルではなく同一受信機比を使用する、といった具合です。これらの特徴量こそが、デバイスごとのキャリブレーションなしでスマートフォンの機種間を移行できるものであり、制約と品質が同じ方向を向くことになります。(この設計ルールについては、ツールの概要および2台のスマートフォンによる測定に関する記事で詳しく説明しています。)
オフラインファーストが意味しないこと
It doesn't mean anti-cloud. Sync exists because a catalog you built over months deserves a backup and a second screen. And it doesn't mean models never improve: classifiers are trained centrally on measurements users chose to contribute with ground-truth labels — the dataset flywheel — and shipped back into the app to run, as always, on the device. The network is for moving knowledge, on your schedule. The measuring happens in your hand.