SlideShare a Scribd company logo
Web technologies for
desktop development

Darko Kukovec
@DarkoKukovec
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
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 30
node.js 0.10.18

● HTML5 + node.js
●
Distribution: Executable file
node-webkit

Getting started
Hello world!

•

What is needed
–
–
–

node-webkit
manifest
HTML, JS
Running & testing
● running
–
–

nw is in the Terminal path
nw .

● testing
–
–

Chromedriver
Selenium
Debugging
●
●
●
●

Chrome Developer Tools
DevTools jail
remote debugging
Sublime Text 2 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 the node-webkit package
●
Windows: copy /b nw.exe+app.nw app.exe
●
Linux: cat /usr/bin/nw app.nw > app && chmod +x app
OS X
●
Copy the app into the Contents/Resources folder
of the node-webkit 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
Tech stuff
Node.js changes
● global → window
● Chromium console instead of node.js
console
● conflicts
–

–

node.js require and require.js
●
Solution: rename window.require befor loading
the require.js
node.js crypto and Chromium crypto
Node.js modules
● builtin
–

require

● JavaScript
–
–

Local install
node_modules

● C/C++
–
–
–

nw-gyp
Platform dependent
Node-webkit version dependent
DOM changes
● iframe
–
–
–

Disabled security features
Enabled node.js
Developer Tools
Code protection
● v8 snapshot
–
–
–
–

Can hide a part (tens of KB) of the code into a binary
file
Platform dependent
Little slower than the regular code
Loaded before the regular code
Who uses
node-webkit

And what interesting features
Who uses node-webkit
● Infinum :)
–
–

–

3 projects (Windows and OSX)
Crypto
●
about 50x faster than Adobe Air
Optical media access
●
Detection and reading
Who uses node-webkit
● Gifrocket
–

Creating gif animations from videos

● Ambiance
–

code editor with modules (npm)

● Arduinoscope
–
–

oscilloscope for Arduino
Hardware access

● Everytime
–
–

video bookmarking
Communicates with the VLC player
What can be done?
● Node.js + Chromium
Thank you for your attention

More Related Content

PDF
Enjoy Writing Modern Desktop Application in JavaScript
PDF
Brig:Node.js + QML 華麗大冒險
PDF
Let s Enjoy Node.js
PPTX
Future of NodeJS
PDF
(C)NodeJS
PPTX
NodeJS
PDF
Fundamental of Node.JS - Internship Presentation - Week7
Enjoy Writing Modern Desktop Application in JavaScript
Brig:Node.js + QML 華麗大冒險
Let s Enjoy Node.js
Future of NodeJS
(C)NodeJS
NodeJS
Fundamental of Node.JS - Internship Presentation - Week7

What's hot (20)

KEY
Getting Started with MongoDB and Node.js
PDF
Require js + backbone, bower and grunt
PDF
Continuous Integration for front-end JavaScript
PDF
Web of Technologies
PDF
Windows azure and linux
PPTX
JS digest. February 2017
PPTX
Windows Azure loves OSS
PPT
Node.js Basics
PDF
Nodejs presentation
PDF
Production Ready Javascript With Grunt
PDF
Node js实践
PDF
Building a REST API with Node.js and MongoDB
PDF
Preprocessor Workflow with Grunt
PDF
Groovy a Scripting Language for Java
PPTX
Grunt to automate JS build
PDF
Node.js - Introduction and role in Frontend Development
KEY
Scripting with NodeJS
PDF
PDF
GruntJS + Wordpress
PDF
Deep dive-oz
Getting Started with MongoDB and Node.js
Require js + backbone, bower and grunt
Continuous Integration for front-end JavaScript
Web of Technologies
Windows azure and linux
JS digest. February 2017
Windows Azure loves OSS
Node.js Basics
Nodejs presentation
Production Ready Javascript With Grunt
Node js实践
Building a REST API with Node.js and MongoDB
Preprocessor Workflow with Grunt
Groovy a Scripting Language for Java
Grunt to automate JS build
Node.js - Introduction and role in Frontend Development
Scripting with NodeJS
GruntJS + Wordpress
Deep dive-oz
Ad

Viewers also liked (7)

PDF
Multiplatform hybrid development
PDF
Web technologies for desktop development @ berlinjs apps
PDF
Native Desktop App with Node.js Webkit (HTML, CSS & Javascript)
PDF
Web tehnologije u desktop developmentu
PDF
WebApp #3 : API
PDF
Making react part of something greater
PDF
The Outcome Economy
Multiplatform hybrid development
Web technologies for desktop development @ berlinjs apps
Native Desktop App with Node.js Webkit (HTML, CSS & Javascript)
Web tehnologije u desktop developmentu
WebApp #3 : API
Making react part of something greater
The Outcome Economy
Ad

Similar to Web technologies for desktop development (20)

ODP
Advanced Code Flow, Notes From the Field
PDF
Begining Android Development
PPT
Introducción y comandos en NodeJS slodte
PPT
Introduction to node.js aka NodeJS
PDF
An Introduction To Android
ODP
Informix Expedition Through Connectivity
PPTX
Gocd – Kubernetes/Nomad Continuous Deployment
PPTX
Salesforce Apex Hours : Node red for salesforce
PDF
Update on the open source browser space (16th GENIVI AMM)
PDF
Webinar - Unbox GitLab CI/CD
PPTX
Node js for beginners
PDF
Making your app soar without a container manifest
PDF
Kandroid for nhn_deview_20131013_v5_final
PPTX
Getting started with docker (2017)
PDF
Griffon for the Enterprise
PDF
Drone presentation
PPTX
Android Study Jam
PDF
Containerization using docker
PDF
Android presentation
PPTX
Radu vunvulea building and testing windows 8 metro style applications using ...
Advanced Code Flow, Notes From the Field
Begining Android Development
Introducción y comandos en NodeJS slodte
Introduction to node.js aka NodeJS
An Introduction To Android
Informix Expedition Through Connectivity
Gocd – Kubernetes/Nomad Continuous Deployment
Salesforce Apex Hours : Node red for salesforce
Update on the open source browser space (16th GENIVI AMM)
Webinar - Unbox GitLab CI/CD
Node js for beginners
Making your app soar without a container manifest
Kandroid for nhn_deview_20131013_v5_final
Getting started with docker (2017)
Griffon for the Enterprise
Drone presentation
Android Study Jam
Containerization using docker
Android presentation
Radu vunvulea building and testing windows 8 metro style applications using ...

Recently uploaded (20)

PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
cuic standard and advanced reporting.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
A Presentation on Artificial Intelligence
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Cloud computing and distributed systems.
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Reach Out and Touch Someone: Haptics and Empathic Computing
cuic standard and advanced reporting.pdf
20250228 LYD VKU AI Blended-Learning.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
A Presentation on Artificial Intelligence
Building Integrated photovoltaic BIPV_UPV.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Advanced methodologies resolving dimensionality complications for autism neur...
Cloud computing and distributed systems.
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Unlocking AI with Model Context Protocol (MCP)
The Rise and Fall of 3GPP – Time for a Sabbatical?
Dropbox Q2 2025 Financial Results & Investor Presentation
Mobile App Security Testing_ A Comprehensive Guide.pdf
Understanding_Digital_Forensics_Presentation.pptx
Bridging biosciences and deep learning for revolutionary discoveries: a compr...

Web technologies for desktop development