Apple is hiring engineers to bring WebRTC to Safari
jobs.apple.com
jobs.apple.com
Also, note the date of the posting. 4 months ago and still there...
Of course I would love it because as a developer this is the dream but I am very skeptical that Apple will do it.
Which is pretty much what Apple has been pushing since before there was an appstore? To this day it takes just 2 taps (share > add to home screen) to add a webapp to the phone as a "standard application" (with a homescreen icon and everything)
There's plenty of serious crap[0] in the apple web ecosystem, but it doesn't really seem related to "webapps as appstore replacement"[1][2][3].
[0] http://www.raymondcamden.com/2014/09/25/IndexedDB-on-iOS-8-B...
[1] http://caniuse.com/#search=websql
There's no background sync, proper offline, no notifications, no (usable) indexeddb, no rtc, no file system, no media sinks, no media sessions ... these are from the top of my head.
You have a point that long time ago Apple was the one pushing the browser as application platform but today is not the same as the long gone past.
Edit: The can-i-use about "web audio" is misleading about Safari. The web audio is prefixed there with "webkit" is not the same as the standard API.
Edit2: Noticed it's not about "web audio" at all but html5 audio. That's an API from 2010 that doesn't really do anything for apps such as games or audio editors. The newer Web Audio API is used for this and that's what I am referring to.
So, more or less just like with the desktop web.
What you describe is not web apps, it's some proprietary hybrid mix allowed inside Safari with hooks to the whole OS.
* background sync is not a web standard, it's experimental chrome tech (though it's been submitted to the WICG)
* I can only assume "proper offline" refers to service workers which is a WD with partial support (in the browsers in which it's implemented, which exclude Edge and webkit), webkit has it listed as "under consideration" and the last spec revision landed around the time of the last major safari update (mid-2015)
* notifications is fair, note that desktop Safari supports and that there's almost no mobile support at this point (also not supported yet in Edge)
* indexeddb is fair wrt current standards, but does not support "apple hates webapps" considering safari supports websql
* rtc is fair, and in development
* filesystem is proprietary chrome tech, dropped from standard track
* media sinks is fair, a WD with incomplete support on chrome
* media session is in development everywhere except edge
All in all, as far as conspiracy theories your comments mostly support you being a chrome shill.
I didn't also literally mean that they are currently implemented by all of those browsers today. My point is that I expect them to be implemented browsers other than Safari sooner or later as they have strongly signaled. Safari has not signaled anything about them. Or if they have, provide evidence of it and I will apologize.
> filesystem is proprietary chrome tech, dropped from standard track
That's not the file system API I am even referring to. I am referring to https://w3c.github.io/filesystem-api/ which is edited by Mozilla.
> rtc is fair, and in development
For iOS Safari? WebKit having WebRTC is completely different from iOS safari having it.
Has Android's mobile Chrome browser signalled anything more?
Because for years it has been even MORE behind Mobil Safari regarding speed and capabilities.
(And let's not even get started on the crap-fest that was Android's default browser).
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.
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.
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.
Sounds like somebody might be a product manager at Apple.
"Cui bono" is a necessary (but not sufficient) ingredient of any conspiracy thinking.
>Sounds like somebody might be a product manager at Apple
I rest my case.
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.
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>
http://developer.android.com/training/articles/perf-jni.html...
Because I'm sure everybody on here cares haha.
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....
Stated more plainly: http://www.howtogeek.com/184283/why-third-party-browsers-wil...
I must say this fact makes reading your last sentence quite humorous.
Chrome does not run on the iPhone - instead it's a Safari UIWKView (until two weeks ago UIWebView) - the only "Chrome" there is the UI on top of it.
Apple does not actually allow running Chrome on iOS so Google worked around it by giving you a handicapped version of Safari with Chrome UI that lets you share tabs between the computer and the box.
edit: just saw someone else posted a similar comment - so upvoted his - not deleting this since it has some additional info.
You think they aren't capable of that? Isn't it the same thing they are doing now with not supporting Vulkan and sabotaging open graphics API by pushing their lock-in Metal instead?
Unfortunately it doesn't seem to be open source.
People use things when they have utility. They have utility when developers make something cool that uses them. Developers do this if there's a chance of mainstream adoption...
As it has been said many times - they sell "experience", not merely products. Now, in today's tech market this is up for debate and fairly so, but people (the people who exclusively buy Apple products; in most cases because thsoe are Apple products) do believe they are buying that so called experience and what that experience lacks they explain to themselves as features.
I know that Safari does not support everything say Chrome does, but if you do not need those features, what does it matter? An example: I use Safari without having flash installed. I rarely need flash. If I do need it, I would rather open Chrome and close it when I am done with the flash thing and go back to Safari. Why? Why not use Chrome all the time since it supports (almost) everything Safari does and more? Well, because in my opinion, for what I use a browser for 99% of the time, Safari works better. I think it looks, performs, functions and feels better overall. So I would rather use Safari and switch to Chrome when I need something Safari does not do, or Chrome does better, even though on the paper spec, Chrome is the better browser.
It is the same reason I use an iPhone even though Android "has the same and more features".
People didn't catch on that IE was bad until almost a decade later, by then it had finally gotten not bad. These days I don't even have to think about it because my websites work better in it, more often than not, when I open them in it for the first time.
Safari is the one I have to worry about now. It isn't just features, it's page rendering. Not having WebRTC is something all on its own.
But web technology is extremely complex.
If you fall off spec, and then find yourself needing to support those off spec 'features' it holds everyone back for a long time. How long will it be before Safari users find out how frustrating they can be to web developers?
I'm a developer myself, and did webdevelopment professionally for 7 years until I switched paths 3 years ago. I know all about supporting multiple browsers and what not. But the thing is, Chrome just doesn't feel and look elegant and smooth like Safari does. The same with Firefox. That's why I use Safari 99% of the time.
There's a balance between functionality and design, and chrome seems more skewed towards functionality, and Safari towards design. When this is so, and Safari does all I need better than chrome 99% of the time, I naturally choose safari.
...and yes, Safari should be more standard compliant, I'm not disagreeing with you on those points.
Not supporting standards has nothing to do with design. It's either a deliberate sabotage of interoperaibility for the purpose of lock-in and anti-competitive crookedness (not unlikely for Apple), or simply total neglect. Either way, it results in technology being held back because Safari has enough of a market share to do it. That's why calling it "new IE" (in a derogatory way) is quite appropriate.
I bet this feeling comes from the "smooth scrolling". Development Chrome currently has it, I really cannot imagine why didn't they do it earlier it's so trivial to do for major benefits.
Oh, Apple will be Apple if they'll not enable Opus in audio tags. So classy.
edit: also https://github.com/rtcweb-wg/
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.
https://groups.google.com/forum/#!topic/discuss-webrtc/_5hL0...
This implements the behavior proposed to the IETF https://tools.ietf.org/html/draft-shieh-rtcweb-ip-handling-0...
The site owner? Well, the site owner now has your IP!
WebRTC is peer-2-peer.
Yes, even if the user is behind a VPN, WebRTC will expose their ISP-given public IP. Luckily Firefox allows WebRTC to be disabled. Recently they added a new setting that alleviates that leak for the majority of VPN users, while allowing WebRTC to still be enabled. Would be awesome if Chrome allowed WebRTC to be disabled as well.
The new Chrome behavior should alleviate the need to disable. Basically, the behavior that caused the concern has been changed significantly.
(Right now Tor Browser keeps it click to activate, IIRC)
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.
The page you've linked says no...
https://groups.google.com/forum/#!topic/discuss-webrtc/_5hL0...
Chrome has had this forever.
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.
ggwp