web-dev-qa-db-fra.com

Quels sont les avantages et les inconvénients des applications Chrome par rapport à Electron?

Je souhaite programmer une application de bureau en javascript (avec les technologies Web) et j'ai cherché une comparaison entre Electron et Chrome Apps.

Tout ce dont j'ai besoin semble être possible avec les applications Chrome, mais il y a un grand battage médiatique autour d'Electron/NW.js. Quels sont les avantages d'Electron? Est-ce dû à la grande quantité de Node packages?

Je pense que les différences fonctionnelles sont claires pour moi.

Avantages et inconvénients comme:

+ Chrome Apps can run on Chrome OS  
- Chrome Apps needs an installed Chrome Browser
...

MISE À JOUR 2016-08-20:

Comme l'a souligné Eduardo, Google a annoncé qu'ils arrêteront Chrome Apps pour toutes les plateformes sauf ChromeOS. Je pense donc que la réponse à cette question est évidente maintenant.

Pour tous ceux qui ont développé une application Chrome et qui souhaitent la migrer vers le Web, voici un guide de Google: https: // developers.chrome.com/apps/migration

Ou, comme Google l'a également mentionné, vous le migrez vers Electron ou NW.js .

24
mamiu

Vous pouvez comparer totalement les applications électroniques et chrome packagées. Elles sont très similaires. Pour les deux, vous obtenez:

  • Développez votre application de bureau à l'aide des technologies Web
  • L'application fonctionne sur Chrome
  • Mises à jour automatiques. Bien qu'en Chrome vous l'obteniez gratuitement, pour Electron, vous devez faire un peu de travail.
  • Intégration du système d'exploitation - Les deux ont de meilleures intégrations avec le système d'exploitation qu'un site Web normal, mais Electron prend en charge une gamme plus large d'intégration du système d'exploitation.
  • Travaillez hors ligne ou en ligne.
  • Les deux fonctionnent sous Linux, OSX et Windows. Chrome Web Apps fonctionne également sur les Chromebooks.

Voici les différences:

  • Electron utilise node.js. Vous pouvez donc importer de nombreux modules difficilement disponibles dans les applications Chrome.
  • Distribution, avec électron, vous conditionnez et distribuez l'application vous-même. Avec Chrome Apps, vous les distribuez via Chrome Webstore.
  • Environnement. Une application Electron est fournie avec son environnement complet. Chrome Les applications utilisent simplement l'environnement Chrome afin qu'elles soient plus légères, mais peuvent se comporter différemment selon les utilisateurs en fonction de la version Chrome ils utilisent.
  • Les applications Chrome nécessitent que l'utilisateur ait Chrome installé, Electron non.
  • Electron dispose de meilleurs outils de développement pour tester et déboguer.
  • Electron est une plateforme open source. Chrome Apps est également construit sur plusieurs technologies ouvertes mais la distribution est spécialement contrôlée par Google.
  • La documentation Electron est bien meilleure même s'il s'agit d'une plateforme beaucoup plus récente.
  • Adoption: Il existe de nombreuses applications importantes et performantes intégrées à Electron, telles que Visual Studio Code, le client GitHub, Slack. Chrome Les applications n'ont tout simplement jamais pris autant d'élan.
  • Les applications Chrome peuvent être étroitement intégrées à Google Drive

MISE À JOUR 2016-08-19:

Il semble que Google ait récemment déconseillé les applications Chrome sur toute plate-forme autre que ChromeOS. Je dirais donc que ce n'est plus une option valide.

http://blog.chromium.org/2016/08/from-chrome-apps-to-web.html

23
Eduardo

Je pense qu'il n'est pas vraiment possible de comparer des applications d'électrons et de chrome. Cela dépend de ce que votre programme doit faire.

Alors, quand dois-je utiliser l'électron?

À première vue, l'électron ressemble au chrome, car les vues de l'électron sont basées sur le navigateur chrome. Mais électron est un environnement node.js complet avec un chrome = voir en haut. Les fonctionnalités puissantes ne sont donc pas seulement un aperçu de la partie chrome.

Comme vous l'avez mentionné, il existe de nombreux modules de nœuds (plus de 200 000), que vous pouvez très facilement installer ou mettre à jour. Vous devriez également jeter un œil à l'api node.js ( https://nodejs.org/api/ ). Tout cela vous permet d'écrire des applications complexes, entièrement intégrées sur votre bureau. Pour presque tous les problèmes, certains modules sont disponibles.

Avec node, vous pouvez d'abord créer votre programme avec une interface en ligne de commande et ensuite vous pouvez utiliser electron pour créer une interface graphique.

Donc, quand vous avez déjà une application en ligne écrite en JS, une chrome-app est peut-être mieux. Les applications Chrome sont idéales pour une utilisation de Google Drive. Ou si vous souhaitez avoir une intégration complète dans Chrome-OS.

Donc mes pros pour l'électron:

  • plus de 200 000 modules sur npm disponibles
    • intégration très simple de jQuery, Angular, React, ...
  • faire d'abord un programme avec une CLI, puis faire un gui
  • fonctionne parfaitement avec github
  • très bonne intégration au bureau
  • fournir des installateurs de fenêtres
2
apxp

Je voudrais jouer sur Electron vs nw.js.

J'ai une application Chrome Chrome très populaire qui ne peut être convertie ni en application Web ni en extension, car elle utilise plusieurs API non prises en charge, notamment le chrome.fileSystem API.

L'application n'est toujours accessible que sur la boutique en ligne de Chrome, car le support de l'application sera abandonné avant début 2018. Néanmoins, j'ai déjà consacré beaucoup de temps et de réflexion à décider quoi faire à propos du déménagement de Google.

Jusqu'à présent, je visais principalement à Electron car cela semble attirer le plus l'attention, mais je viens de découvrir que nw.js peut réellement exécuter Chrome sont prêtes à l'emploi, car elles implémentent toutes les API de Chrome, alors qu'Electron n'en implémente qu'un sous-ensemble.

Exécutez simplement votre application Chrome comme ceci:

/path/to/nw.exe <folder path of the manifest.json file>

À l'exception de très peu de choses telles que l'intercommunication entre mon application et une extension d'assistance, tout fonctionne comme prévu avec zéro changement, même s'il s'agit d'une application avancée avec près de 3000 lignes de code JS.

Pour les nouvelles applications multiplates-formes, Electron pourrait être le meilleur choix (je n'en ai aucune idée), mais pour les applications Chrome Chrome existantes, je dirais que nw.js est vraiment quelque chose que vous devriez considérer.

J'espère que cela peut aider quelqu'un dans la même position.

1
marlar