SlideShare a Scribd company logo
Web technologies for
desktop development
Darko Kukovec
Hybrid apps
• Web technologies + native wrapper!
• Mobile hybrid apps!
• PhoneGap!
• Custom!
• Desktop
Why hybrid desktop
applications?
Multi-platform development
• Java!
• .NET + mono!
• QT!
• Hybrid app
You already know JavaScript
(and HTML and CSS)
Wrappers
Adobe Air
• Slow!
• Limited developer tools!
• HTML5 + ActionScript!
• Distribution: Executable file
QT
• Custom wrapper!
• HTML5 + native code!
• C++!
• Python!
• JavaScript!
• Distribution: Executable file
Chrome Apps
• HTML5 + Chrome APIs!
• 50+ APIs!
• Distribution: Chrome Web Store
app.js
• webkit + node.js!
• Slow development!
• HTML5 + node.js!
• Distribution: Executable file
node-webkit
• Chromium + node.js!
• Fast development (Intel)!
• Chromium 32!
• node.js 0.11.9!
• HTML5 + node.js!
• Distribution: Executable file
brackets-shell
• HTML5 + some v8 extensions (e.g. file access)!
• Made by Adobe for the Brackets code editor!
• “Note: The brackets-shell is only maintained for use
by the Brackets project.”!
• Distribution: Executable file
TideSDK
• HTML5 + PHP/Ruby/Python!
• Distribution: Executable file
node-webkit
Hello world!
• What you need:!
• node-webkit!
• manifest (package.json)!
• HTML, JS
Running & testing
• Running!
• If nw is in the Terminal path: nw .!
• alias nw='open -a node-webkit'
• Testing!
• Chromedriver!
• Selenium
Debugging
• Chrome Dev Tools!
• DevTools Jail!
• Remote debugging!
• Sublime Text console
Packaging & distribution
• package.nw or package.json in the same
folder as the node-webkit executable!
• Packaging into the executable file!
• Windows and Linux - make a
package.nw file and run one command
from the console!
• OS X - copy the package to Content/
Resources/app.nw inside of the app
Native elements
• File dialogs!
• Files and folders!
• Opening URLs in the default browser!
• Opening files in the default app or in the file manager!
• Menu bar / status bar!
• Clipboard access!
• Kiosk mode!
• Frameless mode
Tech stuff
Node.js changes
• global

window!

• Chromium console instead of the node.js console!
• Conflicts!
• node.js require and RequireJS!
• underscore
Node.js modules
• Builtin!
• require!
• JavaScript!
• Local install (node_modules)!
• require!
• C/C++!
• nw-gyp!
• Platform dependent!
• node-webkit version dependent
DOM changes
• iframe!
• Disable security!
• Node.js!
• Top!
• DevTools Jail
Code protection
• v8 snapshot!
• Can hide a part (tens of KB) of the code into a
binary file!
• Platform & node-webkit version dependent!
• Little slower, loaded at startup
Our node-webkit
experience
My code is
compiling
Infinum
• Three node-webkit project in the last year!
• Two kiosk mode apps for Windows!
• Desktop app for Windows and OSX
Crypto
• Decrypting about 50x faster than Adobe Air!
• Tens of ms instead of a few seconds per photo
Optical media
• Detection!
• Windows: periodically check all the letters!
• OSX: Watch /Volumes!
• File access!
• fs module
Auto update
• Not supported out of the box!
• Our own update detection & downloading!
• Windows: Installation wizard is downloaded!
• OSX: All the app files can be replaced while the app
is running
What else is
node-webkit used for
•

Gifrocket
•

•

Ambiance
•

•

Creating gif animations
from videos

Code editor with support
for modules (npm)

Arduinoscope
•

Osciloscope for Arduino

•

Hardware access
What is possible
Node.js + Chromium
• Atwood’s Law:!
• “any application that can be written in JavaScript,
will eventually be written in JavaScript.”!
• http://www.reddit.com/r/atwoodslaw/
Node.js + Chromium
Thank you!

Any questions, Dave?

More Related Content

PDF
Blazor - The New Silverlight?
PDF
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
PPTX
Cross-Platform Development
PPTX
WordPress Development Environments
PDF
Starting from scratch in 2017
PDF
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
PDF
JavaScript: Past, Present, Future
PDF
Why use Go for web development?
Blazor - The New Silverlight?
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
Cross-Platform Development
WordPress Development Environments
Starting from scratch in 2017
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
JavaScript: Past, Present, Future
Why use Go for web development?

What's hot (20)

PPTX
CI/CD for Asp.net core apps using Docker
PDF
Cloud App Develop
PPT
Php Zen with Zend
PPTX
Engage 2019 Software documentation is fun if you have the right tools: Introd...
PPTX
React Native
PDF
Engage 2019: Introduction to Node-Red
PDF
Afrimadoni the power of docker
PDF
How to create/improve OSS products and its community
PPTX
PHP Indonesia - Nodejs Web Development
PPTX
NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
POTX
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
PPTX
The busy developers guide to Docker
PDF
Multiplatform hybrid development
PPTX
Coding for the cloud - development of modern web applications
PDF
Running AWS Locally
PDF
Use all the buzzwords
PPT
Web assembly overview by Mikhail Sorokovsky
PPTX
CubeJS: eBay’s Node.js Adoption Journey
PDF
SGCE 2015 REST APIs
PDF
Building our App with React Native
CI/CD for Asp.net core apps using Docker
Cloud App Develop
Php Zen with Zend
Engage 2019 Software documentation is fun if you have the right tools: Introd...
React Native
Engage 2019: Introduction to Node-Red
Afrimadoni the power of docker
How to create/improve OSS products and its community
PHP Indonesia - Nodejs Web Development
NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
Deploying .net core apps to Docker - dotnetConf Local Bengaluru
The busy developers guide to Docker
Multiplatform hybrid development
Coding for the cloud - development of modern web applications
Running AWS Locally
Use all the buzzwords
Web assembly overview by Mikhail Sorokovsky
CubeJS: eBay’s Node.js Adoption Journey
SGCE 2015 REST APIs
Building our App with React Native
Ad

Viewers also liked (6)

PPTX
Javascript Animation with Canvas - Gregory Starr 2015
PDF
Javascript FTW
PDF
PHP 7 new engine
PPT
How PHP Works ?
PPTX
Javascript
PDF
AngularJS - What is it & Why is it awesome ? (with demos)
Javascript Animation with Canvas - Gregory Starr 2015
Javascript FTW
PHP 7 new engine
How PHP Works ?
Javascript
AngularJS - What is it & Why is it awesome ? (with demos)
Ad

Similar to Web technologies for desktop development @ berlinjs apps (20)

PDF
Web technologies for desktop development
PDF
Desktop apps with node webkit
PPTX
JavaScript on the Desktop
PDF
Desarrollo de apps multiplataforma con tecnologías web
PDF
Sg conference multiplatform_apps_adam_stanley
PDF
Native Desktop App with Node.js Webkit (HTML, CSS & Javascript)
PDF
Amsterdam.js talk: node webkit
PPTX
Mobile Web Apps and the Intel® XDK
PDF
HTML5 Technical Executive Summary
PPTX
Front End Development | Introduction
ODP
Javascript Update May 2013
KEY
Notes (2012-06-08)
PPTX
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
PDF
HTML5 and Google Chrome - DevFest09
PDF
Real time web
PDF
Node.js Web Development .pdf
PPTX
Mobile Web Apps
ODP
Riereta Node.js session 3 (with notes)
PPTX
WebKit, why it matters?
PPTX
Web technologies for desktop development
Desktop apps with node webkit
JavaScript on the Desktop
Desarrollo de apps multiplataforma con tecnologías web
Sg conference multiplatform_apps_adam_stanley
Native Desktop App with Node.js Webkit (HTML, CSS & Javascript)
Amsterdam.js talk: node webkit
Mobile Web Apps and the Intel® XDK
HTML5 Technical Executive Summary
Front End Development | Introduction
Javascript Update May 2013
Notes (2012-06-08)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
HTML5 and Google Chrome - DevFest09
Real time web
Node.js Web Development .pdf
Mobile Web Apps
Riereta Node.js session 3 (with notes)
WebKit, why it matters?

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Cloud computing and distributed systems.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
cuic standard and advanced reporting.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPT
Teaching material agriculture food technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Approach and Philosophy of On baking technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?
Building Integrated photovoltaic BIPV_UPV.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Cloud computing and distributed systems.
MIND Revenue Release Quarter 2 2025 Press Release
cuic standard and advanced reporting.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Teaching material agriculture food technology
Unlocking AI with Model Context Protocol (MCP)
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Chapter 3 Spatial Domain Image Processing.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Approach and Philosophy of On baking technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Review of recent advances in non-invasive hemoglobin estimation
20250228 LYD VKU AI Blended-Learning.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Web technologies for desktop development @ berlinjs apps