web-dev-qa-db-fra.com

Quelles sont les différences fonctionnelles entre NW.js, Brackets-Shell et Electron?

Maintenant que TideSDK est bel et bien mort, j'ai cherché des "wrappers" alternatifs pour exécuter des applications HTML/CSS/JS en tant qu'applications de bureau autonomes. Les trois options viables que j’ai rencontrées jusqu’à présent sont NW.js (anciennement node-webkit), brackets-Shell , et Electron ( anciennement atome-Shell).

Le problème est qu’il ne semble pas y avoir de comparaison suffisamment complète entre les trois en termes de jeu de fonctionnalités, de compatibilité, etc. J'espère transformer cela en un fil conducteur plus ou moins canonique sur les différences (objectives) entre les trois, notamment en ce qui concerne:

  • Support de la plateforme ; systèmes d'exploitation, dépendances, etc.
  • Support des fonctionnalités linguistiques , en ce qui concerne HTML5, CSS3 et JavaScript. Pensez à des choses comme "La vidéo HTML5 fonctionne-t-elle, et si oui, quels codecs sont disponibles?"
  • Fonctions supplémentaires non standard , telles que les icônes de la barre des tâches, les notifications contextuelles et les barres de menus rendues par le système d'exploitation.
  • Extensibilité ; par exemple. possibilité de "brancher" du code natif, de parler à Node.js, etc.
  • Architecture ; en particulier les différences architecturales qui affectent l'utilisation quotidienne en tant que développeur.
  • Débogage ; outils de développement inclus, compatibilité avec les outils couramment utilisés tels que node-inspector, etc.
  • ... etc.

Quelles sont les différences techniques objectives qui importent pour choisir entre elles en tant que développeur d'applications?

148
Sven Slootweg

J'ai effectué des recherches similaires il y a environ deux mois et à la fin j'ai opté pour node-webkit. Le plus gros avantage de node-webkit est node.js et npm. La gestion des paquets de npm est vraiment agréable, et le noeud a bien accédé au système de fichiers.

Brackets-Shell semblait intéressant, mais à part un Nice IDE je ne comprenais pas vraiment ce qui rendait celui-ci aussi bon ou meilleur que les autres. Ils sont très clairs: "Les crochets-Shell sont seulement maintenu pour une utilisation par le projet Brackets ", qui hurle fuir à moi.

https://github.com/Adobe/brackets-Shell#overview

Atom-Shell semble être actif récemment, mais cela ressemble beaucoup à des crochets en ce sens qu’ils écrivent vraiment et que l’éditeur/IDE est lié à un runtime Webkit. Il est également construit sur node.js. Celui-ci a l'inconvénient d'être difficile à rechercher des choses en ligne sans être rappelé à la chimie de votre collège.

Je ne veux vraiment pas d'un nouvel éditeur, et la plupart des programmeurs ont déjà leur favori. Pour le développement actuel des applications, elles fonctionnent quasiment de la même façon et devraient, puisqu'elles utilisent toutes webkit. Vous écrivez en gros 90 à 95% de celui-ci comme un site Web, puis vous vous occupez des parties natives et de certaines config.

Ces éléments sont valables pour les trois plates-formes - fonctionne sous Windows, Mac et Linux - HTML5, CSS3 et Javascript: puisqu'ils exécutent javascript, vous pouvez télécharger et exécuter presque toutes les bibliothèques/infrastructures de votre choix.

La mise en garde sur webkit est le support de codec. En règle générale, vous aurez des problèmes avec les codecs vidéo non libres, sauf si vous reconstruisez la dll/so pour les prendre en charge. Par exemple, le nœud-webkit fourni ne lira pas la vidéo MP4.

40
John W. Clark

J'ai joué avec Atom-Shell au cours des derniers jours et je l'aime jusqu'à présent.

La meilleure partie de cela est qu’il est soutenu par GitHub .. ce qui devrait vous permettre de vous installer sur la plate-forme à long terme, surtout s’il gagne un grand public. C'est également possible grâce aux améliorations directes de Node.js grâce à un contrat avec StrongLoop, qui est un contributeur majeur à Node.js. (ils prétendent employer plus de développeurs principaux de Node.js que toute autre société, même Joyent).

J'ai aussi trouvé assez confortable de commencer. Il m'a fallu environ une journée pour apprendre la structure et faire fonctionner ma première preuve de concept. Très cool.


Points Bullet:

  • Support de la plate-forme: Windows, Linux, Mac OSX ( Plus d'infos ici )
  • Prise en charge des fonctionnalités linguistiques: HTML5, CSS3, JS via Chromium - jusqu'à présent, aucun problème, mais je n'ai pas encore testé la vidéo.
  • Fonctionnalités natives: Menus d'application natifs, prise en charge de la barre des tâches, touches de raccourci globales, prise en charge du gestionnaire de protocole (que j'ai vues jusqu'à présent)
  • Extensibilité: Excellente intégration de Node.js, le client et le serveur peuvent "nécessiter" des modules et des natifs Node.js. J'ai également testé avec succès Bower des bibliothèques (y compris jQuery) sans problème.
  • Architecture: Couvert dans les autres points, mais en général, il est très lisse.

Mise à jour (25/11/14): Je n'ai pas encore trouvé de cas d'utilisation de Atom-Shell à quelque titre que ce soit, mais je l'ai déjà utilisé construire quelques petites applications pour mon propre usage, le plus complexe étant une application qui tire mon journal de temps de mon logiciel PM et crée des factures Paypal.

Mon opinion sur la plateforme reste positive. C'est vraiment génial.

J'ai utilisé avec succès Bootstrap 3 modèle d'exemple de tableau de bord et quelques modules de nœud (bluebird, Paypal SDK, Teamwork PM client) pour créer une application légèrement complexe. Cela m'a pris quelques jours et fait bien son travail.

Je ne vois vraiment rien de négatif à dire à propos d’Atom-Shell: solide, stable, rapide et facile à coder. J'espère que ça aidera quelqu'un.

39
Luke Chavers

Outre la prise en charge complète des normes Web, NW.js prend en charge une liste de fonctionnalités non standard pour le développement d'applications natives, notamment:

Il y a beaucoup plus à voir dans le wiki, y compris Menu, Plateau, etc.

21
Roger Wang

Je travaille avec brackets-Shell depuis un certain temps maintenant, voici certaines de mes conclusions:

  • brackets-Shell est principalement développé sous forme de Shell entre les crochets IDE projet, mais le projet peut exécuter n'importe quelle application Web. Il vous suffit de le pointer vers votre propre page HTML. Clint Berry a écrit un excellent tutoriel sur la réalisation de ceci: http://clintberry.com/2013/html5-desktop-apps-with-brackets-Shell/
  • Le projet est soutenu par Adobe et a beaucoup d'activité
  • La documentation pourrait être meilleure

  • support de la plateforme Ils supportent Windows, Mac et Linux. Un package d'installation peut également être créé. Je ne l'ai testé que sur Win et Mac, cela fonctionne très bien.

  • fonction support html5, css3, js. La vidéo HTML 5 ne fonctionne pas immédiatement, mais elle est très facile à activer (par défaut, le fichier ffmpegsumo.dll n'est pas copié dans le programme d'installation. Si vous modifiez le script pour le copier, il fonctionnera).
  • fonctionnalités natives barre de menus, 'ouvrir le fichier avec', accès au système de fichiers. Je n'utilise aucun de ces éléments, car tout ce dont j'ai besoin, c'est de la communication avec le processus de nœud.
  • Extensibilité un nœud est intégré et vous pouvez communiquer avec ce nœud à partir de votre application Web. De cette façon, vous pouvez utiliser noeud pour accéder au système de fichiers, etc.
  • architecture Le projet est bien configuré, ce qui permet de bien séparer le projet Shell de votre propre application Web. Dans votre propre application, un objet global appshell est disponible et vous donne accès à la fonctionnalité de crochets (accès au système de fichiers, communication avec le processus de noeud, ...).
10
Karel Braeckman

Une chose à noter (si vous y tenez), c’est que l’Electron ne prend officiellement pas en charge Windows Vista. La part de marché de Vista est d'environ à mi-chemin entre OSX 10.9 et 10.1 (les deux étant entièrement pris en charge par Electron). Vista est également toujours pris en charge par Microsoft jusqu'en 2017.

NW.js fonctionne bien sous Vista, ainsi que sous OSX 10.9+. NW.js fonctionne sur Ubuntu, Debian, Zorin, Manjaro, Arch et la plupart des autres systèmes d'exploitation Linux basés sur Debian. Electron a refusé que les relations publiques corrigent des bogues spécifiques à Ubuntu sur leur plate-forme, ce qui est préoccupant.

NW.js fonctionne avec XP aussi. Actuellement, 18% du marché est encore sous XP. Donc, si votre application de bureau est destinée à un usage plus général ou veut avoir accès aux derniers utilisateurs encore adoptés XP, vous êtes probablement mieux avec NW.js (0.14.7), car Electron ne prend en charge que Win 7 et les versions ultérieures.

Si vous utilisez NW.js 0.12.3, vous pouvez également prendre en charge OSX 10.6+ et les très anciennes versions de systèmes d'exploitation Linux basés sur Debian comme Ubuntu et Win XP +. Nous vous recommandons toutefois de créer des versions spéciales pour ces systèmes hérités et d'utiliser les versions les plus récentes de NW.js pour les systèmes d'exploitation les plus récents.

5
Jaredcheeda