Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
BiDiってなんだ?
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Tomoki Yamashita
January 23, 2026
Technology
790
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BiDiってなんだ?
Tomoki Yamashita
January 23, 2026
More Decks by Tomoki Yamashita
See All by Tomoki Yamashita
ハードウェア連携が必要なプロダクトにおける自動テストの書き方
tomorrowkey
0
150
STORES_決済端末2ってAndroidなんでしょ__ほんとうかな__.pdf
tomorrowkey
0
76
モバイルとRubyとわたし
tomorrowkey
0
83
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
1.9k
Ebisu mobile #11 - Predictive Backに対応する
tomorrowkey
1
170
AI協同時代にモバイルエンジニアが備えるべき開発環境の話
tomorrowkey
2
460
5分で完全理解するNav3との向き合い方
tomorrowkey
0
310
テストを楽に書きたい
tomorrowkey
2
450
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
1.5k
Other Decks in Technology
See All in Technology
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
270
猫でもわかるKiro Web
kentapapa
1
160
ボードゲームの遊び相手をFoundation Modelsで作る / iOSDC Japan 2026
genda
0
240
3人で1000GPU超を統合運用する?マルチクラウド&オンプレを跨ぐ、構築と運用のリアル!
kazukun0716
2
780
形式手法を使って仕様をコーディングしよう
mikanichinose
0
150
[Kiro Meetup #7] Kiro Crew Dive Deep
konippi
0
430
GitHub Agentic Workflows を触ってみる
htkym
2
890
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
550
手を動かして実感する、Kiro が変える開発体験
inariku
0
420
Claude Designがめちゃくちゃ便利なので使ってほしい
diggymo
0
170
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
18
13k
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
400
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Docker and Python
trallard
47
4.2k
The Curious Case for Waylosing
cassininazir
1
550
Practical Orchestrator
shlominoach
192
12k
For a Future-Friendly Web
brad_frost
183
10k
A better future with KSS
kneath
240
18k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
510
Building Adaptive Systems
keathley
44
3.2k
Transcript
BiDiってなんだ? 2026.01.23 potatotips #94 @tomorrowkey
自己紹介 @tomorrowkey <Tomoki Yamashita> Android Engineer, STORES, Inc. ❤️ Kotlin,
Ruby, Java, Swift, TypeScript/JavaScript … Android 16年生 決済1年生 2 / 14
背景 STORESはいまテストに力を入れています。 どんなテストツールを使っているかはプロダクトによって効果的なものを採用し ています。 Espresso, XCUITest, Swift Testing, Appium, Maestro
決済ではAppiumを使用してAndroid, iOS共通のE2Eテストを構築しています。 3 / 14
ある日のライブラリ更新のPR 4 / 14
Appiumとはなにか iOS -> xcuitest-driver Android -> uiautomator2-driver, espresso-driver WebDriver互換APIでアプリを操作できるツール 5
/ 14
WebDriverとはなにか ブラウザを操作するためのW3Cで標準化された仕様 ブラウザごとにDriverの実装がある Chrome -> ChromeDriver Firefox -> geckodriver Safari
-> Safari 6 / 14
つまりAppiumとはなにか デバイス (Android/iOS) Appium Driver (UiAutomator2, XCUITest 等) Appium Server
(Node.js) Appium Client (Ruby, Python) テストコード デバイス (Android/iOS) Appium Driver (UiAutomator2, XCUITest 等) Appium Server (Node.js) Appium Client (Ruby, Python) テストコード ホストマシンで実⾏ HTTP 通信 (JSON Wire Protocol) ここがW3C 共通規格 ( どの⾔語でも同じ) サーバー内部の処理 どのDriver への 命令か判断して渡す デバイス操作 element.click() 1 POST /session/:id/element/:id/click 2 コマンドを転送 (Proxy) 3 OS ネイティブ命令へ翻訳 4 タップ操作を実⾏ 5 実⾏完了 6 結果を返却 7 HTTP 200 OK (Response) 8 処理完了 (return) 9 ブラウザ向けに策定されたWebDriverを使ってアプリも操作しちゃおう 7 / 14
BiDi(バイダイ)とはなにか WebDriverはリアクティブなイベントのキャプチャなどの双方向通信ができない 弱点があった WebDriver BiDiはそれを解決する リアルタイム通信ができる https://speakerdeck.com/yotahada3/webdriver-bidi-burikaigi2025 https://speakerdeck.com/yotahada3/burikaigi2026 詳しくはこちらのスライドが非常に勉強になります。 発音はバイダイだよ
https://x.com/jecfish/status/1656581421912424448 8 / 14
BiDiにはどういった仕様があるか https://www.w3.org/TR/webdriver-bidi/#command-network-addIntercept 9 / 14
Appiumでもこれができるようになるか? かなり難しい(のではないか) 10 / 14
WebDriver BiDi Protocol on Appium でできること log.entryAdded ログをキャプチャする appium:xxxx.contextUpdate ネイティブ/WebViewのコンテキストの変更の通知をうけとる
11 / 14
ログを取得してみた https://github.com/appium/ruby_lib_core/blob/32b1335923758359b2740d0cb 7ffb2ba2b9a9264/test/functional/android/webdriver/bidi_test.rb 12 / 14
まとめ 「かなり難しい」と書いたものの、BiDiもっと使えるようになると柔軟なテスト を定義できておもしろそう。 13 / 14
参考資料 https://speakerdeck.com/yotahada3/webdriver-bidi-burikaigi2025 https://speakerdeck.com/yotahada3/burikaigi2026 https://github.com/appium/appium-uiautomator2- driver/blob/0ab3b65b3742bbd81540f01831895b933e20d0ed/docs/bidi.md https://appium.github.io/appium-xcuitest-driver/latest/reference/bidi/ 14 / 14