
Apple is hiring engineers to bring WebRTC to Safari - cpncrunch
https://jobs.apple.com/search?job=43451266#&openJobId=43451266
======
pedalpete
From what I've been told, they are looking to hire 1 engineer. I guess that is
better than nothing, but it doesn't look like webrtc is going to be any sort
of priority for them. Also, it may not be super valuable in Safari, which has
a small market-share. Where it is needed is mobile safari. From what I
understand having it in Safari does not mean it gets built into mobile Safari.

Also, note the date of the posting. 4 months ago and still there...

~~~
greggman
iOS Safari has a large marketshare. WebRTC is more than video conferencing.
It's also peer to peer networking which is a huge win for certain kinds of
apps

~~~
esailija
I would be surprised to see any web standard that makes iOS Safari better for
"appy web apps" (web apps that are more like native apps rather than documents
and forms) implemented, as that eventually just makes Safari an alternative
AppStore without reviews.

Of course I would love it because as a developer this is the dream but I am
very skeptical that Apple will do it.

~~~
coldtea
> _I would be surprised to see any web standard that makes iOS Safari better
> for "appy web apps" (web apps that are more like native apps rather than
> documents and forms) implemented, as that eventually just makes Safari an
> alternative AppStore without reviews._

This conspiracy thinking has been played again and again.

Few users cares for logging into some website from mobile Safari just to get a
subpar experience over a native app (or a hybrid app), and that's not because
Safari presents any kind of worse web experience than the desktop.

In fact Safari has often been the best mobile browser, but it still doesn't
compete with the AppStore that much, as the most important things -- more than
half a billion of credit cards on store, easy monetization, in-app purchases
and full access to native APIs are missing from the web-app story.

~~~
esailija
> In fact Safari has often been the best mobile browser

There are no other browsers on iOS. When you are using Chrome it is using
UIWebView (in other words, it is _forced_ to be a crippled Safari due to anti-
competitive policy). Although recent Chrome will be using WKWebView which
means at least it's same as Safari. The UI around the browser is not the
browser.

> Few users cares for logging into some website from mobile Safari just to get
> a subpar experience over a native app (or a hybrid app),

Few users could tell any difference between native app and web app running in
a browser that has modern appy capabilities, provided there is same quality of
implementation. The only thing that can make the experience subpar is
precisely the lack of capabilities.

~~~
coldtea
> _In fact Safari has often been the best mobile browser_

I know. I meant across platforms. It's obviously the best on in iOS.

> _Few users could tell any difference between native app and web app running
> in a browser that has modern appy capabilities, provided there is same
> quality of implementation. The only thing that can make the experience
> subpar is precisely the lack of capabilities._

For one, a web app adds the extra burden of a JS VM and DOM over native code.
This rules out all kinds of graphic and CPU intensive apps. Actually, for any
app that's not just a glorified content screen / database view, there's not
even a comparison between a web and a native implementation.

Even for basically text-based content consumptions apps, like Flipboard, they
had to jump through all kinds of hoops to get smooth 60 fps scrolling within a
web view.

And of course there's the battery life, that's a real killer with web apps.

A future based on web apps for mobile is a regression over even 2005's state
of the art in the desktop. And it's an experience similar to cross-platform
apps -- that is, a "lowest common denominator" across mobile platforms.

------
Hydraulix989
I'm currently integrating the WebRTC interface into a browser-like project by
directly calling into their C++ code (when Java is the preferred interface).
Most of the process so far has been trial-and-error (especially with hooking
up their JNI calls back to Android from C++ land in order to access Android
audio device info and state that can't be reached from C++). The code base is
quite large and so gaining familiarity with it has been challenging.

I can see how a single engineer's time is necessary for this project, as I've
already sunk over a week of work into my own integration, and I've only gotten
the peering to work so far (audio is just about there).

Supposedly many years ago, there used to be an example inside the code base of
what I am currently trying to pull off, but nevermore.

It is quite challenging to just integrate WebRTC -- one does not simply
integrate WebRTC.

~~~
pjmlp
> especially with hooking up their JNI calls back to Android from C++ land in
> order to access Android audio device info and state that can't be reached
> from C++

Good luck with that part.

<rant mode="on">

I have been using C++ for hobby coding between Android and WP, and the
"friendliness" of the NDK has made be look for solutions that can target Java
and .NET instead.

Some of those APIs that one needs JNI wrappers, are actually written in C++,
just not exposed to the NDK.

</rant>

~~~
Hydraulix989
Currently working through that now, the issue du jour is that the class loader
apparently does not find classes in the APK unless it is called from
JNI_OnLoad from the application thread so I am going to have to cache
references to the three or so WebRTC Java audio classes that it needs.

[http://developer.android.com/training/articles/perf-
jni.html...](http://developer.android.com/training/articles/perf-
jni.html#faq_FindClass)

Because I'm sure everybody on here cares haha.

------
shmerl
At last. Where have they been all this time, under a rock? Does it mean
they'll start supporting Opus as well?

~~~
muddi900
Apple need to move Safari to the App Store. A Browser only being updated with
the OS in 2016 is ridiculous.

~~~
ksec
When you get 80%+ of your OS updated within 6 months this isn't so much of a
problem.

~~~
SiVal
It's interesting to note the unprecedented success Apple has achieved at
keeping millions of its users at the very leading edge of Apple OS
technologies along with its "difficulties" keeping up with new Web
technologies.

And it's amazing how rapidly they are able to invent a whole new programming
language, compiler, toolchain, overhaul the OS APIs, add new OS features, and
innovate Apple-only "native" technologies on Macs, iPhones, iPads, and even
watches, while porting some features from open-source browsers into Safari is
so darned "challenging". (I'll bet Apple could get some help from
organizations with more resources like, say, Mozilla or Opera, if they just
asked.)

I might suspect that they were intentionally impeding the progress of the Web,
sabotaging all of us while putting on a great show, if it weren't for the fact
that they allow other browsers, such as Chrome, on the iPhone. No, if they
wanted to slow the progress of the Web platform, they would slow the
development of their own browser as much as they dared and simultaneously cut
off all detours around it except the one that goes through their own native
apps.

But no, they aren't doing anything like that, because there's Chrome right
there in the App Store. As long as it's not some sort of trick, some sort of
imposter, there's no reason for suspicion....

~~~
Hydraulix989
I don't think you realize this, but Chrome on the App Store is actually just a
shell with the Chrome UI around the embedded Safari browser, rather than the
actual Chrome browser, due to Apple restrictions.

Stated more plainly: [http://www.howtogeek.com/184283/why-third-party-
browsers-wil...](http://www.howtogeek.com/184283/why-third-party-browsers-
will-always-be-inferior-to-safari-on-iphone-and-ipad/)

I must say this fact makes reading your last sentence quite humorous.

~~~
SiVal
Thank you. ;-)

------
bemmu
Is there documentation on how the WebRTC protocol works (RFC style)? All I've
come across is interface docs. What is actually moving on the wire?

~~~
fulafel
Yep: [http://tools.ietf.org/wg/rtcweb/](http://tools.ietf.org/wg/rtcweb/)

edit: also [https://github.com/rtcweb-wg/](https://github.com/rtcweb-wg/)

------
helly
Can't they just use the code from Chromium?

~~~
lmedinas
Sure but somebody needs to port it and maintain it.

------
kabes
It says the job was already posted on 19 october 2015 ?

~~~
cpncrunch
Yes, but nobody really picked it up then (apart from one person who tweeted
about it back in October).

------
cpncrunch
There also seems to be good progress in the implementation of WebRTC in
WebKit:

[https://bugs.webkit.org/show_bug.cgi?id=143211](https://bugs.webkit.org/show_bug.cgi?id=143211)

------
ilostmykeys
How about the security issue with WebRTC where the browser leaks the IP
address? It's part of the way WebRTC works so I can't see how that can be
fixed. It's both a security issue and a key enabling feature.

Update:

It looks like Google Chrome (desktop) team has published a plugin that
alleviates the problem but can cause performance degradations with apps that
use WebRTC. They seem to suggest that a decent fix won't be possible until UDP
proxies are in wide use and Chrome adds support for that.

~~~
nemothekid
I don't have a full understanding of WebRTC, but AFAIK its a browser-to-
browser connection library. How would that work _without_ leaking the ip
address? The browser at least has to know who to connect to?

~~~
richdougherty
I don't really know anything about this topic, but the parent comment leads me
to believe that you would use a UDP proxy to hide your address. Instead of
sending out your address, you'd send out the proxy's address. When the proxy
receives data, it would pass it to you. That way the other party doesn't know
your address; they only know the proxy address. This is just a guess based on
how I assume proxies would work, so I may be wrong.

~~~
HappyTypist
Who is going to pay for the proxy's bandwidth? Apple, Google, Mozilla? Good
luck.

The site owner? Well, the site owner now has your IP!

~~~
boyaka
People are typically okay with site owners having their IP, because site
owners tend to not be malicious. You _could_ only connect with people that you
completely trust, but with many applications the users might be complete
strangers or merely internet acquaintances. Given the power, there would be
malicious users taking advantage of it. This was a big deal with Skype because
people weren't aware that adding a contact could reveal their IP to that
person, and/or were not aware that revealing their IP could lead to DDOS
attacks or other forms of abuse/stalking.

~~~
k__
If you want this behavior, you have to use WebSockets.

WebRTC is peer-2-peer.

------
greggarious
The WebRTC spec (as it currently stands) exposes your local IP address. So I
hope Apple thinks about the privacy implications of that.

(Right now Tor Browser keeps it click to activate, IIRC)

~~~
JoeAltmaier
Why is this a thing? Your local ip address can be easily guessed. Also,
secrecy is not security. I think 'exposing addresses' is a red herring, in
such a small address space.

~~~
tracker1
You mean most people leave their routers at default, and have an IP of
192.168.(0|1).1xx? Shocking... shocking I say.

I have to agree... the local IP address really shouldn't be considered a
secret, it's also needed for LAN negotiation attempts between localized peers.

~~~
JoeAltmaier
I think that's exactly why WebRTC "exposes" it. For p2p negotiation.

------
arnaudbud
Posted (again) on RTC.news: [http://www.rtc.news/posts/os4JyZWT6iLR2jMua/job-
apple-is-sti...](http://www.rtc.news/posts/os4JyZWT6iLR2jMua/job-apple-is-
still-hiring-engineers-to-bring-webrtc-to)

------
jheriko
webrtc is horrible to build and integrate with a native project, even without
the quirks of ios or os x to deal with. i feel sorry for whoever gets the job.

~~~
cpncrunch
I had a look at the code a while ago, with the idea of using the AEC
functions. However I quickly realised that it would be practically impossible
to do that, and it would probably be a lot easier just writing it myself (even
though that would be a hell of a job).

------
alien3d
Waiting for INTL also.Do it work now in latest version safari?
[https://developer.mozilla.org/en/docs/Web/JavaScript/Referen...](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Intl).

~~~
masklinn
> Do it work now in latest version safari?

The page you've linked says no...

------
antitamper
I've only ever associated WebRTC with its ability to expose the real IP
address when surfing with a VPN. I am unsure if this bug is unique to Firefox,
and I hope the bug doesn't show up in Safari.

~~~
kuschku
it’s not a bug in the direct meaning, but a bug in the specifications.

~~~
slac
That behavior has been changed in Chrome quite significantly.

[https://groups.google.com/forum/#!topic/discuss-
webrtc/_5hL0...](https://groups.google.com/forum/#!topic/discuss-
webrtc/_5hL0HeBeEA/discussion)

------
rocky1138
Sorry to sound harsh, but why is this news?

Chrome has had this forever.

------
notatoad
Maybe in five or six years we'll get serviceworker too.

~~~
threeseed
I hope not.

Service workers seems like an incredibly dangerous feature to have in a web
browser. If developers need geofencing notifications or assets caching for
example then implement a tightly focused API. But to allow any developer
(including rogue ones) to slow the browser and computer down will be a
nightmare for inexperienced and experienced users alike.

------
gbachik
Apple should just ship with chrome.

ggwp

~~~
kalleboo
It would kill their battery life numbers

------
nappy
My brother launched a website about a month ago built around WebRTC. The idea
is to facilitate meaningful one-on-one videochats between people who share
similar interests in life or at the moment.

[https://www.chatben.co/](https://www.chatben.co/)

