エンジニア達の「完全に理解した」Talk #73

807 Views

January 27, 26

スライド概要

profile-image

フリーランスプログラマです。 Angular, CHIRIMEN Open Hardware, MDN Web Doc 推しの人です。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Web Serial を完全に理解した エンジニア達の「完全に理解した」Talk #73

2.

自己紹介 akihiko.KIgure a.k.a グレさん 渋谷とグンマー帝国の 2 拠点でフロントエンド開発をしています。 AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性があり ます。

3.

個人的推しOSS ※アルファベット順 Angular CHIRIMEN Open Hardware Firebase

4.

個人的推しOSS ※アルファベット順 Google Cloud MDN Web Docs Nx Rust

5.

今日テーマ Web Serial RxJS

6.

今日お話する事 ● シリアル通信とは ● Web Serial とは ● npm パッケージの紹介 ● デモ ● おまけ

7.

Q:シリアル通信知っていますか? 1️⃣:知らない 2️⃣:知っている

8.

シリアル通信とは(ざっくり) ・1bitずつ順番にデータを送る ・RX / TX ・マイコン・センサーの世界では「当たり前」 AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性があり ます。

9.

シリアルケーブル・コネクタ

10.

シリアル通信イメージ

12.

ブラウザから直接シリアル通信ができる!

13.

何が凄いの?

14.

Web 技術だけで、物理世界と 直接つながるのが一番凄い!!!

15.

AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性があり ます。

16.

注意:Chrome, Edge, Opera の PC 版のみ使えます AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性があり ます。

17.

何故 Chrome, Edge, Opera の PC 版のみなのか?

18.

Mozilla の立場(Firefox) Mozilla は Web Serial API を有害(Harmful)であると分類しています。 文献: Mozilla Specification Positions - Web Serial API AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性 があり ます。 主な理由: ・認証の弱い ・一般ユーザーがシリアル接続を許可する危険を理解出来ない

19.

Apple / WebKit の立場(Safari) Apple も WebKit エンジンにおいて、Web Serial を含むいくつかの ハードウェアアクセス API の実装を拒否しています。 文献: WebKit Standards Positions - Web Serial API ※1 Tracking Prevention in WebKit ※2 主な理由: ・フィンガープリントの悪用されるリスク ・ウェブのサンドボックスの原則を壊す AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能 AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能 性があり ます。 性があり ます。 ※1 ※2

20.

Chromium プロジェクト(Chrome, Edge, Opera)の立場 一方で、Google を中心とする Chromium プロジェクトは 利便性を優先しています。 文献: Web Serial API - Chrome Platform Status AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能 性があり ます。 主な理由: ・教育・業務用途の価値が大きい ・セキュリティについては、ユーザー操作・HTTPS 必須で、制御

21.

ウェブのあり方に対する哲学の違い ブラウザ Chromium系 哲学 ウェブを「アプリ実行プラットフォーム」 にしたい Mozilla / Apple ウェブを「安全でプライベートな閲覧環境」 に保ちたい Web Serial への見解 肯定的。 十分なガードレール(許可ダイアログ等)が あれば、強力な機能を提供すべき。 否定的。 ユーザーがリスクを理解できない強力な権限や 追跡に繋がる情報の露出は避けるべき。

22.

W3C Community Group Draft Report AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性があり ます。

23.

Web Serail の JavaScript 実装イメージ 接続実装イメージ 送信・受信実装イメージ AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性があり ます。

24.

でも・・・生 API は辛い

25.

そこで作った OSS ※npm パッケージ

26.

@gurezo/web-serial-rxjs Web Serial を RxJS でラップしたライブラリ AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性があり ます。

27.

AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性があり ます。

28.

npm パッケージの話の前に

29.

What is RxJS AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能 性があり ます。

30.

何度も届くデータを安全に分かり易く扱うための仕組み

31.

たとえ話 Promise → 宅配便(1 回だけ届く) RxJS → ラジオ放送・川の流れ(ずっと流れてくる)

32.

なぜ Web Serial と相性がいいの?

33.

シリアル通信は: ・デバイスからデータが 何度も ・いつ来るか分からず ・途中で止める必要がある これは Promise より RxJS の得意分野

34.

RxJS を使うと何が嬉しい? ・無限ループを書かなくていい ・停止するときは「やめる」と言うだけ ・エラーや切断も自然に扱える ・データ加工が読みやすくなる

35.

JavaScript の Promise と RxJS の比較 観点 Promise RxJS(Observable) 扱える値 1 回だけの結果 時間とともに流れる値 データの性質 単発 ストリーム(連続) 複数データ 不向き 得意 開始タイミング 即時実行 subscribe したとき 停止方法 基本できない unsubscribe で停止可能 無限データ while / 再帰が必要 自然に扱える エラー処理 catch error イベントとして扱える リソース解放 手動で書く必要あり unsubscribe に集約できる 変換・加工 then を繋ぐ map / filter / buffer など豊富 UI との相性 普通 非常に良い テスト モックしにくい Observable を簡単に差し替え可能 シリアル通信との相性 悪い 非常に良い

36.

RxJS のまとめ Promise →「結果を 1 回受け取るための仕組み」 RxJS →「いつ来るか分からないデータの流れを扱うための仕組み」 Web Serial API は後者なので、RxJS でラップするのが自然

37.

という訳で、デモをします!

38.

ハード接続例 Chrome Type B to C Raspberry Pi Zero と 拡張ボード(任意) パソコン

40.

デモ動画のダウンロードリンク AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性があり ます。

41.

下記フレームワークのサンプルがあります。 AI ,テ 生 メ ア グ ー プ ラ キ 成 ル フ リ ス コ ケ ィ ト ン カ ー ル テ シ ン ユ ョ ン ツ ー は ザー 誤イ り を ン 含 タ ー む フ 可 ェ イ 能ス 性があり ます。 ・Angular ・Vanilla JavaScript ・Vanilla TypeScript ・React ・Svelte ・Vue

42.

何故 npm パッケージを公開したか?

43.

Web Serial API そのままだと使い難い

44.

OSS にコントリビュートして 人様のお役に立ちたい!!!

45.

これ言ってみたかった

46.

おまけ:ハード紹介

47.

Raspberry Pi Zero 2 WH AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可 能性があり ます。 スイッチサイエンス AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可 AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可 KSY 秋月電子通商 能性があり ます。 能性があり ます。

48.

GeeekPi Raspberry Pi Zero 2 W/Zero/Zero W用 Raspberry Pi USBドングル拡張ボードキット QR コ ード 自動的に生成さ れた説明

49.

UGREEN OTGケーブル Type-C 変換アダプタ タイプC USB 変換 USB3.0メス 高速転送 Android スマートフォン タブレット MacBook Pro USBホストケーブル Type-C端末とType-A機器接続 17CM QR コ ード 自動的に生成さ れた説明

50.

ハードの紹介の gist AI QR 生 コ ー 成 ド コ ンテンツは誤り を含む可能性があり ます。

51.

まとめ Web Serial できるよ にんげんだもの ぐれを

52.

ご静聴ありがとうございました!