Каковы функциональные различия между NW.js, скобки-оболочка и Электрон?


теперь, когда TideSDK фактически мертв, я искал альтернативные "обертки" для запуска приложений HTML/CSS/JS в качестве автономных настольных приложений. Три жизнеспособных варианта, с которыми я столкнулся до сих пор, являются NW.js (ранее node-webkit),скобках-оболочки и Электрон (ранее атома-оболочки).

проблема в том, что не представляется достаточно полное сопоставление трех с точки зрения набора функций, совместимость и т. д. Я надеюсь превратить это в более или менее каноническую нить о (объективных) различиях между тремя, в частности, в отношении:

  • поддержка платформы; операционные системы, зависимости и др.
  • поддержка языковых функций, что касается HTML5, CSS3 и JavaScript. Подумайте о таких вещах, как " работает ли видео HTML5, и если да, то какие кодеки доступно?"
  • нестандартные дополнительные функции, такие как значки в трее, всплывающие уведомления и отображаемые ОС строки меню.
  • расширения; например. возможность "подключить" собственный код, поговорить с узлом.JS и так далее.
  • архитектура; в частности, архитектурные различия, которые влияют на ежедневное использование в качестве разработчика.
  • отладка; включенные средства разработки, совместимость с обычно используемыми инструментами, такими как node-inspector и т. д.
  • ... и так далее.

каковы объективные, технические различия, которые имеют значение при выборе между ними в качестве разработчика приложений?

5 145

5 ответов:

Я сделал подобное исследование около двух месяцев назад, и в конце концов я пошел с node-webkit. Самый большой плюс на node-webkit-это узел.js и npm. Управление пакетами npm действительно приятно, и узел хорошо сделал доступ к файловой системе.

скобки-оболочка выглядела интересной, но, кроме хорошей IDE, я действительно не понял, что сделало ее такой же хорошей или лучше, чем остальные. Они очень ясны, что "скобки-оболочка поддерживается только для использования проектом скобок", что крики убегают ко мне.

https://github.com/adobe/brackets-shell#overview

Atom-shell, похоже, недавно активен, но похоже, что скобки в том, что они действительно пишут и редактор/IDE, который просто прикреплен к среде выполнения webkit. Он также построен на вершине узла.js. У этого есть недостаток-трудно искать вещи в Интернете, не напоминая о вашей средней школе химии.

Я действительно не хочу новый редактор, и у большинства программистов уже есть свой любимый. Для реальной разработки приложений они в значительной степени работают одинаково, и должны, так как все они используют webkit. Вы в основном пишете 90-95% этого, как веб-сайт, а затем занимаетесь родными частями и некоторыми конфигурациями.

эти вещи верны для всех трех из них платформ - работает на Windows, Mac и Linux поддержка языков-HTML5, CSS3 и Javascript: поскольку они запускают javascript, вы можете скачать и запустить почти любой библиотека/фреймворк, который вы хотите.

большой оговоркой на webkit является поддержка кодеков. Как правило, у вас будут проблемы с несвободными видеокодеками, если вы не перестроите dll/so для их поддержки. Например, поставляемый узел-webkit не будет воспроизводить видео mp4.

Я играл с Атом-Оболочки за последние несколько дней, и я люблю его до сих пор.

лучшая часть об этом является то, что он поддерживается GitHub.. что должно позволить вам поселиться в платформе на длительный срок, особенно если она получает большое количество последователей. Это также стало возможным с помощью прямого узла.улучшения js любезно предоставлены контрактом с StrongLoop, который является основным узлом.автор Яш (они утверждают, что работают еще узел.JS core developers чем любая другая компания, даже Joyent).

Я также нашел, что это довольно удобно начать. Мне потребовалось около дня, чтобы изучить структуру и получить первое доказательство работы концепции. Очень круто.


Пуля Точек:

  • поддержка платформы: Windows, Linux, Mac OSX (Подробнее Здесь)
  • языковая поддержка: HTML5, CSS3, JS через Хромий - до сих пор никаких проблем, но я не тестировал видео специально.
  • Функции: родные меню приложений, поддержка панели задач, глобальные горячие клавиши, поддержка обработчика протокола (что я видел до сих пор)
  • расширяемость: Отличный Узел.интеграция js, как клиент, так и сервер могут "требовать" узел.модули js и аборигены. Я также успешно протестировал беседке библиотеки (включая jQuery) без вопрос.
  • архитектура: покрыты другими точками, но в целом его очень гладко.

обновление (11/25/14): Я еще не нашел прецедент для Atom-Shell в любом официальном качестве, но я использовал его для создания нескольких небольших приложений для собственного использования, самым сложным из которых является приложение, которое извлекает мои журналы времени из моего программного обеспечения PM и создает счета Paypal.

мое мнение о платформе остается положительным. Это довольно потрясающий.

на мое время выставления счетов приложение я успешно принес в Bootstrap 3-х годов Шаблон Примера Приборной Панели и несколько узлов, модулей (Блюберд, система PayPal СДК, умение работать в команде ТЧ-клиент) для создания мягко сложное приложение. Это заняло у меня несколько дней и делает свою работу хорошо.

Я действительно не могу придумать ничего отрицательного, чтобы сказать об Atom-Shell, его твердом, стабильном, быстром и простом в кодировании. Надеюсь, это кому-то поможет.

кроме того, полностью поддерживает веб-стандарты, NW.js поддерживает список нестандартных функций для разработки собственных приложений, включая:

есть намного больше, чтобы посмотреть в вики, включая меню, поднос и т. д.

Я уже некоторое время работаю с brackets-shell, вот некоторые из моих выводов:

  • brackets-оболочка в основном разрабатывается как оболочка под проектом IDE brackets, но проект может запускать любое веб-приложение. Вам просто нужно указать его на свою собственную html-страницу. Клинт Берри написал отличный учебник о том, как сделать именно это:http://clintberry.com/2013/html5-desktop-apps-with-brackets-shell/
  • проект поддерживается Adobe и имеет много активности
  • документация может быть лучше

  • поддержка платформы они поддерживают Windows, Mac и Linux. Также можно создать пакет установщика. Я только тестировал его на Win и Mac, он отлично работает.

  • поддерживает функцию HTML5 и CSS3, JS-файлы. Html5 Видео не работает из коробки, но очень легко включить (по умолчанию ffmpegsumo.DLL не копируется в установщик, если вы измените скрипт для его копирования будет работать).
  • собственные функции строка меню, 'Открыть файл с', доступ к файловой системе. Я не использую ни один из них, так как все, что мне нужно, это связь с процессом узла.
  • расширения nodejs встроен, и вы можете общаться с узлом из вашего веб-приложения. Таким образом, вы можете использовать узел для доступа к файловой системе и т. д.
  • архитектура проект хорошо настроен, сохраняя хорошее разделение между проектом оболочки и вашим собственным веб-приложением, работающим внутри него. В вашем собственном приложении доступен глобальный объект appshell, который дает вам доступ к функциям скобок (доступ к файловой системе, связь с процессом узла, ...).

одна вещь, чтобы отметить (если вы заботитесь), является то, что электрон официально не поддерживает Windows Vista. Доля рынка Vista составляет около на полпути между OSX 10.9 и 10.10 (оба из которых полно поддержаны электроном). Vista также по-прежнему поддерживается Microsoft до 2017 года.

NW.js отлично работает в Vista, а также OSX 10.9+. СЗ.js работает на Ubuntu, Debian, Zorin, Manjaro, Arch и большинстве других ОС Linux на базе Debian. Electron отказался от PR для исправления Ubuntu конкретные ошибки на их платформе, которая касается.

NW.js тоже работает в XP. В настоящее время 18% рынка по-прежнему находится на XP. Поэтому, если вы настольное приложение более общего назначения или хотите иметь доступ к поздним усыновителям все еще на XP, вам, вероятно, лучше с NW.js (0.14.7) as Electron поддерживает только Win 7 и выше.

Если вы используете NW.js 0.12.3 вы также можете поддерживать OSX 10.6+ и очень старые версии ОС Linux на базе Debian, такие как Ubuntu и Win XP+. Это рекомендуется делать специальные сборки только для этих устаревших систем, хотя и использовать более новые версии NW.js для новых ОС.