To build native apps with HTML, CSS and JavaScript became very popular in the last years. Full functional apps like Spotify or TweetDeck are made with those techniques.
But there doesn't seem to be the one solution for developers to build a native web app. I tried out some frameworks and want to express my thoughts.
First things first: What do I want to achieve?
I want to have an app which runs in its own window. And it should be an app for the desktop. My skills in building web pages are PHP, HTML, CSS, JavaScript. I don't want to learn a new language to build my app.
Chrome Apps
It's very easy to convert your already existing web app to a Chrome Web App. You just create a package with a reference in it to your web app via URL. Follow this tutorial to learn more about it.
But you can also build a brand new Chrome App which also have access to the Chrome API.
At the end you can publish your app on the Chrome Web Store. But this could be a dealbreaker for people who don't to be dependent on an app store. Conclusion: Great if you like the concept and vision of Google Chrome (OS). Get started with Chrome Apps
Adobe AIR
As an Adobe fan I also tried out Adobe AIR, of course. ;) You can use the Adobe AIR SDK for free to build apps like you want to. But Adobe's actually impression is that you create AIR apps with an Adobe product like Flash Professional.
The way to create apps with HTML/CSS/JavaScript nevertheless is very easy. With the SDK you can also package in an elegant installer. To create this installer you have to have a certification file. You can make one by your own but if you use your self-made certification for the installer, the user will get a warning alert. To avoid this, read this you have to get a certification file signed by an Adobe's partner. And that's not cheap. Click here to read about it. Conclusion: This certification thing is a little bit deterrent. Even with the warning notification users can still install the app. Download the Adobe AIR SDK
AppJS
An app built with AppJS needs node.js to run. So on Windows you have to run the node.js EXE and give it the command to show your resources. On my tryouts it didn't feel really elegant. With some extra tools you can convert the Batch command to an EXE but you don't have a real application which you can pin on your taskbar, for example. If you try to pin it only the node.exe will get pinned. Conclusion: I wouldn't recommend it. The problem isn't solved very elegant. Visit appjs.com