After years of speculation, Apple has officially announced support for WebRTC! Like many prognosticators and consultants in the video communications space, I feel personally redeemed that things are becoming official. Just this week I was talking with a potential client and predicting that Apple would start to support WebRTC video communications in Safari and/or iOS later this year.
I was hardly alone in this prediction, and by posting jobs for WebRTC engineers and attending the standards committee meetings in the last year, Apple has sent plenty of signals that this was coming. In true Apple fashion though, no one knew exactly when and so this was still a pleasant bit of news yesterday.
I would make the claim that Apple did this in celebration of my wedding anniversary yesterday, but Chad Hart of Voxbone and WebRTCHacks already claimed it was in celebration of his birthday the same day, so we’ll have to agree to disagree on this one.
More seriously though, what does this mean for WebRTC application development? First, let’s recap what has been announced, what we don’t know yet, and then imagine how this will change WebRTC application development in the coming years. There are also some things this won’t change, and we’ll address that too.
What was announced
Details are sparse at this point, but Apple has announced support for WebRTC in Safari 11. When Microsoft announced WebRTC support for the Edge browser, it came out in phases. First was access to the camera and microphone, and a little later came support for Peer-to-Peer calls.
As noted by TheNewDialtone, the Safari 11 page specifically says that Safari 11 “implements peer to peer conferencing with the WebRTC standard.” Therefore, we should expect to see a strong release by Apple with lots of capabilities right out of the gate. That’s great.
What we don’t know yet
How much of WebRTC will be supported in iOS11 is not totally clear to me at this point. Safari on the desktop is an important browser, and even just support there would be a great step forward for WebRTC compatibility. No more plugins on the desktop, and you don’t have to send your users towards Chrome or Firefox alone! With the addition of both Edge and Safari desktop browsers to Chrome and Firefox, WebRTC is now opened up to a lot more users and a lot less complaints.
If Apple is also going to support WebRTC in the iOS11 version of Safari that would be even better – this would finally put iPhones and iPads on par with Android devices, where it is possible to use the Android version of the Chrome browser already to do WebRTC calls without a native app.
Details on which codecs will be supported, hardware acceleration, and ORTC support are all still open questions as Amir Zmora notes in his NewDialTone blog post. But no matter how you slice it, this is great news for the WebRTC community.
How will this change WebRTC development?
Assuming there is full browser support for WebRTC in Safari desktop and mobile, this is a game changer.
When we first started in WebRTC development several years ago, Chrome and Firefox were not fully compatible with each other. They were implementing early versions of the WebRTC spec at their own pace and in their own style, and sometimes the method names conflicted, and things like the DataChannel might not be compatible with each other. Both teams were working hard and collaboratively, that’s just how it goes in the early stages of a new technology.
For the last couple of years we have been working with full compatibility between Chrome and Firefox, but still regular questions from customers on “when will there be support from Microsoft and Apple?” It was a valid question, and one we’ve all dealt with by forcing users into the Chrome and Firefox browsers, which have an excellent combined market share of browser users anyways, especially among early adopters of WebRTC apps.
On the mobile side, things have been more complicated. We have often told our clients that if they want a Chrome browser version of their site on Android, we can make that work with WebRTC. But for iOS devices, a native app was the only solution and they needed to pay more for a Swift or Objective C developer to get it done. This situation has slightly improved with the advent of React Native, where at least there’s better chance of building native apps on Android and iOS that support WebRTC, and is closer to a “code once deploy twice” strategy.
Now, with WebRTC support coming to the iOS Safari browser, this means that we will also be able to offer a responsive website that can do WebRTC calls on desktop browsers as well as both Android and iOS browsers.
What won’t change
In the short term, none of this is commercially available, and so this announcement changes nothing. The changes in Safari 11 will come out in September or October 2017, and ideally the iOS browser support will arrive then too although that’s not clear to me.
So you will have to wait at least 3-4 months to see the fruits of Apple’s labors. If you use a CPaaS provider for your WebRTC app (for instance Tokbox, Vidyo, etc), then you might have to wait a little longer while they update their API’s to incorporate anything necessary to work with Safari.
You may still be 6 months away from being able to use this in production, when you also factor in any time needed to make code changes on your site. Don’t forget you’ll also have to test all the site’s functionality in Safari now, and so even outside of the WebRTC support, you may have been able to ignore all sorts of HTML/CSS glitches before because you didn’t care about Safari users. Now you have to care.
If you’ve already built a native iOS app using WebRTC, don’t throw it away. You’re at least 6 months ahead of your competition.
Even if you’re just starting to consider a WebRTC application for the first time, these announcements don’t mean you should rule out some sort of native iOS application.
Being able to do WebRTC in the mobile Safari browser is great, but just like on Android, we usually recommend this only as a stop-gap solution to our customers. The best user experience is likely to still be in a native application, and so the extra time and effort to build a native mobile app on both iOS and Android is still worth it.
One other thing this announcement doesn’t change: There still is not and never will be support for WebRTC on Internet Explorer. Companies that enforce usage of Microsoft browsers will still have to get their users to upgrade to the Microsoft Edge browser. That should be obvious since this post is all about an Apple announcement, not a Microsoft announcement, but it’s worth being extra clear that plugins are still the only way to enable video chat on IE. Also, please get rid of IE in your organization – it’s time. 🙂
WebRTC is on a roll
When we first started working on WebRTC video apps several years ago, people were still questioning if WebRTC had any staying power. Without support initially from Microsoft and Apple, would it last? Or would it die off as a side project of Google?
With Apple’s official support for WebRTC in Safari 11, we can definitively say that WebRTC is here to stay. I’m sure that it will continue to evolve, taking on parts of the ORTC concepts, new video codecs, and many other changes in the future. But now that everyone’s on board, WebRTC is here to stay, and you can expect it to become even more prevalent on desktop and mobile.
Welcome aboard, Apple! And thank you.