- PVSM.RU - https://www.pvsm.ru -

Node.js + Chromium = node-webkit: ещё более перспективный вариант второго шага эволюции веборазработчика

Node.js + Chromium = node webkit: ещё более перспективный вариант второго шага эволюции веборазработчикаПредисловие от переводчика.  В постскриптуме к моей вчерашней блогозаписи [1] я указал, что AppJS — это не единственное такое средство, которое позволяет создавать приложения с GUI (графическим интерфейсом пользователя) при помощи вебоподобных методов разработки на языках HTML, CSS и JavaScript с использованием движка Node.js. Естественной иллюстрацией к этому постскриптуму является нижеследующий перевод гитхабовской страницы проекта node-webkit. И сразу скажу: я предвижу заранее, что непредвзятый взгляд ваш сочтёт node-webkit ещё более удобным и развитым средством, чем AppJS.


Введение

node-webkit — среда для запуска приложений, основанная на Chromium и Node.js. При помощи node-webkit можно создавать традиционные графические приложения посредством HTML и JavaScript. Также node-webkit позволяет вызывать модули Node.js прямо из DOM и тем обеспечивает новый способ создания таких приложений и употребления веботехнологий в них.

node-webkit создан и разрабатывается в Интеловском Центре технологий с открытым исходным кодом (Intel Open Source Technology Center).

Введение в node-webkit [2] (слайды).

Достоинства

  • Приложения создаются при помощи современных HTML5, CSS3, JS и WebGL.
     
  • Полная поддержка API Node.js [3] и созданных другими разработчиками модулей [4].
     
  • Вызов API Node.js без потерь в производительности.
     
  • Лёгкость упаковки и распространения приложений.

Файлы для скачивания

Примечания к выпуску v0.2.6 [5]

Сборки версии v0.2.6:

Ищете более старые версии? [10]

Демонстрационные приложения:

Руководство по быстрому началу работы

Создайте index.html:

<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
Мы используем Node.js версии <script>document.write(process.version)</script>.
</body>
</html>

Создайте package.json:

{
  "name": "nw-demo",
  "main": "index.html"
}

Упакуйте index.html и package.json в ZIP-архив, а затем переименуйте его в app.nw:

app.nw
|-- package.json
`-- index.html

Скачайте сборку node-webkit для вашей системы и используйте её для открытия файла app.nw:

$ ./nw app.nw

Примечание:  в Windows можно перетащить app.nw и кинуть на nw.exe, чтобы открылся.

Читайте дальнейшие сведения о написании, упаковке и запуске приложений:

Ещё больше сведений изложено в нашей вики [15].

Сообщество

В качестве списка рассылки мы используем node-webkit на Google Groups [16], подписывайтесь при помощи node-webkit+subscribe@googlegroups.com [17].

Лицензия

node-webkit распространяется по Лицензии MIT (см. прилагаемый файл LICENSE [18]).


Послесловие переводчика.  Итак, вот список заметных достоинств node-webkit по сравнению с тем проектом AppJS, о котором я сообщил вчера [1]:

  • Более непосредственный стиль обращения к API Node.js: в вышеизложенном примере node-webkit использует process.version, тогда как в AppJS пришлось бы использовать window.node.process.version.
     
  • AppJS не издаёт звук [19] при помощи тега <audio>, тогда как node-webkit не имеет этой проблемы.
     
  • В node-webkit есть поддержка ZIP-упаковки приложений [14] и даже пристыковывания их в хвост к файлу движка. AppJS не имеет (ещё) ничего подобного.
     
  • Документация node-webkit более или менее подробна (вики [15] особенно). Документация AppJS почти совершенно отсутствует.
     
  • Манифест приложения [20] node-webkit позволяет ограничить минимальную и максимальную ширину окна приложения. Средствами AppJS этого не достигнуть (по крайней мере, так просто).
     
  • node-webkit поддерживает значок и меню в системном лотке [21], а AppJS — (ещё) нет [22]. То же самое можно сказать и о некоторых других ништяках (получение имён файлов [23], управление меню [24], доступ к буферу обмена [25]).
     
  • Как сказано на Гитхабе, создание и разработка node-webkit идёт при некоторой поддержке Intel.

Автор: Mithgol


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/16311

Ссылки в тексте:

[1] вчерашней блогозаписи: http://habrahabr.ru/post/153013/

[2] Введение в node-webkit: https://speakerdeck.com/u/zcbenz/p/node-webkit-app-runtime-based-on-chromium-and-node-dot-js

[3] API Node.js: http://nodejs.org/api/

[4] модулей: https://npmjs.org/

[5] Примечания к выпуску v0.2.6: https://groups.google.com/forum/?fromgroups=#!topic/node-webkit/dIYKeL6fPRM

[6] 32bit: http://s3.amazonaws.com/node-webkit/nw_release_linux_x32.tar.gz

[7] 64bit: https://s3.amazonaws.com/node-webkit/nw_release_linux_x64.tar.gz

[8] win32: http://s3.amazonaws.com/node-webkit/nw_release_win32.zip

[9] 32bit: http://s3.amazonaws.com/node-webkit/nw_release_mac.zip

[10] Ищете более старые версии?: https://github.com/rogerwang/node-webkit/wiki/Downloads-of-old-versions

[11] Hello World: http://s3.amazonaws.com/node-webkit/hello_world2.nw

[12] Файловый менеджер: https://github.com/zcbenz/nw-file-explorer

[13] Как запускать приложения: https://github.com/rogerwang/node-webkit/wiki/How-to-run-apps

[14] Как упаковывать и распространять приложения: https://github.com/rogerwang/node-webkit/wiki/How-to-package-and-distribute-your-apps

[15] в нашей вики: https://github.com/rogerwang/node-webkit/wiki

[16] node-webkit на Google Groups: http://groups.google.com/group/node-webkit

[17] node-webkit+subscribe@googlegroups.com: mailto:node-webkit+subscribe@googlegroups.com

[18] LICENSE: https://github.com/rogerwang/node-webkit/blob/master/LICENSE

[19] не издаёт звук: https://github.com/appjs/appjs/issues/170

[20] Манифест приложения: https://github.com/rogerwang/node-webkit/wiki/Manifest-format

[21] значок и меню в системном лотке: https://github.com/rogerwang/node-webkit/wiki/Tray

[22] нет: https://github.com/appjs/appjs/issues/50

[23] получение имён файлов: https://github.com/rogerwang/node-webkit/wiki/File-dialogs

[24] управление меню: https://github.com/rogerwang/node-webkit/wiki/Menu

[25] доступ к буферу обмена: https://github.com/rogerwang/node-webkit/wiki/Clipboard