9 ms·
Build Cross-Platform Applications for desktop using HTML, CSS, Javascript
- christiangenco 14y agoVery interesting - kind of like PhoneGap for your computer. I'd recommend placing a few screenshots of example apps on the front page running natively on different systems (mac, windows, linux). Well done!
- captaincrunch 14y agoI think for us, this is redundant as we made a direct jump to the cloud, but for applications that need to be built on the desktop, this would be great. Mike/Verelo.com
- AshleysBrain 14y agoThis looks really cool, but for HTML5 games to work well it really could do with these things: 1) support for hardware-accelerated rendering with canvas2D 2) support for hardware-accelerated WebGL 3) ability to turn off the extremely restrictive driver blacklists in Chrome (which will turn off hardware acceleration for ~50% of users, and is not necessary if building a desktop app) Yeah, basically games really need hardware acceleration. I know they don't mention games at all but something like this is great for additional distribution platforms and monetisation, as long as it has hardware acceleration. Anyone know if it covers that?
- Geee 14y agoIt's based on Chromium so it's pretty likely it will support just about everything and even more.
- AshleysBrain 14y agoMy experience with other wrappers is that's not so, sometimes they're based on Chromium but don't support WebGL, the Web Audio API, etc. etc. I suppose wrapping Chromium is harder than you'd think.
- ricardobeat 14y agoI really wish someone would take over development of lov8 (http://code.google.com/p/lov8/ http://code.google.com/p/lov8/).
- duncanwilcox 14y agohttp://sandofsky.com/blog/apps-vs-the-web.html http://sandofsky.com/blog/apps-vs-the-web.html http://sandofsky.com/blog/shell-apps.html http://sandofsky.com/blog/shell-apps.html Cough.
- wavephorm 14y agoThis guy's opinion of course omits the huge problems of walled gardens, dickwad Apple rules, closed platforms, 30% royalty absurdity, and the archaic development process of native apps.
- duncanwilcox 14y agoTo which the counterpoint is "awesome UX". You'll never get that with web tech. Sandofsky works at Twitter BTW. You are probably right about most of the problems, though how much of a problem they really are is related to where you place yourself on a purist-pragmatic continuum. Sandofsky explicitly mentions development: "Today, for high level work, I am as productive using Objective-C as JavaScript." That's my experience as well.
- pirateking 14y agoThis! Neither side has to lose, for the other to win. Both apps and the web will live on and grow as different experiences. People should stop trying to use web technologies for everything. They are killing what made the web great, while at the same time making native apps suck more.
- NHQ 14y agoNode.js is pretty "close to the metal", and HTML-as-a-GUI holds great promise for quality, and for cross-platform delivery. Maybe you can't touch the bottom and you can't reach the top, but you can get at the widening middle. And you used to be just a front end hacker.
- jiyinyiyong 14y ago`node-webkit` looks similar to this: https://github.com/rogerwang/node-webkit https://github.com/rogerwang/node-webkit
- sktrdie 14y agoI think Topcube does this as well: https://github.com/creationix/topcube https://github.com/creationix/topcube Topcube, however, is missing the Mac version. Another interesting idea would be to ditch Node all-together and use HTML5/CSS3 literally for everything your desktop app needs. With localStorage and other APIs being implemented in Chromium, one does not need the server part anymore.
- outside1234 14y agoIt seems to me that ember.js is a better approach to this - much cleaner application model and richer data support with routing and view state. That said, I'm with you broadly on Javascript+HTML5 on the desktop. Actually just wrote something up around my thoughts on how to do this with Ember.js if folks are interested: http://bit.ly/LybVgo http://bit.ly/LybVgo
- arturadib 14y agoappjs.purpose !== emberjs.purpose (former gives a cross-platform runtime, latter is merely a JS framework)
- outside1234 14y agooops, yes. sorry.
- kanja 14y agoThe tech is different but the purpose is the same - to give a great application experience with software written in JS/html/css, on every platform with a single codebase. Ember is betting on the browser to be the runtime, appjs is writing their own.
- rmATinnovafy 14y agoIf you could do a one click install with no internet access this could have huge potential. Yesterday, while working with C# and sql compact I realised the need for something like this. Not that I have anything against C#. Love that thing, but it is complex (.NET).
- TimGebhardt 14y agoInstead of a "one click install" how about a "clickonce install". ClickOnce, the installer/updater built into .NET since .NET 2.0. It can also work for installing via CD or over a fileshare if you don't want it over the internet.
- mratzloff 14y agoPokki (http://developers.pokki.com http://developers.pokki.com) is a similar platform that builds to Windows and supports WebGL.
- arturadib 14y agoThe hardest part of all of this is getting a runtime that builds/installs seamlessly across platforms. I just did an 'npm install appjs' as per docs, and it failed (Mac). I myself have gone through great lengths to create a similar (minus Webkit) runtime for Mac, Windows, and Linux: https://github.com/arturadib/node-qt https://github.com/arturadib/node-qt https://github.com/arturadib/node-five https://github.com/arturadib/node-five Despite all my efforts there are edge cases where it simply won't install/build. Keep up the good work though -- this is a much needed project. (Bear in mind too that Mozilla and other companies are coming out with their own runtimes for web apps, so such projects will likely be rendered obsolete by them).
- elliotlai 14y agoGood Work!
- mhitza 14y agoWhy are you trying to reinvent the wheel? I already mentioned XULRunner here, and I´d suggest you have a look at it. There are a few applications you may have heard about using it https://developer.mozilla.org/en/XULRunner_Hall_of_Fame https://developer.mozilla.org/en/XULRunner_Hall_of_Fame
- arturadib 14y agoThere's no wheel being reinvented. XULRunner is based on XUL, which makes it fundamentally different from the goal of above projects (that is, to use HTML technologies alone to build 'native' apps). Some of us at Mozilla Labs have tried to fill this gap through the Chromeless project (https://github.com/mozilla/chromeless https://github.com/mozilla/chromeless), but we've stopped working on it in favor of a more general runtime for web apps (that's what I was talking about in the last sentence: https://wiki.mozilla.org/Apps/WebRT https://wiki.mozilla.org/Apps/WebRT). The very fact that XULRunner/Chromeless didn't take off like PhoneGap did in the mobile arena for example is evidence that there's room for innovation in this space. Happy to elaborate on this, but only if you promise you'll be nicer :)
- 14y ago
- vimota 14y agoThis seems to be done currently through means like this: http://www.quora.com/Rdio-online-music-service/What-technology-drives-Rdio%E2%80%99s-Mac-desktop-app http://www.quora.com/Rdio-online-music-service/What-technolo..., it'd be nice to see an even simpler approach (like appjs) replace it.
- GeneralMaximus 14y agoI'm enamored with the idea of writing desktop applications with web technologies, but I'm not enamored with the idea of running a node.js instance locally for every such desktop application. What I would like to see is a "privileged mode" Chromium (or Firefox) that would let applications break out of the browser sandbox and directly perform operations such as filesystem I/O. Privileged Mode Chromium would obviously be a huge security threat if it's allowed to run any old code, so it would be wise to prevent it from downloading and executing scripts over the network, or maybe have some kind of script signing support in place so that the only scripts allowed to execute are the ones with the app developers' signature on them. Or maybe I'm talking out of my ass here and what we have right now works just fine. Feel free to correct me here. Also, one question. Isn't the node.js instance serving my application visible to other applications on the same system? Can't a malicious application take advantage of this fact and cause my app to misbehave? (Offtopic: I must point out an irritating and potentially harmful design trend that is emerging as a result of Twitter Bootstrap's popularity: the top navigation bar that stays in place as you scroll downward. It wastes precious screen space, looks ugly and doesn't add anything of value to the website. Why is it so important that I be forced to look at your website's logo and navigation bar all the time? I'm not picking on the AppJS developers here; this is a general sentiment directed towards all the designers who embrace this terrible trend.)
- pmjordan 14y agoMozilla and its successors, Firefox and Thunderbird are actually built on XUL[1], which is an XML-based UI description language which can be mixed with HTML and SVG, styled with CSS and programmed just like HTML with JavaScript. Then there's the xulrunner, which lets you write standalone apps on this tech. It's never taken off much, but I don't know if that's down to flaky implementation or just lack of interest. (if you don't like XUL, just use a minimal amount of it to embed your HTML app) [1] I'm not sure what the current status is, but I think they want to phase it out?
- catch23 14y agoXUL is not html, and you'll have to hit the docs every time you need something. Also, debugging XUL is a pain. XUL is pretty ancient too, so that probably doesn't help either. Sticking with plain jane html is definitely the better approach, however I doubt the XUL implementers would have ever known that back in the year 2000. There's still a bunch of tools for XUL, but fairly rusty: http://xul.sourceforge.net/ http://xul.sourceforge.net/
- mhitza 14y agoI still find XULRunner better suited for this task.
- solox3 14y agoIt felt a bit like Prism (https://mozillalabs.com/en-US/prism https://mozillalabs.com/en-US/prism). Unlike them, who are just slapping a browser inside a chromeless window, you are actually building it from the ground up?
- jarek-foksa 14y agoIt looks like AppJS is built on top of CEF framework which is basically a stripped down version of Chromium. This also means that AppJS-based apps can't be shipped on Mac App Store because CEF makes use of private frameworks.
- deleted 14y ago[deleted]
- tferris 14y agoIf your app runs on HTML/CSS/JS where's the point to make locally installed app out of it? One reason might be a better hardware accessibility (at the moment) but with the pace Chrome, WebGL, etc. are evolving there shouldn't be any reason in near future and you would have cross-platform apps without any installation and update hassle.
- nardi 14y agoQ: "What's better than this stack for application development?" A: So many things. Cocoa comes to mind. HTML/CSS/JavaScript were never created to build applications, and it's very apparent when you do so. I've built a lot of web apps, but out of necessity. I think we're going to actually see the opposite trend in software: moving client-server apps away from browser-based solutions and toward native apps. In fact we're already seeing that movement—and I would argue that a big reason behind it is how much writing client apps in JavaScript sucks.
- darkstalker 14y agoI personally find disturbing how people wants to do _everything_ with web technologies. Can't they just learn how to write native apps? I wouldn't like to see my desktop full of slow and bloated web apps.
- Jare 14y agoThe potential of web tech for universal availability and cross-platform is very alluring, even if it still has many pitfalls and inadequacies.
- robocat 14y agoDoes Facebook have a native windows app?
- bzbarsky 14y ago> Can't they just learn how to write native apps? They can, but then they need to either write multiple ports of the app or target only a small subset of the market. The first sucks (speaking as someone who in fact works on a project that ships a nontrivial native app on several different platforms), and the second loses you customers _and_ creates people who give you bad press because you're "locking them out" by not providing an app on their platform. Of course web technologies are not the only way to write cross-platform apps, but the other options I know produce results that are even less appealing to users.
- chris_engel 14y agoWhat a waste of time! Appcelerator is putting its titanium desktop framework under opensource which does EXACTLY THAT. It already works on win/lin/mac and would only need a cleanup and update. Why wasting time and re-creating everythin from scratch?!
- its_so_on 14y agoWhat I don't get is, honestly, the reason web apps are so much more awesome on PC's and Mac's than desktop applications are is that they are 0-configure, 0-install, 0-trace. These days, the people with the fastest computers aren't the geeks - they're people who buy a fast clean empty computer, install Firefox and never anything else and just use web apps. If they uninstall any crap that came with the computer, and keep, say, Windows (or Mac) and Firefox updated (both these OS's and Firefox are pretty proactive about this too), then after a year, their computer screams compared with anyone who downloads anything. (Such a person will normally at least start up skype, an antivirus, media programs, office suites, cam software, sometimes bittorrent or other specialty software, etc etc etc. The list goes on. All of which like to update themselves, have an update process in the background, sometimes hanging, bugging the user, etc, and all of which like to start up with the computer.) Honestly, what the desktop experience is missing is quite simple: 1) seeing the first screen within 5 seconds of asking for it 2) every action takes a few seconds including 'installation' 3) when you close the tab it's gone. Honestly, even if you have a VM that is 100% in RAM on the fastest computer available today, usually all programs fail at number 2 - if for no other reason than that their installation program requires the user to click Next Next Next Next Finish. What would fix this? Well, for one thing if any web app also had root access to a non-networked-except-with-its-own-servers 100% do whatever they want with it local VM. Yet to my knowledge there is not even a distribution (of any kind of operating system whatsoever) that is geared toward giving its entire stack over to 1 application, assuming that it is all now 'tainted'. Off hand, it would seem the requirements of such an OS would be: - Fast startup, no unneeded services - Very small footprint, so that a web service can go wild on it, modifying it however it wants, removing anything it doesn't want, basically, it's theirs now - and the resulting blob can be written out to disk quickly when the app closes. - Extremely secure. No way for the app to break out of its jail, where it has total root. - Some graphics acceleration would be awesome if this can be done securely, secure access to opengl, etc. - EXTREME STANDARDIZATION THAT DOESN'T CHANGE FOR YEARS OR IS SUPER-PREDICTABLE. This is the MAIN area where Firefox shines: you can TARGET it. Whereas, targeting Windows: good luck. Targeting Linux: um, a slew of questions immediately pop up. Mac: which version? The difference between offline games and online games is just huge. Imagine if you could run any hardware accelerated game "right from your browser" waiting a few seconds for it to load. The threshold to trying it out would fall 1-2 orders of magnitude. (I would argue, for an indie house falling 3 orders of magnitude). I do realize that this overlaps with NaCL. However, NaCL is not really about providing the full desktop STACK to developers in a standardized way: instead it focuses (from what I gather) on just the op codes. That's great, but it hardly provides OpenGL (or DirectX) or a slew of other things that desktop applications have if they want it. Basically, I am saying: if VM software is advanced enough that security researchers run random viruses on their everyday boxes with their normal hard-drive mounted, just in a vm, then how is VM software not advanced enough to give a full desktop access to a web site, all cordoned off with write-on-modify semantics and standardized, so that the user has 0 security implications to this? Basically, the ONE thing I would add to the experience is putting at the top of any tab that has this, the number of VM's currently running. Whereas I expect flash to work well with 10 instances, that may be asking for too much here.
- hobbyist 14y agoisn't this is an overkill.. using node.js for running desktop apps
- napolux 14y agoHey men, what about Adobe AIR then? It's out there since 2008, it works on Mac/Linux/Windows/Mobile and it's far more complete than App.js or any other competitor. You can use flash (OMG) or just plain HTML/JS (I've developed something in the past using both) But you know, we are in an app era right now and this technology has lost part of his original appeal
- nacs 14y agoAdobe Air dropped support for Linux around January of this year I believe. So not quite a full cross platform solution. In fact, Adobe has been getting worse with Linux support altogether lately (including the Flash runtime).