I'm not sure if what I'm after even exists or if it doe's im looking for the wrong thing.

I'm after a framework/application/SDK that allows me to build a desktop application with a HTML/CSS/JavaScript based interface yet still allow for more complex OS interaction with a programming language such as Python (im also familiar with Ruby but as this is a hobby project I don't mind looking into other languages if needed). By complex OS interaction I mean more than simply saving files to the HDD, being able to use pythons libraries would be a big bonus.

The closet thing I can find so far is tideSDK http://www.tidesdk.org but it doesn't seem to offer much past its own API for OS interaction.

  • 2
    For which platform? Windows? Linux? iOS? Presumably tideSDK gives you its own API so that it can be cross-platform compatible. If you want something more specific, the new Windows 8 stuff claims to be driven by HTML5, Javascript and CSS. – Robert Harvey Dec 28 '12 at 18:23
  • Linux would be desired but Windows if needed. It's only a small personal project and its more a concept of proof of whats possible than anything else before I start any major projects in this format. The tideSDK does have a decent API for OS interaction but I'm just not comfortable yet reliying solely on it without having the back-up of a native desktop language behind me – twigg Dec 28 '12 at 18:26

Windows 8 (Metro-style) apps would be an option, as you can build your UI in HTML and CSS, and still use Javascript to access all native APIs. You would be limited to the WinRT APIs though. You could also use "real" programming languges in the same project, (C++, C#).

In short, you can build sorta desktop apps for Windows 8 using only the web technologies that you know, without having to dive into a so-called "real" language.

| improve this answer | |

One of the solutions would be to implement your own web server installed on client machine (that will allow you for more complex OS interaction) and have entire communication via web browser (that will allow you to build a desktop application with a HTML/CSS/JavaScript based interfaces)

There are several things you need to consider e.g.

  • If you are trying to write that application for multiple operation systems (Linux, Windows) then user interface (based on HTML/CSS/JavaScript) can be the same; server part will change.
  • If you write server in one technology (Python, Jave etc.) you will also have to install appropriate language/SDK on a client machine. Some client may have different version of the language/SDK already installed on their machine so you would have to deal with that too (that would make instillation procedure a bit more complex).

Personally I think it might be a bit more challenging project than creating standard desktop application.

| improve this answer | |
  • That's what many of those frameworks do anyway. – Jörg W Mittag Dec 28 '12 at 19:31
  • Don't python app executables just bake the python interpreter in so the user doesn't necessarily need to have python? – Erik Reppen Dec 29 '12 at 5:23

I've lately been experimenting with Node-Webkit and plan on using it in a particular upcoming project where I'm porting a PhoneGap app to the desktop. Node-webkit is still a little rough around the edges, but it has tons of potential and seems to be progressing fast.

Node-webkit is essentially an application that offers an embedded build of chromium that uses Node as its scripting engine. This allows a combination of using HTML/JS to create a desktop app, while having access to node modules. One nice touch is you can build standalone (if large) apps by simply concatinating a zip file of your html/JS content to the end of the nw executable. Another nice perk is its available for Windows/Mac/Linux.

| improve this answer | |
  • Sounds like it's essentially a recreation of how phonegap works. It slides a browser into a native mobile app window, tweaks a few security considerations and gives you JS access to an API for dealing with file I/O and phone devices and done. – Erik Reppen Dec 29 '12 at 5:21
  • Its a similar approach, which is why I was using to port a PhoneGap app. Where PhoneGap relies on the native browser of each device, node-webkit is the same chromium based embedded browser on each platform. And because its using node.js/v8 under the hood, it can use node.js modules, which opens up a lot of functionality. – GrandmasterB Dec 29 '12 at 7:13

All you need to do is install and run a local web-server.

Than all your server side code is also local!

| improve this answer | |
  • Though that makes the user interface dependent on the browser, with all its baggage and potential compatibility problems. – user7043 Dec 28 '12 at 18:43
  • No, you can embed a browser object in a app... – Morons Dec 28 '12 at 19:20
  • That's what many of those frameworks do anyway. – Jörg W Mittag Dec 28 '12 at 19:21
  • 1
    Then it's not "all you need" anymore ;-) It can certainly be done, though it's apparently not trivial (judging from how rarely this happens). – user7043 Dec 28 '12 at 19:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.