A few years ago, No Jitter asked me to write a snapshot status of WebRTC availability. It turned out to be an ongoing series, with the last one dated July 2015. Since then things hadn't changed much, until both Microsoft and Apple made some serious moves in 2016.
So here we are again, figuring out together where exactly WebRTC is available.
Let's start with a quick availability map that I have created as part of my WebRTC Device Cheat Sheet (the one below reflects last week's news that Apple has adopted WebRTC):
Let's go over this list browser by browser.
Google Chrome
Chrome is still leading the pack. Some complain that Google isn't adhering to the specification, but then again... what specification? We're still in draft mode. Everyone's working hard to close it, but that hasn't happened yet.
To that end, Google last month made an announcement stating where it is heading with WebRTC -- and that's to be standards conformant.
I'd like to put that in perspective: When you have more than a billion deployed browsers, every line of code you change can hurt (and often does, as we see with the WebRTC-related complaints around every Chrome release). This means that changing a whole API and behavior layer in WebRTC isn't an easy feat to achieve. This will take time.
Mozilla Firefox
Mozilla has been at this game with Firefox almost as long as Google has with Chrome. And it shows. Things just work (most of the time).
One thing to note here is the quality content in Mozilla's Advancing WebRTC blog.
Microsoft Edge
Microsoft Edge supports WebRTC 1.0. Whatever 1.0 is. And it supports ORTC. But mostly ORTC... and WebRTC only after that.
I am still confused here, and I'm probably not the only one.
For the most part, Microsoft is trying to maintain behavior-parity with Chrome. Edge's market share is low, making this decision a smart one -- companies are starting to show Edge support in their products, probably because the investment isn't high.
Apple Safari
Apple just joined the party, announcing support for WebRTC in iOS 11 and Safari 11.
This isn't full support -- data channels are probably out for now, and the video codec is H.264. No VP8. This probably won't change.
For a more detailed analysis of WebRTC iOS 11 support, read my BlogGeek.me post here.
All in all, we now have coverage of WebRTC in all modern browsers.
Microsoft Internet Explorer
This is where things get tough.
Yes. We have Microsoft Edge to use, but that's available only in Windows 10. And there, people seem just as happy to switch to Chrome for some reason.
Having WebRTC in IE would be a nice addition, but will not happen. We can use plugins here, or standalone PC applications (more on that later).
Closed Apps
Where WebRTC isn't available or when the need arises, you can always use WebRTC in closed applications.
For iOS and Android, you can achieve this by taking the WebRTC source code and writing your own native application on top of it, or by making use of the operating system's WebView (this is yet to be seen on iOS, but is available on Android).
On the desktop, the most common way to go is by using Electron, an open source application container built around Chromium. This lets you take your Web application and make it a PC application that can work across Windows, Mac, and Linux. And it doesn't even care if you are using IE or any other browser.
Where Do We Go From Here?
No one can say that WebRTC isn't here to stay anymore.
If you haven't checked what WebRTC means to you and how you should tackle this topic in your own products and services, then you should probably start now.