The additional capabilities primarily concern access to Chrome APIs and services - access that traditional web sites do not have, including acting as a network client for TCP/UDP connections, and accessing hardware devices You can charge for packaged apps as well.
The packaged app is available here on the chrome app store. Note that on my iMac, I have noticed some odd instability of Chrome itself, but clicking "Ignore" seemed to let it run without a problem. Feel free to let me know if you see the same issue as well. In fact, feel free to let me know if you don't see it happen.
|A d3.js visualization running |
as a "packaged app" from the Chrome Store
Why would you use this mechanism for what is essentially a web site? I am still mulling on this. Google touts that it allows apps to be less dependent on the network. I do know that for some of the visualizations I have done this year, it would have been nice to have a way for users to get all of the materials in one fell swoop, and then run it as needed. The update mechanism would handle any needed updates to the visualization. Another benefit may be the ability to ride on top of google's user-authentication/management that would be a hassle if you were managing it yourself on a website.
Nuances to Create the Packaged App
Ideally, you can just (basically) zip up a web site plus a few special text files and publish it in the chrome store. However, there were two main issues I encountered when trying to do this with d3.
Publishing on the Chrome Store
It costs $5 to register on the chrome store so that you can upload apps. "Uploading the app" in this case meant creating a zip file of the directory, and uploading it through the chrome developer console.
It looks kind of cool to see the app run in a chrome-less window.
I've noticed a few times that it reported a (native) crash on an iMac when the downloaded app is run - one of the errors where Apple would like you send an error report, not google. Irritating, but apparently they can be ignored. I get the feeling that this is somewhat new technology, so there may be more things like this.
You have to specify the initial window size when the app is launched. In this case, I used 1280x800, since this was the size of the screenshot I needed to add for the chrome store in order to publish it.
Overall, this is an interesting concept. I am curious to see how it pans out.