Maintenant que TideSDK est effectivement 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 atom-shell).
Le problème est qu'il ne semble pas y avoir de comparaison suffisamment complète entre les trois en termes d'ensemble de fonctionnalités, de compatibilité, etc. J'espère en faire un fil conducteur plus ou moins canonique sur les différences (objectives) entre les trois, notamment en ce qui concerne:
- Support de plate-forme ; systèmes d'exploitation, dépendances, etc.
- Prise en charge des fonctionnalités de langage , 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?"
- Fonctionnalités supplémentaires non standard , telles que les icônes de la barre d'état, 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.
- L'architecture ; en particulier les différences architecturales qui affectent l'utilisation quotidienne en tant que développeur.
- Débogage ; inclus des outils de développement, la compatibilité avec des outils couramment utilisés comme
node-inspector
, etc. - ... etc.
Quelles sont les différences objectives et techniques qui comptent pour faire un choix entre elles en tant que développeur d'applications?
la source
Réponses:
J'ai fait des recherches similaires il y a environ deux mois et j'ai finalement opté pour node-webkit. Le plus gros avantage de node-webkit est node.js et npm. La gestion des paquets de npm est vraiment sympa, et le nœud a un accès au système de fichiers bien fait.
Brackets-shell avait l'air intéressant, mais à part un bel IDE, je n'ai pas vraiment compris ce qui rendait celui-ci aussi bon ou meilleur que les autres. Ils sont très clairs sur le fait que "La coque entre parenthèses n'est maintenue que pour être utilisée par le projet Brackets", ça me crie de s'enfuir.
https://github.com/adobe/brackets-shell#overview
Atom-shell semble être récemment actif, mais cela ressemble beaucoup à des crochets en ce sens qu'ils écrivent vraiment et un éditeur / IDE qui se trouve être attaché à un runtime webkit. Il est également construit au-dessus de node.js. Celui-ci a l'inconvénient d'être difficile à rechercher en ligne sans se souvenir de 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 d'application proprement dit, ils fonctionnent à peu près de la même manière, et devraient, puisqu'ils utilisent tous webkit. En gros, vous en écrivez 90 à 95% comme un site Web, puis vous traitez les parties natives et certaines config.
Ces choses sont vraies pour les trois plates-formes - s'exécute sur la prise en charge des langues Windows, Mac et Linux - HTML5, CSS3 et Javascript: puisqu'elles exécutent javascript, vous pouvez télécharger et exécuter presque toutes les bibliothèques / frameworks de votre choix.
La grande mise en garde sur Webkit est la prise en charge du codec. En règle générale, vous rencontrez 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 node-webkit fourni ne lit pas la vidéo mp4.
la source
bracket-shell
et Atom est construit suratom-shell
, mais vous pouvez utiliser n'importe quel éditeur ou IDE de votre choix pour créer du code avec eux. Je pense que ce que l'OP veut, c'est davantage sur les différences techniques entre les 3. Ce serait sympa de voir quelque chose comme TodoMVC dans les 3 environnements de type runtime.J'ai joué avec Atom-Shell ces derniers jours, et j'adore ça jusqu'à présent.
La meilleure partie à ce sujet est qu'il est soutenu par GitHub .. ce qui devrait vous permettre de vous installer dans la plateforme sur le long terme, surtout si elle gagne un large public. Cela est également rendu possible par des améliorations directes de Node.js grâce à un contrat avec StrongLoop , qui est un contributeur majeur de Node.js (ils prétendent employer plus de développeurs Node.js que toute autre société, même Joyent).
J'ai également 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 de balle:
Mise à jour (25/11/14): Je n'ai pas encore trouvé de cas d'utilisation pour Atom-Shell à quelque titre officiel que ce soit, mais je l'ai utilisé pour créer quelques petites applications pour mon propre usage, la plus complexe étant une application qui tire mon temps se connecte à partir de mon logiciel PM et crée des factures Paypal.
Mon opinion sur la plateforme reste positive. C'est assez génial.
Sur mon application de facturation du temps, j'ai introduit avec succès le modèle d'exemple de tableau de bord de Bootstrap 3 et quelques modules de nœuds (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 peux vraiment penser à rien de négatif à dire sur Atom-Shell, son solide, stable, rapide et facile à coder. J'espère que ça aidera quelqu'un.
la source
En plus de prendre entièrement en charge les 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, Tray, etc.
la source
Je travaille avec brackets-shell depuis un certain temps maintenant, voici quelques-unes de mes découvertes:
La documentation pourrait être meilleure
support de plate-forme Ils prennent en charge 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.
la source
Une chose à noter (si vous vous en souciez), c'est que l'Electron ne prend officiellement pas en charge Windows Vista. La part de marché de Vista est à mi-chemin entre OSX 10.9 et 10.10 (qui sont tous deux entièrement pris en charge par Electron). Vista est également toujours pris en charge par Microsoft jusqu'en 2017.
NW.js fonctionne très 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é aux RP de corriger les bogues spécifiques d'Ubuntu sur leur plate-forme, ce qui est préoccupant.
NW.js fonctionne également sous XP. Actuellement, 18% du marché est toujours sous XP. Donc, si votre application de bureau est plus générale ou si vous souhaitez avoir accès aux derniers adoptants toujours sous XP, vous êtes probablement mieux avec NW.js (0.14.7) car Electron ne prend en charge que Win 7 et plus.
Si vous utilisez NW.js 0.12.3, vous pouvez également prendre en charge OSX 10.6+ et les très anciennes versions des systèmes d'exploitation Linux basés sur Debian comme Ubuntu et Win XP +. Il est recommandé de faire des versions spéciales uniquement pour ces systèmes hérités et d'utiliser les nouvelles versions de NW.js pour les systèmes d'exploitation plus récents.
la source