HTML5 Desktop Wrapper/Framework [closed]
I'm currently mid-way through building a HTML5 application.
I'd really like to deploy this to desktop and I've looked at solutions such as Sencha but have had no luck (I found Sencha disappointing and frustrating to work with). I'd like cross platform compatibility and ease of deployment but I haven't found anything open-source or commercial that looks like it could do the job effectively.
Can anyone with some experience suggest a framework which might be suitable for packaging and deploying a HTML5 application on the desktop? An end requirement of this is that it will functional on both Mac OS and Windows - but for now Windows alone is great.
I've considered looking into building a C# wrapper which will render the HTML5, but a solution may already exist that I've overlooked.
I'd appreciate any responses from someone with experience - the other questions relating to this on the SO don't outline the solution the 'asker' went with.
Solution 1:
Findings after having researched this subject for a couple of weeks:
- Node-Webkit - an app runtime based on Chromium (which also powers Google Chrome) and node.js. You can write native apps in HTML and JavaScript with node-webkit. It also lets you call Node.js modules directly from the DOM and enables a new way of writing native applications with all Web technologies. It's created and developed in the Intel Open Source Technology Center.
- Adobe AIR - Widely used but with a major vendor dependency and no Linux support
- PHP Desktop - Don't let the name deceive you, PHP Desktop can also act as a packager for pure HTML5/JS applications. It embeds a Chromium browser and a web server. Shipping the PHP interpreter is not required. PHP Desktop is not strongly tied to PHP, it can also act as a packager for any other scripting languages like Perl, Ruby, Python, that provide a CGI interface for executing scripts.
- XULRunner - Benefiting directly on Firefox development efforts, this is an extremely well-maintained solution with great cross platform support but with almost non-existent tooling or documentation for packaging and distribution other than those of Firefox and other open source XULRunner-based applications themselves. UPDATE 2013-06-15: Webapp XUL Wrapper below addresses these issues
- Chrome Web Apps - Good option if all you need is a link to your web app from your Chrome home screen
- Chrome Installable Web Apps - Like a Chrome web app with more desktop integration. No flash support.
- Mozilla Open Web Apps - Good option if all you need is a link to your web app from your Firefox home screen
- Mozilla Native Web Apps - Like a Mozilla Open Web App with better desktop integration. Still requires online installation through Firefox Marketplace.
- Flash projector - Worthwhile-to-mention low cost solution for packaging Flash-based apps as standalone desktop apps
- AppJS (Node.js) - Promising project but with little activity
- Bellite Toolkit - a commercial offering that aims for a light weight library footprint at around 1MB, which is 70x to 100x smaller than similar Chromium Embedded based frameworks. Multi-process architecture allows using Node, Python, Ruby, PHP or generic executables. (Note On windows requires the use of Modernizr (JS shim) in the app since Bellite's switch from Chrome Frame to use Internet Explorer)
- Webapp XUL Wrapper - A XUL-based wrapper and build scripts for packaging a webapp into distributable bundles for Mac, Windows, and Linux.
- Brackets Shell - An awesome wrapper created by the brackets.io team. Complete with build setup instructions and Grunt build tools. See more here: http://clintberry.com/2013/html5-desktop-apps-with-brackets-shell/
- Atom Shell - A wrapper created by the atom.io team. It is based on node.js and Chromium and is used in the Atom editor.
A detailed overview of the current state of things, and more: http://blog.neamlabs.com/post/36584972328/2012-11-26-web-app-cross-platform-desktop-distribution
Another semi-detailed overview is here: http://clintberry.com/2013/html5-apps-desktop-2013/
No longer active/maintained:
- WebRunner / Mozilla Prism - XULRunner-based approach to running web sites in an independent browser window. Abandoned three times and currently left to rot with HTML5 support but equivalent to Firefox 3.6
- TideSDK (formerly Titanium Desktop) - Last release in end of 2012 and currently without active maintainers.
Solution 2:
Did you ever find an answer for this? If so I would love to hear it, because I don't think it exists and I want it desperately.
Here is what I have encountered while searching for the same thing:
1) Adobe Air: Supports Windows and Mac. Dropped Linux support after version 2.?. Supposedly, if you avoid 3.0 features you can still use the previously distributed LInux version.
2) AppJS.org: NodeJS + Chromium. Supports Windows, Linux, and Mac (32 bit only). The lack of 64 bit support kills it for me. They say they are working on it, but I fear that they are just waiting around for Google to add 64 bit Mac support to Chromium. No idea when that will happen.
3) Titanium Desktop: Abandoned by Appcelerator to the desert of open source. Hardly usable right now and no guarantees about future.
3) XULRunner: Sounds promising, but I encountered a build bug on Mac that stopped me cold. I'm going to go try the latest release right now.
4) Python + Tkinter: Although this is a python solution and not HTML5, this is what I am using right now. Combined with Py2App and Py2Exe, it seems like it might work.
Overall, I am extremely frustrated at the state of things right now.