Каковы функциональные различия между NW.js, скобки-оболочка и Электрон?
теперь, когда TideSDK фактически мертв, я искал альтернативные "обертки" для запуска приложений HTML/CSS/JS в качестве автономных настольных приложений. Три жизнеспособных варианта, с которыми я столкнулся до сих пор, являются NW.js (ранее node-webkit),скобках-оболочки и Электрон (ранее атома-оболочки).
проблема в том, что не представляется достаточно полное сопоставление трех с точки зрения набора функций, совместимость и т. д. Я надеюсь превратить это в более или менее каноническую нить о (объективных) различиях между тремя, в частности, в отношении:
- поддержка платформы; операционные системы, зависимости и др.
- поддержка языковых функций, что касается HTML5, CSS3 и JavaScript. Подумайте о таких вещах, как " работает ли видео HTML5, и если да, то какие кодеки доступно?"
- нестандартные дополнительные функции, такие как значки в трее, всплывающие уведомления и отображаемые ОС строки меню.
- расширения; например. возможность "подключить" собственный код, поговорить с узлом.JS и так далее.
- архитектура; в частности, архитектурные различия, которые влияют на ежедневное использование в качестве разработчика.
-
отладка; включенные средства разработки, совместимость с обычно используемыми инструментами, такими как
node-inspector
и т. д. - ... и так далее.
каковы объективные, технические различия, которые имеют значение при выборе между ними в качестве разработчика приложений?
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 поддерживает список нестандартных функций для разработки собственных приложений, включая:
- защитите исходный код JS, скомпилировав их в машинный код:https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source-code-with-v8-snapshot
- заключенные devtools:https://github.com/nwjs/nw.js/wiki/Devtools-jail-feature
- дополнительная модель безопасности, с которой вы можете сделать больше в Дом:https://github.com/nwjs/nw.js/wiki/Security https://github.com/nwjs/nw.js/wiki/Changes-to-DOM
- расширенный диалог файлов:https://github.com/nwjs/nw.js/wiki/File-dialogs
- режим киоска:https://github.com/nwjs/nw.js/wiki/The-Kiosk-mode
- поддержка растущего списка chrome.* API, включая chrome.webRequest, чтобы вы могли перехватывать HTTP-запросы от DOM: https://github.com/nwjs/nw.js/issues/518
- поддержка богатых уведомлений, предварительный просмотр печати, многие другие chrome.* API, приложения Chrome и другие функции Chromium, начиная с 0.13.0-alpha0
есть намного больше, чтобы посмотреть в вики, включая меню, поднос и т. д.
Я уже некоторое время работаю с 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 для новых ОС.