"nw.js: введение в кросс-платформенные декстопные...
TRANSCRIPT
nw.js
[email protected] github.com/broderix
введение в кросс-платформенные десктопные приложения на javascript
(node-webkit)
Я хочу свой текстовый редактор!
2
Существующие решения
1. Mono, Unity3D - C#, .Net2. Qt/Gtk - C/C++, js, python, php, bash3. tidesdk.org - js, python, php, ruby4. appjs.com -js5. Brackets Shell - js6. 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.jsglobal.foo();label.text = 'Hello, nw.js';
Сборка
npm install grunt-node-webkit-buildergrunt build
npm install appdmg grunt-appdmggrunt 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 Time2. Intel® XDK3. DebugGap4. Tinder++5. Mongo Management Studio6. etc.
15