update.ある案件でWebRTCを使うことになりましたが、ググって情報を集めるのに難航しました。整理も兼ねて、iOSにおけるWebRTCの利用方法をまとめてみました。※この記事はiOS側での実装について記載しており、インフラの構成、サーバーサイドの実装については言及していません。Communication(RTC)を実現するための技術です。Googleを始め、Mozilla、Operaなどがサポートしています。Chromeチームが運営しているようです。Operaが開発しているので、各社ブラウザはもちろんのこと、AndroidやiOSもサポートしています。ChromeFirefoxOperaAndroidiOSビデオ通話や音声通話をするには?公式で提供されているサンプルがあります。これらすべてブラウザ上で動作するサンプルです。iOS実装したISBX/apprtc-iosがあります。IDを入れると、その人とのビデオチャットがスタートします。CocoapodやCarthageで気軽に入れられるようにしてくださっている方々がいます。ISBX/apprtc-ios先程紹介したAppRTCのiOS実装です。AppRTCをそのまま利用したい場合は、podでのインストールも可能です。Connectionの初期化、ビデオチャットの追加方法もコードサンプルとともにまとめられています。libjingle_peerconnection先程のISBX/apprtc-iosのサンプルでもこのフレームワークを使用しています。WebRTC本家に含まれているiOSのビルドスクリプトを独自に修正し、生成したバイナリをフレームワークとしてCocoapodsで配布してくださっています。Anakros/WebRTCこちらはCocoaPodsでも、Carthageでもインストール可能です。libjingle_peerconnectionとおおよそ一緒なのですが、一部含まれているヘッダファイルが異なります。webrtc/build/ios/build_ios_libs.shを使ってビルドしています。x86-64アーキテクチャに未対応なので、シミュレーターでのビルドは不可です。同じWebRTCのバイナリから生成されているものなので、どれを選んでも基本的には問題ないと思います。僕はCarthageでインストールできるArakros/WebRTCを選びました。次にやろうと思っていることiOS向けにまとめられた記事が少なく、調査が難航しましたが、WebRTCに立ち向かわなくてはならない人に参考になれば幸いです。Objective-Cで書かれているし、他のライブラリを活用する場合でも、モデルやラッパーは自身でつくることになるので、次回は開発で得た知見をSwiftのライブラリにしたためたいところです。iOSは:appear.inでの実装例です。libjingle_peerconnectionを用いています。