Node-webkit & Developing HTML5 Desktop Apps

Using markup & stylesheets is important in any application development. For example, KDE uses KHTML for its markup, a fork of webkit. Most interface libraries are written in C/C++ and expose an API so that every developer who chooses to use it doesn’t go about re-inventing the wheel, like GTK.

Most operating systems have their own version of an application development kit. Useful as they might be, you still end up writing code and supporting multiple apps throughout the development process. Regardless, the important thing to remember is that the basics are the same as discussed in the case of GTK.

Enter HTML5 Desktop Apps

HTML5 Desktop apps are by no means a new concept. Odds are you’ve probably used one of these already – Swiggle, Light Table, Atom.

As a matter of fact, Windows features entire tutorials on how to publish a JavaScript app. This, however, is only one part of the puzzle. The next and most important piece is to look for a tool that will let you deploy a single app in multiple environments.

Luckily, there are a few of these tools that are featured prominently on the market that allow you to create write-once, run anywhere HTML5 desktop applications. Here is a quick rundown on some of the most noteworthy available frameworks:

    • TideSDK – You have probably heard of the Titanium SDK for mobile applications, but interestingly enough there was a Titanium for desktop as well. Unfortunately, the team stopped working on it and released it to the open source community. TideKit is coming soon according to the TideSDK website and is an option to keep an eye on.
    • Chromium Embedded Framework (CEF) – CEF is a simple open source framework for embedding a Google Chrome based web browser into third party applications. It is a convenient way to implement an HTML5-based GUI in a desktop application, or to provide browser capabilities to an application.
    • Adobe came out with Brackets-shell, Brackets is a CEF3 based application shell that is most well-known for its use in the development of desktop applications. It also happens to be what Brackets IDE is written in.
    • QT – QT is essentially a cross-platform application and UI framework built by Nokia for developers using C++ or QML, a CSS & JavaScript like language. QT is easily the oldest out of the bunch.
    • While all of the above are viable options, Node-webkit would be the sensible choice to go with, given that the project itself is just a wrapper with message looping. The main projects are Chromium and NodeJS, both of which are heavily tested and have a huge community.
Conclusion

You could just write a plain HTML5/CSS/JS app and ship that with the run time and add NodeJS on an as-needed-basis. Assuming your app is written with a modular architecture in mind, a desktop app could reuse a lot of components from your web app.

It should be noted that as an added perk, because you control the runtime environment of the application you can do a lot more with less. To add additional value, use the advanced HTML5 API as well as WebGL if need be, and don’t be afraid to use Flexbox for better regions and layouts.

Do look out for a Node-webkit desktop application from 3Pillar Labs all-nighter next!

Adi Chikara

Adi Chikara

Client Partner

Adi Chikara is a Client Partner for Media & Entertainment industry at 3Pillar Global, helping companies compete in the digital economy. He works with 3Pillar team members throughout the world to build revenue-impacting digital products.

Prior to joining 3Pillar, Adi held key research and consulting roles in European Union-funded researches. In the private sector, Adi has served in various product & technical roles at Reuters and multiple Startups. When he is free from creating world-changing products you can find him at the local motor race tracks breaking lap records.

2 Responses to “Node-webkit & Developing HTML5 Desktop Apps”
  1. Erik Isaksen on

    Great article Adi! I’m looking forward to seeing that Node-webkit desktop application!

    Reply
  2. Avdhesh on

    Really good. I am searching that pre-build platform so that we can create extension similar like eclipse platform.

    Reply
Leave a Reply

Related Posts

How to Manage the “Need for Speed” Without Sacri... The pace of innovation today is faster than it has ever been. Customers are much more active and vocal thanks to social and mobile channels, and the c...
Determining the First Release The first thing you release needs to put the solution to your customer's most important problem in their hands. Deciding what the most important probl...
The Art of Building Rapid (and Valuable) Proofs of Concept Clients and stakeholders want results. They want assurances that their investment is well spent and they're building the right product. The software d...
Are You Doing Stuff or Creating Value? You can put a bunch of stickies on the wall, create tons of JIRA tickets, and commit lots of code, but are you creating value? Is the work your produc...
Costovation – Giving Your Customers Exactly What They ... On this episode of The Innovation Engine podcast, we delve into “cost-ovation,” or innovation that gives your customers exactly what they want – and n...