22

Whilst node-webkit is nice, the binaries on mac and linux are over 70MB for a hello world application. Unacceptable.

Is there any cross platform library available that simply uses the system default browser? I don't really care if that's IE, or webkit, or ... ? I presume that way the binary would be much smaller.

Or is there any cross-platform language that can easily integrate a (system) browser view?

Thanks.

  • another option to consider is Atom Shell, https://github.com/atom/atom-shell – Brad Parks Feb 11 '15 at 12:36
  • A webkit osx build I've created today for a simple app was ~45MB compressed to zip (and compressed to 7z it is 25 MB). BTW, the popcorn time installer for mac is ~36MB (and they have a nice rich app) - I wonder if they did some tricks to compact it some more... – Erez Cohen Apr 16 '15 at 12:02

4 Answers4

10

There is AppJs, but I don't think it could occupy much less space.

In all cases, a runtime similar to node-webkit is always going to take up some space because it needs to include a webkit rendering engine and a Javascript engine at least, and those are large applications.

node-webkit can be shared across several node-webkit applications, so it's not needed to install 70MB each time, have a look at this documentation for further details:

enter image description here

The size of node-webkit is actually quite reasonable compared to other runtimes such as the JVM which takes up several hundreds megabytes, and 70MB as disk size of nowadays is small (as a comparison it's the size of 10/20 pictures).

Concerning one of your questions, node-webkit cannot reuse the already installed Chrome because it's based on Chromium which is a different browser.

Also there is no way for it to tap into or reuse existing webkit engines in already installed browsers, because versions might be different, security reasons, etc.

Also the webkit in node-webkit is modified to for example allow the user to access the file system, open database connections and all the expected functionality of a non browser based desktop application, so that's another reason why reusing installed browsers is not possible.

Angular University
  • 42,341
  • 15
  • 74
  • 81
  • 4
    Actually appjs has abandoned it's efforts and is now telling people to use node webkit. About only distributing app.new -- is there any way that extension can be registered by the system to automatically be opened by nw.exe ? Just like .jar is opened by java.. Can't really ask users to use command line to open an app. –  Mar 13 '14 at 08:25
  • 1
    http://deskshell.org/ – Muhammad Umer Mar 16 '14 at 20:25
  • 1
    windows installers allow to associate extensions such as .nw to the installed executable. assuming that node-webkit is already in the PATH since it's installation, it's also possible to create a .bar file that will launch the application running the same command that would be launched from the command line. – Angular University Mar 16 '14 at 20:29
  • by .bar did you mean .bat? – shadownrun Sep 21 '16 at 17:33
7

I think that TiDeSDK Could fit your needs.

It's is designed to create desktop apps, based in node and webkit. According to its web site the application Wunderlist is developed with TiDesdk and its size is about 30MB based in Mac App Store page: https://itunes.apple.com/us/app/wunderlist-to-do-task-list/id410628904?mt=12

However, if the size is really important for you, maybe you could consider to develop a Chrome or Firefox extension, that would generate the smallest file to distribute.

EDIT: It seems that the people that worked in TideSDK started a new project, TideKit, with a similar key features and including mobile platforms, It's explained here

Community
  • 1
  • 1
Roberto
  • 8,586
  • 3
  • 42
  • 53
  • Is tidesdk has also been abandoned in favor of tidekit? – Muhammad Umer Mar 16 '14 at 20:48
  • I guess so, I red on google groups a thread by the author stating that they had financial problems in the act of keeping up the current tideSDK as it was, so last year they stopped developing that in favor of TideKit, which will have a commercial approach. – holographix Mar 25 '14 at 18:06
  • @holographix, would you mind digging up that link and posting an answer to my question here? http://stackoverflow.com/questions/24440371/is-tidesdk-defunct – jacobq Jun 26 '14 at 21:17
  • 1
    TideKit is now abandoned as well... – Mike Sep 16 '15 at 15:49
4

EXCERPT from your question: "I don't really care if that's IE"

https://code.google.com/p/phpdesktop/

You can try the PHP Desktop MSIE from the link above, whose minified version is only 5.823 MB

Shourya Sharma
  • 547
  • 4
  • 23
  • 1
    If you are looking for a cross platform solution (e.g Windows, Mac and Linux), take a look at PHP Nightrain. http://www.youtube.com/watch?v=GXt8erPLf4o – roosevelt Aug 01 '14 at 22:50
2

Sencha Desktop Manager aims to deploy web app on desktop:

https://www.sencha.com/blog/whats-new-in-sencha-desktop-packager-1-2/

However I don't even know if the tool is still supported. FRom what I heard it is part of Sencha Complete, which is expensive. Besides the API seems limited compared to what NW provides -- a tool built on top of Nodejs.

You said the binaries are over 70MB. It depends on what you think is vital: is it the size of your delivery file or the size of your app once installed? Once installed the app may be 70MB.

However your nw app must be zipped if you want to distribute it. I developed a nw app with 200+ Javascript files. Once zipped the package is 30MB (MAC OS X) and 28.5MB (Windows). I have just checked it.

The runtime is heavy, but the rest of the app is light: only Javascript files, images and other kind of files. So not much a huge difference between a hello world app and a not trivial one (although images and other resources can be heavy).

roland
  • 7,695
  • 6
  • 46
  • 61