Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BiDiってなんだ?
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Tomoki Yamashita
January 23, 2026
Technology
740
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
120
STORES_決済端末2ってAndroidなんでしょ__ほんとうかな__.pdf
tomorrowkey
0
59
モバイルとRubyとわたし
tomorrowkey
0
65
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
1.6k
Ebisu mobile #11 - Predictive Backに対応する
tomorrowkey
1
150
AI協同時代にモバイルエンジニアが備えるべき開発環境の話
tomorrowkey
2
440
5分で完全理解するNav3との向き合い方
tomorrowkey
0
260
テストを楽に書きたい
tomorrowkey
2
430
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
1.4k
Other Decks in Technology
See All in Technology
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.6k
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
390
攻撃者視点で考えるDetection Engineering
cryptopeg
3
2.1k
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
130
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
250
複数のSONiCディストリビューションを触りながら比較してみた
sonic
0
110
アジャイルな経理と Claude Code と経営の未来
kawaguti
PRO
3
180
気軽に使える"情報のハブ"としてのNotion活用 〜フロー情報の集積点 と、 Claude Code × Notion AI〜
syucream
1
180
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
560
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
230
SONiCの統計情報を取得したい
sonic
0
290
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
140
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
6k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
170
RailsConf 2023
tenderlove
30
1.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Embracing the Ebb and Flow
colly
88
5.1k
It's Worth the Effort
3n
188
29k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
150
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
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