Які функціональні відмінності між NW.js, Brackets-Shell та Electron?


151

Тепер, коли TideSDK фактично мертвий, я шукав альтернативні «обгортки» для запуску програм HTML / CSS / JS як автономні програми для настільних ПК. Три можливі варіанти, якими я працював до цього часу, є NW.js (раніше вузол-вебкіт), дужки-оболонки та Електрон (раніше атомна оболонка).

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

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

Які об'єктивні, технічні відмінності мають значення при виборі між ними як розробником програми?


Чи пощастило вам поглянути на відмінності тим часом? Ви могли б викопати ці вихідні
stefan

@stefan Ще немає, ні: / Я трохи експериментував з node-webkit у практичному розумінні, але ще не досяг цього. Не
заглянули

3
Ну, ось основні відмінності між вузлом-webkit та атомною оболонкою, окресленими командою atom-shell, github.com/atom/atom-shell/blob/master/docs/development/… .
sepulchered

2
Як щодо слона в кімнаті: налагодження. Я використовував nw.js і виявив, що налагодження зовсім не вистачає при використанні платформи Linux для розробки. Для розробки великих програм налагодження є важливою особливістю IMO. Чи можна додати налагодження до списку бажаних функцій, з якими можна поговорити?
Тімоті К. Квін

@JavaScriptDude Спасибі, я додав це до списку.
Свен Слоотвег

Відповіді:


42

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

Brackets-shell виглядало цікаво, але крім приємного IDE, я насправді не отримав те, що зробило це таким же хорошим чи кращим, ніж решта. Вони дуже зрозуміли, що "дужка-оболонка підтримується для використання лише проектом Brackets", що крики перебігають на мене.

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

Atom-shell, здається, нещодавно активний, але схоже, що дужки схожі на те, що вони справді пишуть і редактор / IDE, що просто трапляється приєднаний до часу виконання веб-програми. Він також побудований поверх node.js. У цього є мінус того, що важко шукати речі в Інтернеті, не нагадуючи про хімію середньої школи.

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

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

Великим застереженням на веб-програмі є підтримка кодеків. Зазвичай у вас виникнуть проблеми з невільними відеокодеками, якщо ви не відновите dll / так, щоб підтримати їх. Наприклад, відвантажений вузол-webkit не відтворюватиме mp4 відео.


Не могли б ви детальніше розібратися, чи є якась різниця щодо відтворення MP4 у дужках-оболонці та атом-оболонці? З вашої відповіді незрозуміло, чи це вигадка у більшості дистрибутивів WebKit, чи просто у node-webkit.
Свен Слоутвег

Проблема відтворення MP4 є проблемою веб-кайтів. Ви повинні пам’ятати, що веб-кіт насправді є хромом по душі, і якщо AV-технологія не відкрита і безкоштовна, вони не підтримують її з коробки. Стандартна відповідь - замінити / відновити ffmpegsumo. Замінивши його одним із поточного встановлення Chrome, схоже, працює досить добре.
Джон В. Кларк

1
Просто буває так, що Brackets вбудований bracket-shellі Atom вбудований atom-shell, але ви можете використовувати будь-який редактор або IDE на вибір, щоб створити код з ними. Я думаю, що ОП хоче більше, ніж щодо технічних відмінностей між 3. Було б солодко бачити щось на зразок TodoMVC у трьох середовищах, схожих на виконання.
Ehtesh Choudhury

@SvenSlootweg підтримка кодека - це більше про бібліотеки, які використовуються з веб-сервером, який ви використовуєте. Усі троє використовують Chromium в якості бази веб-файлів, тому всі вони мають однакові проблеми з кодеком, і їх можна вирішити однаково.
Джон У. Кларк


40

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

Найкраще з цього приводу полягає в тому, що він підтримується GitHub .., який повинен дозволяти вам влаштуватися на платформу на тривалий термін, особливо якщо вона отримає велику кількість наступних. Це також можливо завдяки прямим вдосконаленням Node.js за допомогою контракту зі StrongLoop , який є головним учасником Node.js (вони стверджують, що використовують більше основних розробників Node.js, ніж будь-яка інша компанія, навіть Joyent).

Також мені було зручно починати роботу. Мені знадобилося близько дня, щоб вивчити структуру та отримати моє перше доказ запуску концепції. Дуже круто.


Кульові очки:

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

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

Моя думка про платформу залишається позитивною. Це досить приголомшливо.

У моєму додатку для виставлення рахунків на час я успішно привів у прикладний шаблон приладної панелі Bootstrap 3 та кілька модулів вузлів (bluebird, Paypal SDK, клієнт PM PM Client), щоб створити м'яко складний додаток. На це пішло кілька днів, і вона добре працює.

Я дійсно не можу придумати нічого негативного про Atom-Shell, його міцний, стабільний, швидкий та простий код. Я сподіваюся, що це комусь допоможе.


Чи можете ви детальніше розібратися у відмінностях із вузлом-webkit? Наскільки я можу сказати, всі (більшість?) Цих пунктів пропонуються також node-webkit, але я не впевнений, чи може щось не вистачати.
Sven Slootweg

привіт люке, чи можна оновити додаток атомної оболонки самостійно ...?
Муніш Капур

@SvenSlootweg Вибачте, я пропустив ваш коментар кілька місяців тому; На жаль, я не добре розбираюся з node-webkit і не зміг порівняти два ефективні. Але я прочитав цю статтю StrongLoop , яка, принаймні, вказує на те, що Atom-Shell зламав новий грунт. : \
Лука Чаверс

@MunishKapoor для розвитку? Ви можете завантажити останню версію .. Я більш-менш просто перейменував старий каталог атомів і замінив його на новий. У них може виникнути якийсь химерний процес на кшталт "npm update" - але я цього не досліджував. Щодо оновлення вашої програми + оболонки атома на клієнті, я не думаю, що вони звертаються до цього безпосередньо (зовсім) і, імовірно, очікують, що ви будете використовувати для цього інсталятор або іншу зовнішню платформу. Я вважав цю статтю в їхніх документах цікавою.
Люк Чаверс

1
@Moonwalker Так, для упаковки використовується додаток під назвою " Asar ". (див. "Упаковка додатків" ). Я також щойно знайшов це порівняння Node-Webkit / Atom-Shell .
Люк Чаверс

22

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

У вікі можна побачити набагато більше, зокрема Меню, Лоток тощо.


3
+1 у режимі кіоску Роджер. Я бачу, що це функція, яку я буду використовувати в майбутньому. Сподіваємось, налагодження можливостей налагодження покращиться, тому я можу залишитися на nw.js, однак зараз я серйозно розглядаю можливість перейти на Atom Electron на деякий час, щоб перевірити води. Я знайшов налагодження в nw.js трохи бажаючих.
Тімоті К. Квін

Я трохи стурбований тим, що там "захищають джерело JS" - це в тому ж класі, що і DRM, в тому сенсі, що він не працює. Він лише "захищає" від тих, від кого вам не потрібно було "захищати" для початку. Це не здається чимось, що слід рекламувати як функцію для мене.
Свен Слоотвег

1
Це не так, як DRM для Web - програмісти JS повинні вміти робити що завгодно, як це можуть зробити програмісти C ++, включаючи компіляцію вихідного коду до машинного коду, коли вони розробляють власні програми.
Роджер Ван

@JavaScriptDude ти маєш на увазі devtools? У наступній версії (0.13) досвід буде майже таким же, як у браузері Chrome.
Роджер Ван

@Roger. Вибачте за затримку відповіді. Так, devtools. Я виявив, що існують такі обмеження, деякі з яких, ймовірно, в самих розробниках: 1) Не налагоджено налагодження нових вікон. 2) Віддалена налагодження ніколи не працювала. 3) Неможливість відкликання точок перерви, перегляду змінних та джерел, що відкриваються (кожного разу, коли програма перезапускається, всі налаштування очищаються) 4) (реальний biggie) Неможливість налагодження коду, завантаженого разом із Requ ().
Тімоті К. Квін

10

Я вже деякий час працюю з дужками-оболонками, ось деякі мої висновки:

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

  • підтримка платформи Вони підтримують Windows, Mac та Linux. Також може бути створений інсталяційний пакет. Я тестував його лише на Win та Mac, він чудово працює.

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

6
Те, що змусило мене триматися подалі від Brackes-shell, - це їх власний огляд. github.com/adobe/brackets-shell "Примітка: оболонка дужок підтримується лише для використання проектом Brackets. Хоча деякі люди напевно мали успіх у використанні її як оболонки додатка для інших проектів, ми не надаємо жодної офіційної особи підтримка цього, і ми не виконали багато робіт, щоб зробити оболонку програми легкою для багаторазового використання. Багатьом людям, швидше за все, буде легше використовувати такий проект, як node-webkit, який є більш загальним за дизайном ".
Джон У. Кларк

5

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

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

NW.js працює і в XP. В даний час 18% ринку все ще на XP. Тож якщо ви настільний додаток більш загального призначення або хочете мати доступ до пізніх версій, які все ще знаходяться на XP, вам, мабуть, краще з NW.js (0.14.7), оскільки Electron підтримує лише Win 7 і вище.

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


1
Chrome не припиняв підтримку після того, як це зробила MS - підтримку було продовжено до кінця 2015 року - chrome.blogspot.com/2015/04/…
Кароль Клепаккі

електрон (оболонка атома) не працює на RHEL 6.6 і нижче, і вихідний код не може бути скомпільований на цих дистрибутивах.
Майкл Круглос


Ви можете використовувати nw-builder для створення версій MAS. Є рука будує для NW.js , а також.
Jaredcheeda
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.