Upgrade to Pro — share decks privately, control downloads, hide ads and more …

お部屋探しアプリ「Canary」に Twilio API を使って アプリ内通話機能を実装した...

お部屋探しアプリ「Canary」に Twilio API を使って アプリ内通話機能を実装した話 / MagicPodでE2Eテストを実装した話

React Native Matsuri 2022 に登壇した際のスライドです。

BluAge Developers

October 08, 2022
Tweet

Other Decks in Programming

Transcript

  1. 自己紹介 • 中野 辰典 (Tatsunori Nakano) • 札幌在住 • 2021年12月

    株式会社BluAge 入社 • ソフトウェアエンジニア • 最近ゴルフをはじめました
  2. 実現できそうなサービス • AdSiP • CallTracker • Twilio • Vonage Twilio

    に決定 選定理由: コスト面が断トツによかった
  3. Twilio 詳細 • 電話・SMS・ビデオ通信・チャットなどのさま ざまなコミュニケーションチャネルを APIとし て提供する CPaaS • Twilioのコード(≒API)を組み合わせてシス

    テムに組み込むことで、最小限のコードで開 発可能 • iOS, Android, Web それぞれ対応 • 初期費用なし • 従量課金制
  4. TwiML とは リクエスト先の URLを指定 • TwiML ( Twilio Markup Language

    ) は電話(またはSMS)を受信したときに何をすべきかを Twilio に指示するために使用 できる命令のセットです。 • Twilio によって定義された特別なタグを含むXMLドキュメントです。 • 誰かが Twilio 番号の 1 つに電話をかけると、Twilio はその電話番号に関連付けられた URL にリクエストします。そして返 されたTwiML 命令を読み取り、指定の番号に発信、録音、メッセージを再生、などを判断します。 ※レスポンス例 XMLで命令が返される
  5. アプリ側で必要な実装 ユーザー 電話問い合わせ ※BluAge側で購入した電話番号に発信される • 発信する • 電話を切る • ミュートにする

    • スピーカーに切り替える • 「プルル・・」という発信音を出す • 「お繋ぎします」というアナウンスを出す • 相手が通話中の場合にアナウンスを流す etc…
  6. ユーザー 仲介会社 Canary サーバー builder.params で仲介会社情報を渡す params が渡される 発信用のTwiMLが返される 仲介会社に発信

    ※BluAge側で購入した電話番号から発信される A不動産だな 番号は03-xxxx-yyyyだ A不動産に電話しよ 発信の流れ
  7. React NativeにおけるE2Eテストの選択肢と選定理由 • React Native公式ドキュメント ◦ Detox ◦ Appium https://reactnative.dev/docs/testing-overview#end-to-end-tests

    • メンテコストを抑えたい • 今後エンジニア以外でも触れるようにしたい → ノーコード    コストの比較 → MagicPod に決定 • ノーコード ◦ Autify ◦ MagicPod