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
Tomoki Yamashita
January 23, 2026
Technology
820
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
160
STORES_決済端末2ってAndroidなんでしょ__ほんとうかな__.pdf
tomorrowkey
0
83
モバイルとRubyとわたし
tomorrowkey
0
89
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
2.1k
Ebisu mobile #11 - Predictive Backに対応する
tomorrowkey
1
180
AI協同時代にモバイルエンジニアが備えるべき開発環境の話
tomorrowkey
2
460
5分で完全理解するNav3との向き合い方
tomorrowkey
0
330
テストを楽に書きたい
tomorrowkey
2
460
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
1.5k
Other Decks in Technology
See All in Technology
reInvent2026stby LT00 "Change your life!"
shinichirokawano
1
570
AIエージェント統制はAPIから——押さえるべき5つの要素
nagix
0
120
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
180
OneLakeをデータソースにした AI Search(Foundry IQ)の ライフサイクル管理
ryuseiiida
0
220
試験勉強はGrokBotでやれ
maigo999
0
110
Flutter Webを「SDK」として配る — 50以上のゲームを支える埋め込みアーキテクチャ
masayukisuda
0
180
Deep Data Security 機能解説
oracle4engineer
PRO
3
1k
1週間、Opus封印でお願いします
kintotechdev
1
460
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
220
Oracle Database Security 詳細解説
oracle4engineer
PRO
1
250
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
1
210
今から始めるAWS環境の暗号移行 - ポスト量子時代に備える
sato4mi
0
150
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
The browser strikes back
jonoalderson
0
1.9k
Believing is Seeing
oripsolob
1
270
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
470
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
520
Between Models and Reality
mayunak
4
550
A Tale of Four Properties
chriscoyier
163
24k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
970
Six Lessons from altMBA
skipperchong
29
4.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
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