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

в 6:23, , рубрики: chromium, Google Chrome, GUI, javascript, node-webkit, node.js, nodejs, веб-разработчики, кроссплатформенная разработка, ништяки

Node.js + Chromium = node webkit: ещё более перспективный вариант второго шага эволюции веборазработчикаПредисловие от переводчика.  В постскриптуме к моей вчерашней блогозаписи я указал, что 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 (слайды).

Достоинства

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

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

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

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

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

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

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

Создайте 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, чтобы открылся.

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

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

Сообщество

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

Лицензия

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


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

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

Автор: Mithgol

Поделиться

* - обязательные к заполнению поля