SlideShare a Scribd company logo
nw.js
hello@kirilldanilov.com github.com/broderix
введение в кросс-платформенные
десктопные приложения на javascript
(node-webkit)
Я хочу свой текстовый редактор!
2
Существующие решения
1. Mono, Unity3D - C#, .Net
2. Qt/Gtk - C/C++, js, python, php, bash
3. tidesdk.org - js, python, php, ruby
4. appjs.com -js
5. Brackets Shell - js
6. nw.js - js
3
Что такое nw.js
<html>
<body>
<h1>Content</h1>
</body>
</html>
​
nw.js
4
node-webkit
История проекта
io.js-chromium
nw.js
5
Установка и запуск
$ npm install -g nw
$ nw .
$ npm install -g generator-node-webkit
$ yo node-webkit
6
Обзор API
● Window
● Menu
● Tray
● Shell
● Snapshots
● HTML5 Stack: Notifications W3C, Audio, WebGL, etc
● Platform specific: setBadge, requestAttention, Tile
7
8
Как работает nw.js
require
Window Object
Render Thread
process
global ...
console document
alert ...
Контекст
9
Получаем доступ из io.js в chromium
​// In index.html
<script>
global.foo = function(){
console.log('Hello, moscowjs');
};
global.label = {text: 'label'};
require('mymodule.js');
</script>
10
// In mymodule.js
global.foo();
label.text = 'Hello, nw.js';
Сборка
npm install grunt-node-webkit-builder
grunt build
npm install appdmg grunt-appdmg
grunt appdmg
www.jrsoftware.org/isinfo.php
osx
windows
11
Обновление приложения
● проверит версию
● скачает архив (js, html, css, img)
● распакует архив
● сообщит о результатах
npm install nw-updater
12
Пример
$ echo '
{
"name": "MoscowJS",
"main": "http://moscowjs.ru",
"window": {
"show": true,
"toolbar": false
}
}' > package.json
$ ​nw .
13
Где использовать?
● обертка сайта
● простые игры
● хранение больших данных
● фоновые процессы
● ежедневные операции
14
Кто использует nw.js
1. Popcorn Time
2. Intel® XDK
3. DebugGap
4. Tinder++
5. Mongo Management Studio
6. etc.
15
Спасибо!
hello@kirilldanilov.com
github.com/broderix
twitter.com/broderix
https://github.com/nwjs/nw.js

More Related Content

PDF
Desktop app based on node js and html5
PPTX
Secr15 разработка кросс платформенных десктоп приложений nw.js
PPTX
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
PDF
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
PDF
Ci на базе docker
PDF
Современный фронтенд за 30 минут.
PDF
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
PDF
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов
Desktop app based on node js and html5
Secr15 разработка кросс платформенных десктоп приложений nw.js
nw.js введение в кросс-платформенные десктопные приложения на javascript (mo...
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
Ci на базе docker
Современный фронтенд за 30 минут.
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Компонентная разработка на Stylus, Jade, Typescript - Леонид Ширманов

What's hot (20)

PDF
Фронтенд разработка без боли
PPTX
WebdriverIO + Puppeteer. Double gun – double fun
PPTX
Redis varnish js
PDF
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
PDF
ChocoDevDay — Grunt - Advanced Tips (NIkita Bayev)
PDF
Применение графических ускорителей в браузерах
PDF
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
PDF
Современный фронтенд -- как не утонуть в море хайпа?
PDF
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
PDF
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
PDF
Скриншоты как сервис
PDF
Сборка web проекта с использованием Grunt и Node.js
PDF
Оптимизация JavaScript в Drupal
PDF
Телепортация MODX - MODX Meetup Minsk
PPTX
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
PDF
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
PDF
Разработка API для большого, нагруженного сервиса
PDF
Development and deployment freedom - MODX Meetup Minsk
PPTX
State of the Standardized Web. YaC 2014
PPT
Drupal Do
Фронтенд разработка без боли
WebdriverIO + Puppeteer. Double gun – double fun
Redis varnish js
Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров
ChocoDevDay — Grunt - Advanced Tips (NIkita Bayev)
Применение графических ускорителей в браузерах
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
Современный фронтенд -- как не утонуть в море хайпа?
Анатолий Полицын, агентство интернет-маркетинга «Синапс» — Корпоративный хост...
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
Скриншоты как сервис
Сборка web проекта с использованием Grunt и Node.js
Оптимизация JavaScript в Drupal
Телепортация MODX - MODX Meetup Minsk
Игорь Лабутин «Продвинутое использование NuGet и MSBuild»
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Разработка API для большого, нагруженного сервиса
Development and deployment freedom - MODX Meetup Minsk
State of the Standardized Web. YaC 2014
Drupal Do
Ad

More from MoscowJS (20)

PDF
Александр Русаков - TypeScript 2 in action
PDF
Виктор Розаев - Как не сломать обратную совместимость в Public API
PDF
Favicon на стероидах
PDF
E2E-тестирование мобильных приложений
PDF
Reliable DOM testing with browser-monkey
PDF
Basis.js - Production Ready SPA Framework
PDF
Контекст в React, Николай Надоричев, MoscowJS 31
PDF
Верстка Canvas, Алексей Охрименко, MoscowJS 31
PDF
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
PDF
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
PDF
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
PDF
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
PDF
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
PDF
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
PDF
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
PDF
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
PDF
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
PDF
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
PDF
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
PDF
"Доклад не про React", Антон Виноградов, MoscowJS 27
Александр Русаков - TypeScript 2 in action
Виктор Розаев - Как не сломать обратную совместимость в Public API
Favicon на стероидах
E2E-тестирование мобильных приложений
Reliable DOM testing with browser-monkey
Basis.js - Production Ready SPA Framework
Контекст в React, Николай Надоричев, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
"Доклад не про React", Антон Виноградов, MoscowJS 27
Ad

"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", Кирилл Данилов, MoscowJS 20