Каковы функциональные различия между NW.js, Brackets-Shell и Electron?

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

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

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

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

Ответ 1

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

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

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

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

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

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

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

Ответ 2

Я играл с Atom-Shell в течение последних нескольких дней, и я люблю его до сих пор.

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

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


Баллы:

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

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

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

В мое приложение для выставления счетов за подключение к Интернету я успешно привел в пример Bootstrap 3 шаблон шаблона панели и несколько модулей node (bluebird, Paypal SDK, Team PM PM) для создания мягко сложное приложение. Это заняло у меня несколько дней и хорошо работает.

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

Ответ 3

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

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

Ответ 4

Я работаю с скобками-оболочкой в ​​течение некоторого времени, вот некоторые из моих выводов:

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

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

  • поддержка функций html5, css3, js. Видео Html5 не работает из коробки, но очень легко включить (по умолчанию ffmpegsumo.dll не копируется в установщик, если вы измените script, чтобы скопировать его, он будет работать).
  • встроенные функции панель меню, "открыть файл с", доступ к файловой системе. Я не использую ни одно из них, поскольку все, что мне нужно, это связь с процессом node.
  • расширяемость встроена nodejs, и вы можете общаться с node из своего веб-приложения. Таким образом, вы можете использовать node для доступа к файловой системе и т.д.
  • архитектура Проект хорошо настроен, сохраняя отличное разделение между проектом оболочки и собственным веб-приложением, запущенным внутри него. В вашем собственном приложении доступен глобальный объект apphell, который дает вам доступ к функциям скобок (доступ к файловой системе, связь с процессом node,...).

Ответ 5

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

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

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

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