18 December 2012

Новшества node-webkit версии 0.3.6

Node.JSTypeScript
Roger Wang 14 декабря объявил о выходе новой версии движка node-webkit созданного в недрах Intel Open Source Technology Center мощного сочетания WebKit и Node.js, позволяющего создавать кросс-платформенные графические приложения методом веборазработки на языках HTML, CSS и JavaScript.

Новая версия имеет номер 0.3.6 и выглядит вот как:

[скриншот]

По сравнению с версией 0.3.0, которую я обозревал в октябре, за последние два месяца случались только небольшие изменения, заслуживающие не более чем последней цифры в номере версии node-webkit. Зато изменений этих накопилось порядочно.

Прежде всего нетрудно заметить, что окна утратили «округлый» и «синенький» вид, похожий на Google Chrome, а вместо того вновь обрели общесистемный вид и форму. (На иллюстрации я привожу вид окна в Windows XP.) Также вернулся значок в заголовке окна. (Для сегодняшней демонстрации я поместил туда значок сайта Хабрахабра.)

Вот список остальных новшеств этой версии (по сравнению с 0.3.0):

  • Возможен режим kiosk, в котором node-webkit распахивается на весь экран и не может быть закрыт при помощи мыши. (Подходит для создания информационных терминалов.)
     
  • Обеспечивается автозапуск джаваскрипта, упомянутого в параметре node-main в файле package.json. (Скрипт запускается в контексте движка Node — а не в WebKit, как было бы по событию load, например. Это удобно для инициализации модулей Node.)
     
  • Появился API управления приложением. (Можно считать параметры командной строки, можно сразу закрыть все окна приложения.)
     
  • Поддерживается элемент <datalist> а значит, появляются подсказки для автозаполнения текстовых полей по мере печатания текста.
     
  • Создано средство nw-gyp вариант node-gyp, который служит для сборки двоичного кода неджаваскриптовых модулей для node-webkit таким же образом, каким node-gyp собирает их для Node. (Это необходимо, так как ABI у Node и node-webkit различаются.)
     
  • Можно помещать элементы в меню окна. (Ещё один привычный элемент графического интерфейса пользователя.)
     
  • Запуск консольных команд под Windows не приводит к появлению видимых окон консоли. (Как правило, вызывались они лишь ненадолго — и оттого их подмигивание не было никому приятно или полезно.)
     
  • Можно использовать кодеки, защищённые патентом, если снабдить node-webkit собственной сборкою libffmpeg. (Но в комплекте с node-webkit продолжает поставляться ограниченная версия.)
     
  • Окна могут предотвращать или откладывать своё закрытие, перехватывая и обрабатывая событие close.
     
  • Авторы приложений могут прикладывать к ним (в подпапку plugins) некоторый набор браузерных плагинов (NPAPI), который станет использоваться наряду с общесистемным.
     
  • Объект window стал доступен в контексте Node под тем же именем.
     
  • В отладчике стал виден исходный код скриптов из контекста Node.
     
  • Окну можно придать свойство «всегда наверху», чтобы оно перекрывало другие окна приложений.
     
  • Появилась поддержка source maps, то есть возможность видеть в отладчике код приложений на других языках, компилируемых в JavaScript (например, Clojure или TypeScript), если их компилятор это также поддерживает.
     
  • Появилась поддержка Pointer Lock API, то есть возможность удержания мыши в приложении и реагирования на её относительное движение (наподобие 3D-стрелялок), а не на её положение.
     
  • Теперь cookies сохраняются на компьютере после завершения приложения (между запусками).
     
  • Появилась кнопка полного перезапуска приложения его разработчиком (в отладочных целях). Одновременно перезапускается и код для Node, и веботехнологическая часть (HTML, CSS, JS) в WebKit.
     
  • Запуск nw.exe без параметров приводит к загрузке package.json (и приложения) из той же папки, в которой node-webkit лежит.

Как видите, за два месяца появилось более полутора десятков полезных новшеств, каждое из которых кого-нибудь да порадует, потому что упрощает жизнь.
Tags:Node.jsNodeJSnode-webkitWebKitIntelGUIкроссплатформенная разработказначокиконкаkiosk modeкомандная строкаавтоподстановкаплагиныNPAPIотладчикотладка JavaScriptsource mapsClojureTypeScriptPointer Lock APIcookiesперезапуск
Hubs: Node.JS TypeScript
+35
14.8k 105
Comments 24