WWDC17 で iOS/macOS の Safari 11 に WebRTC が搭載されることになりました。これで何が変わっていくのかをだらだら書いてみます。
雑感
- 対応ブラウザが増えてめんどくさくなる
- Safari 対応を色々頑張らなくて良くなる
- iOS ネイティブアプリを開発しなくても良くなるかもしれない
技術的には対応ブラウザが増えることで、確認作業が増えるのは面倒です。今まで Chrome と Firefox だけだったのが、 Edge と Safari といきなり 2 倍です。確認コストは 2 倍以上です。
Safari 特に iOS の Safari や Chrome で WebRTC が利用できないことで、コスト高めの iOS ネイティブアプリを開発せざるを得ない場合がありました。もともとネイティブアプリであれば気にならないのですがウェブサービスのおまけとして提供される場合は iOS 非対応をはネックでした。
それが解決されるのはとても大きいです。実際問題ウェブを利用する人の殆どが最近はスマートフォンからです。iOS だけが WebRTC 関連のサービスが利用できませんでしたが、Safari 11 が出たことでその問題も解決されます。
開発コストも下がると考えて良いでしょう。ネイティブアプリの開発はやりたいひとがやればいいだけ、という選択肢を取れるようになります。
懸念点
- ビデオコーデックが H.264 のみの対応
- libwebrtc の追従スピード
- 独自路線の不安
現時点 VP8/VP9 は無効化されています。そのため Chrome/Firefox/Edge と双方向の通信を実現するためには H.264 + Opus という組み合わせが必須になります。
確かに H.264 の HWA (ハードウェアアクセラレータ) に対応している端末が多いため、嬉しいことは嬉しいのですが、効率を考えると VP9 がはやってほしいと思っているので、ちょっと H.264 時代が来そうだなとは思っており、悲しい感じです。
Safari の WebRTC は webrtc.org が公開している libwebrtc ベースです。2017 年 6 月現在の最新 stable branch は M59 ですが、採用されている libwebrtc branch は M56 です。この差は少し気になります。ただ Firefox はもっと古いのを利用しているので気にしなくてもいいかもしれません。
Apple が独自路線に行くのが一番心配です。たとえば H.265 を WebRTC に間違って載せてきたり、間違って。実際 WWDC17 では H.265 のアピールがありました。ただまぁ WebRTC にそんなコストをかけるとはあまり思えません。発表でも背景にこそっと書かれていたレベルですし。
ただ何をしてくるかわからないのも事実です。突然 VP8/VP9 を無効にしてくるのもある意味独自路線ですし。
まとめ
2017 年秋には Safari 11 が出ることで WebRTC に対応していない主要ブラウザがなくなります。改善は今後も続けられるでしょうが、流行らない言い訳ができなくなりました。
双方向リアルタイム技術が沢山の場所で使われる機会が多くなると考えて良いと思います。
Safari 11 が WebRTC に対応した機に、双方向リアルタイム技術に手を出してみませんか?
追記
WebKit のブログに WebRTC の記事が来ていました。また Safari Tecnology Preview 32 で WebRTC の対応が入ったようです。
Sierra で気軽に試せるので試してみるといいかもしれません。ただ注意点として Legacy WebRTC API は develop タブの Experimental で削除しておきましょう。