PR TIMESデザイナー&エンジニアブログ BREAK TIMES

PR TIMES Developer Blog(デザイナー&エンジニアによる開発者ブログ)

PR TIMES Developer Blog
デザイナー&エンジニアによる開発者ブログ

簡単にビデオ通話アプリをつくれるSkyWayのご紹介☆*:.。. [WebRTC]

PR TIMES エンジニアのうさみです。
先日、開発していたアプリをお披露目した時のことです。

社内スタッフの声:
「このアプリにビデオ通話機能があるといいですね」
「・・・というより、無いと不便で困ります」

私:
「・・・(あと1日でビデオ通話機能の追加!?)」

元々の仕様としては、SlackのAPIを叩いて指定したSlackのチャンネルへ通知するというシンプルな機能だけだったのですが、急遽ビデオ通話機能を追加することになったのでした。こういうシチュエーション、よくありますよね・・・

ビデオ通話機能をもったアプリ開発の経験は無く、時間もありませんでした。また、社内でのみ利用するアプリでしたので、開発コストを掛けずに確実に動作させるために何かいい方法は無いかと調べている中で、NTTコミュニケーションズ様の「SkyWay」というサービスを知りました。

nttcom.github.io

以下のサイトには、NTTコミュニケーションズ様が「SkyWay」を開発された経緯や今後の展開について記載されています。(2015年8月時点)

IP電話の次に起こるパラダイムシフト "WebRTC"への挑戦
http://www.ntt.co.jp/journal/1508/files/jn201508036.pdf

国内製で且つ大手企業さまによるサービス提供、また、公式のサンプルや日本語のドキュメントもあるため、取り入れやすそうだと直感し、利用してみることにしました。何より無料で利用できるとのいうのはうれしいです (* ´ - ` *)

WebRTCを利用するのは初めてでしたので、そもそも「WebRTC」とは何かというところから・・・

WebRTC (Web Real-Time Communication)とはWorld Wide Web Consortium (W3C)が提唱するリアルタイムコミュニケーション用のAPIの定義で、プラグイン無しでウェブブラウザ間のボイスチャットビデオチャット、ファイル共有ができる。

引用元:WebRTC - Wikipedia


下記サイトではWebRTCについてまとめていらっしゃいます。

・WebRTC とはなんだったのか ← WebRTCの基本的なことはコチラ
https://gist.github.com/voluntas/67e5a26915751226fdcf

・WebRTC トラノマキ ← WebRTCの今後についてはコチラ
https://gist.github.com/voluntas/59a135343538c290e515

つまり、チャット機能やファイル共有機能、そしてビデオ通話機能を実装するために必要となるもの(面倒なところ)を提供してくれるサービスですね。サーバーを用意してバックエンド側を実装する必要がないので、クライアント側のアプリ開発に注力することができるのはいいですね。


どういうものか把握できましたので、いざ実装を・・・といきたいところですが、今回はご紹介までにさせていただき、実装方法については割愛させていただきます。

下記の公式のサイトとサンプルを見ていただくと実装にあたり丁寧に説明されていますのでご確認ください。

・SkyWay iOS/Android SDK ← SkyWayを利用するにあたっての事前準備についてはコチラ
https://nttcom.github.io/skyway/info-mobile.html

・SkyWay iOS SDK DOCS ← SkyWayを利用して開発している際に参考にするページはコチラ
https://nttcom.github.io/skyway/docs/#iOS

・SkyWay iOSサンプルアプリ ← チャット機能やビデオ通話機能を搭載したアプリのサンプルはコチラ
https://github.com/nttcom/SkyWay-iOS-Sample

公式のサイトの他に下記サイトも参考にさせていただきました。

qiita.com


実際に実装してみたところ、あっという間にビデオ通話アプリをつくることができました。1時間・・・いえ、30分もかからなかったでしょうか・・・まさに開発コストをかけずに実現することができました! ただ、実機での検証には十分に時間を費やす必要がありますね ( ´ - ` )

以上の参考にさせていただいたサイトやサンプルでは、端末を識別するのに利用するIDが動的なのですが、今回つくりたかったアプリは固定IDにする必要がありました。

次回は、固定IDによる実装方法をご紹介できればと思います☆*:.。.