At my workplace we evaluated atom-shell for couple of desktop apps we were building but we found various shortcomings:<p>1. Limited integration with desktop environment. Have a look at System tray integration for example, <a href="https://github.com/atom/atom-shell/blob/master/docs/api/tray.md" rel="nofollow">https://github.com/atom/atom-shell/blob/master/docs/api/tray...</a> in many cases it is just too simplistic.<p>2. Another thing we learnt the hard way is, a lot of JS charting libraries are not meant for plotting streaming data for long period of time. We for example found that, most d3js based charting libraries start to balloon in memory usage if left running for > 1 hour or so.<p>3. Large executables.<p>It is still a nice platform to develop on! But if you are stuck with performance problems or something, coding your way out of it is way harder (unless you are willing to get your hands dirty with atom-shell code itself).<p>EDIT: So we ended up using Qt. in fact, a lot of JS libraries can be used in Qt via QML, for example - <a href="https://github.com/jwintz/qchart.js/tree/master" rel="nofollow">https://github.com/jwintz/qchart.js/tree/master</a>.
How portable is this, exactly?<p>Previously, node-webkit looked like a great contender for a universally shippable desktop UI system, but it actually falls on several platforms due to invalid presumptions about locally available dynamically linked libraries [1]. It would be great to see an up-front document about portability promises.<p>Is it possible to use other languages to drive the rendering via a linked API? Thrust [2] did a good start on defining an API for using the UI components from multiple languages, but it still relies on TCP sockets -- as far as I can tell, there's no way to make my application load assets from "bundle://" and redirect that to custom handler code while forbidding other network access, and the use of a local TCP socket to communicate between the UI and the main application means there's also major reason to be concerned about CSRF attacks on localhost. We should be able to build desktop UIs without these problems. Is atom-shell pushing forward on any of these issues, and if so is there any documentation on how?<p>[1] <a href="https://github.com/rogerwang/node-webkit/wiki/The-solution-of-lacking-libudev.so.0" rel="nofollow">https://github.com/rogerwang/node-webkit/wiki/The-solution-o...</a><p>[2] <a href="https://github.com/breach/thrust" rel="nofollow">https://github.com/breach/thrust</a>
We're currently using Atom Shell to build the Slack Windows application and everything going really well; the lead developer of Atom Shell is really talented / responsive to issues. We've been open-sourcing interesting pieces of the app to help the community get started building their own production-level Atom Shell apps as well:<p><a href="https://github.com/atom/atom-shell-starter" rel="nofollow">https://github.com/atom/atom-shell-starter</a><p><a href="https://github.com/paulcbetts/grunt-build-atom-shell" rel="nofollow">https://github.com/paulcbetts/grunt-build-atom-shell</a>
Previous discussion of atom-shell and other similar software here: <a href="https://news.ycombinator.com/item?id=8729791" rel="nofollow">https://news.ycombinator.com/item?id=8729791</a>
Tools like atom-shell and thrust[1] may not integrate into the OS as smoothly as Qt/etc but they do show a lot of promise for web tooling. e.g. shader authoring tools, motion/animation editors, WebAudio API editors, etc.<p>Summed up my thoughts here:
<a href="http://mattdesl.svbtle.com/motion-graphics" rel="nofollow">http://mattdesl.svbtle.com/motion-graphics</a><p>[1] - <a href="https://github.com/breach/thrust" rel="nofollow">https://github.com/breach/thrust</a>
Looks like
<a href="https://github.com/appjs/appjs" rel="nofollow">https://github.com/appjs/appjs</a>
and
<a href="https://github.com/sihorton/appjs-deskshell/" rel="nofollow">https://github.com/sihorton/appjs-deskshell/</a><p>(If you want to look at alternatives)
Make sure you also check out the starter app!<p><a href="https://github.com/atom/atom-shell-starter" rel="nofollow">https://github.com/atom/atom-shell-starter</a>
Mapbox built their latest map design studio on Atom Shell: <a href="https://www.mapbox.com/mapbox-studio/" rel="nofollow">https://www.mapbox.com/mapbox-studio/</a>
I been using node-webkit + THREE.js for an app, and really enjoying it. This looks interesting, but are there any major differences between in and node-webkit that would interest me in switching? There doesn't seem to be a comparison section in the readme.
I initially started using node-webkit a couple of weeks ago but I decided to have a look atom-shell last week.<p>I miss how thorough, relative to atom-shell, the docs are for node-webkit, but atom-shell does seem more mature and thoughtful in the way things have been implemented. Nide-webkit's iframe changes are a bit ugly, but atom-shell's webview element is nice and clean, plus it looks as though Mozilla want to standardise something similar.<p>Has anyone seen issues with the separate browser and application processes? I haven't had any yet but I feel that I might run into issues soon.
Interesting!<p>FYI atom-shell seems to work better with node v0.11 than node-webkit if you're trying to build little admin/maintenance utilities that need sudo.<p>node-webkit gets in the way of the sudo working.
Does something similar exist for iOS and Android apps? In other words, could someone opine on what's the best way to create mobile apps that are wrappers around web apps.
Is the common approach to create a native app with embedded browser or is there some other way?
is mozilla missing out on the scene of desktop app? what's next after xulrunner?<p>Also, i have a legacy app written with xpcom like components. Is atom shell a right platform if i decide to re-write the old xulrunner based application with new platform such as atom-shell, node-webkit or qt may be?<p>Are there any licensing issue with atom-shell for desktop apps?
what about support for other architecture than x86. I saw some support node-webkit for armv7. Anyone have experience with desktop app running on arm based os such as ubuntu arm.
It seems like a very nice kit, but I think I'd rather just use the native WebView that comes with the OS. Once you embed the browser engine, everything else is easy and you have a lot more flexibility with what can be done natively.