Why I have a problem with Chrome "Native Apps" (9/5 "Update")

I'll be disseminating each point in http://chrome.blogspot.com/2013/09/a-new-breed-of-chrome-apps.html while giving my point of why I don't agree with what they're doing.

The Blog Post


Work offline

This is already an established standard ( http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html ), that is not chrome app specific. In fact adding a meta tag with a reference to your app cache will work in all current browsers (IE10, Chrome, FF). Stating that this is a "new" feature of chrome apps is a bit disingenuous of current web apps at best.

More app, less Chrome

I will admit that this actually is one of the first few web application platform that removes the chrome (IE did it way back with Active Desktop, but that's neither here nor there). So this is a good step, however running IE10 metro mode removes app chrome as well, so this is neither a win nor a loss for them, just being the first on desktop. (Honorable mention to IE9, which modifies the UI to be relevant to a requested color of the web app whilst pinned).

Connect to the cloud

I really don't even understand how this is an "improvement" over JSONP and CORS, both of which are the underlying technology

Stay up-to-speed

This is already enabled under chrome as "desktop notifications" which you can see under GMail, and isn't a new improvement, as this was enabled in May. I believe this landed in WebkitCore, so you may be able to see it in Safari (I haven't checked whether it was in the chromespace or webkitcore)

Play nice with your connected devices

"Interact with your USB, Bluetooth and other devices connected to your desktop, including digital cameras."

This is where I start to have issue. USB is covered under the file picker dialogue, and the others are being implemented through the MediaCapture API (which is being extended through FirefoxOS, whilst attempting to standardise it).

Keep updated automatically

This is a byproduct of the appcache mechanism, and isn't any different than working offline. The appcache specifies a key, and if it's updated, then the corresponding files are automatically updated.

Pick up where you left off

This is just a config file being saved, you can request a developer key that does the same with Skydrive, or even do an evernote login to request the same.

Sleep easier

A byproduct of the platform

Launch apps directly from your desktop

This was created over 3 years ago on IE9 on Windows 7 ( http://downloadsquad.switched.com/2010/09/15/internet-explorer-9-lets-you-pin-web-apps-to-your-windows-7-taskbar/ ), yet is being lauded for being the "first of its kind".

Developer Changes

  • Connecting to a socket uses a chrome specific API that is in fact a redressed version of the standard of the Websocket API
  • External embeds through are dressed up iframes with cross domain restrictions removed
  • Going through http://developer.chrome.com/apps/api_index.html , you'll see that most are just redressed previous APIs.

The Implications

What this means isn't readily apparent, until you realize, all of these chrome apps will end up needing to be focused on either of two different ways:

  1. IE6 Mode, deal with it and tell everyone not to use it next time, and that writing non-standard markup for what amounts to web applications isn't good for the ecosystem
  2. Mobile Webkit Mode, end up making all the other browser vendors have to hack on your solutions so that they can render correctly, and get a huge developer backlash against other developers on "experimental" features
This is something that can either make or break the web as we know it. By having other vendors push for chrome to use the standardised markup and reforming into new APIs that are going to be backwards compatible, or segregating the web once again. I sincerely hope the former, as the web is still healing form the last segregation that it had from mobile webkit.
I'm sorry if my words seem a bit scattered or don't do the ideas justice. Note that this is solely my personal opinion as a front end web developer, and someone who attempts to follow the standards scene.