HTML5 Desktop Wrapper/Framework [closed]
Asked Answered
O

4

50

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.

Otiliaotina answered 13/6, 2012 at 13:23 Comment(0)
H
68

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:

Herbie answered 13/6, 2012 at 13:24 Comment(9)
Add node-webkit too now.Franko
The answer is now community wiki so that anyone with node-webkit experience can add itHerbie
There is also Zinc 4.0 and Sentenza Desktop (more infos in this comment : #4870113)Siphonostele
[PHP/Ruby/Perl/Python with CEF/IE] I must mention: code.google.com/p/phpdesktopLiquidate
PHP Nightrain. It's opensource, portable, supports HTML, CSS, Javascript, PHP and works on Mac, Windows, Linux. Quick video youtube.com/watch?v=GXt8erPLf4o and the main page: naetech.com/php-nightrainDeliverance
Late to the party I know, but have you looked at CEFSharp?Gillan
AppJS is deprecated. You can safely remove it. Why? CEF1 is deprecated, which was AppJS' base. Rewriting it to CEF3 is pretty impossible.Rica
Atom Shell is Electron now.Lunch
You can also add Enyo enyojs.comSachiko
R
4

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.

Rent answered 2/8, 2012 at 18:19 Comment(1)
Hello, coincidentally, I did find a solution. I decided on the Awesomium framework (www.awesomium.com), it allows me to build an application 'window' which I can point at a URL, because Awesomium is effectively a Chromium control built into any surface (WinForms etc), I maintain the functionality of HTML5 and can utilise features to build an 'offline' mode if the user has no Internet connection. Hope this helps.Otiliaotina
V
1

Chrome's application shortcuts work on Windows and Linux.

That would allow your application to run in its own window and it has the benefit of taking about three seconds to do; it does not, however, meet all your needs.

Vulcanite answered 2/8, 2012 at 18:31 Comment(1)
Unfortunately I've already explored this avenue and it's unsuitable for the spec. I appreciate the response though.Otiliaotina
O
0

I decided to use the Ultralight HTML5 Renderer (www.ultralig.ht).

This allows me to fully utilise the 'web stack' whilst easily deploying a light-weight solution to the client.

Otiliaotina answered 3/8, 2012 at 8:44 Comment(1)
Not for commercial purposes and not open-source... I don't think I will be using this one.Kennakennan

© 2022 - 2024 — McMap. All rights reserved.