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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tomoki Yamashita
January 23, 2026
Technology
780
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
75
モバイルとRubyとわたし
tomorrowkey
0
77
文字列操作の達人になる ~ 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
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
180
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
540
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
20k
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
290
CI/CDではもう遅い - 人とAIが迂回しないDevSecOps Verify基盤の再設計 -
kintotechdev
0
110
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
170
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
26
17k
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
7
3.6k
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
11
6.6k
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
200
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
110
人間はどの意思決定を手放せるのか
kawasima
15
8.1k
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
710
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
The SEO Collaboration Effect
kristinabergwall1
1
570
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
380
Building an army of robots
kneath
307
46k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Practical Orchestrator
shlominoach
192
12k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
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