Toya-Onodera / WebBrowserMotionDataCollector

ブラウザで取得できるセンサ値を Firebase に格納するアプリケーション。ETロボコンで使います。
1 stars 0 forks source link

センサデータを収集できる状態にしたい #11

Closed ok-tomo closed 2 years ago

ok-tomo commented 2 years ago

なぜこの Design Doc を書くのか / Why

ETロボコンにおいてセンサデータを活用して自己位置推定を行いたい。本来SPIKE PRIMEの実機でデータを取得したいが、手元にないためスマートフォンのセンサデータをブラウザ上で取得することで代替とする。 センサデータをFirebaseに保存したり、UIに表示させるために必要なもの。

目指す場所 / Goals

目指さない場所 / Non-goals

実装の概要 / Overview

想定される問題 / Drawback, Risk

他の手段 / Alternative approach

「Generic Sensor API」 Accelerometer()ではSafari(ios)未対応など、対応が十全ではないため使用しない。 https://caniuse.com/?search=Accelerometer

参考 URL / References

9

https://dev.to/trekhleb/gyro-web-accessing-the-device-orientation-in-javascript-2492 https://developer.mozilla.org/ja/docs/Web/API/DeviceMotionEvent https://developer.mozilla.org/ja/docs/Web/API/Window/deviceorientation_event

ok-tomo commented 2 years ago

@Toya-Onodera すみません、かなり遅くなってしまいました。 確認よろしくお願いします。:bow:

Toya-Onodera commented 2 years ago

@ok-tomo 見ました!! 気になるところをざっくり書いていきます。

他の手段 / Alternative approach

ここは「なぜその手段にしなかったのか」を記載することがチーム開発では重要になってきます。 内容としてはその手段で実装を行う場合に困ってしまうポイントを記載すると伝わりやすいです。

(例1) #dummy をホバーした際に、ツールチップを表示するタスク(jQuery を使用して実装を行う提案の場合)

【01】 Vanilla JS を使用して実装を行う 実装コストが jQuery に対し、多くなってしまう点が挙げられる。この機能は id 要素だけでなく、class 要素に適応する動作を実装する必要がある。jQuery では hover(over, out) を使用して実装できる点に対し、Vanilla JS では document.querySelectorAll などで要素を取得したあとに addEventListener をループで適用してあげる必要がある。これは難読化 + 実装コストの増加につながると感じ、却下した。

みたいなことを記載しておくと、あとで参画してきた人にも親切でいいと思いました。

あとは問題なさそうなので、適当に修正したら実装に進んでもらって大丈夫です! 時間あればペアプロも歓迎です 👀

Toya-Onodera commented 2 years ago

ちなみに今回の検討部分(Generic Sensor API)だとブラウザの対応状況的なものが検討材料になってくると思う。