Jetzt, da TideSDK praktisch tot ist, habe ich nach alternativen "Wrappern" gesucht, um HTML / CSS / JS-Anwendungen als eigenständige Desktop-Anwendungen auszuführen. Die drei praktikablen Optionen, auf die ich bisher gestoßen bin, sind NW.js (ehemals Node-Webkit), Brackets-Shell und Electron (ehemals Atom-Shell).
Das Problem ist, dass es keinen hinreichend vollständigen Vergleich zwischen den drei in Bezug auf Funktionsumfang, Kompatibilität usw. zu geben scheint. Ich hoffe, dies in einen mehr oder weniger kanonischen Thread über die (objektiven) Unterschiede zwischen zu verwandeln die drei, insbesondere in Bezug auf:
- Plattformunterstützung ; Betriebssysteme, Abhängigkeiten usw.
- Unterstützung von Sprachfunktionen in Bezug auf HTML5, CSS3 und JavaScript. Denken Sie an Dinge wie "Funktioniert HTML5-Video und wenn ja, welche Codecs sind verfügbar?"
- Nicht standardmäßige Zusatzfunktionen wie Taskleistensymbole, Popup-Benachrichtigungen und vom Betriebssystem gerenderte Menüleisten.
- Erweiterbarkeit ; z.B. Möglichkeit, nativen Code einzufügen, mit Node.js zu sprechen und so weiter.
- Architektur ; insbesondere die architektonischen Unterschiede, die sich auf den täglichen Gebrauch als Entwickler auswirken.
- Debuggen ; enthalten Entwicklungswerkzeuge, Kompatibilität mit häufig verwendeten Werkzeugen wie
node-inspector
usw. - ... und so weiter.
Was sind die objektiven technischen Unterschiede, die bei der Auswahl als Anwendungsentwickler von Bedeutung sind?
html
node-webkit
electron
brackets-shell
Sven Slootweg
quelle
quelle
Antworten:
Ich habe vor ungefähr zwei Monaten ähnliche Nachforschungen angestellt und mich am Ende für das Node-Webkit entschieden. Der größte Vorteil von Node-Webkit ist Node.js und Npm. Die Paketverwaltung von npm ist wirklich nett und der Knoten hat den Dateisystemzugriff gut gemacht.
Brackets-Shell sah interessant aus, aber abgesehen von einer netten IDE habe ich nicht wirklich verstanden, was diese so gut oder besser gemacht hat als die anderen. Sie sind sich sehr klar darüber, dass "die Brackets-Shell nur für das Brackets-Projekt gepflegt wird", dass mir Schreie davonlaufen.
https://github.com/adobe/brackets-shell#overview
Atom-Shell scheint in letzter Zeit aktiv zu sein, aber es scheint Klammern insofern sehr ähnlich zu sein, als sie wirklich schreiben und Editor / IDE, die zufällig an eine Webkit-Laufzeit angehängt sind. Es basiert auch auf node.js. Dieser hat den Nachteil, dass es schwierig ist, online nach Dingen zu suchen, ohne an Ihre Chemie in der Mittelschule erinnert zu werden.
Ich möchte wirklich keinen neuen Editor, und die meisten Programmierer haben bereits ihren Favoriten. Für die eigentliche Anwendungsentwicklung funktionieren sie ziemlich gleich und sollten es auch, da sie alle das Webkit verwenden. Sie schreiben im Grunde 90-95% davon wie eine Website und beschäftigen sich dann mit den nativen Teilen und einigen Konfigurationen.
Diese Dinge gelten für alle drei Plattformen - läuft unter Windows-, Mac- und Linux-Sprachunterstützung - HTML5, CSS3 und Javascript: Da sie Javascript ausführen, können Sie nahezu jede gewünschte Bibliothek / jedes gewünschte Framework herunterladen und ausführen.
Die große Einschränkung beim Webkit ist die Codec-Unterstützung. In der Regel treten Probleme mit nicht kostenlosen Video-Codecs auf, es sei denn, Sie erstellen die DLL / so neu, um sie zu unterstützen. Zum Beispiel spielt das mitgelieferte Node-Webkit kein MP4-Video ab.
quelle
bracket-shell
und Atom darauf aufgebaut sindatom-shell
, aber Sie können jeden Editor oder jede IDE Ihrer Wahl verwenden, um Code mit ihnen zu erstellen. Ich denke, was das OP will, sind mehr die technischen Unterschiede zwischen den 3. Es wäre schön, so etwas wie TodoMVC in den 3 laufzeitähnlichen Umgebungen zu sehen.Ich habe in den letzten Tagen mit Atom-Shell gespielt und ich liebe es bis jetzt.
Das Beste daran ist, dass es von GitHub unterstützt wird. Dies sollte es Ihnen ermöglichen, sich langfristig auf der Plattform zurechtzufinden, insbesondere wenn es eine große Fangemeinde hat. Möglich wird dies auch durch direkte Verbesserungen von Node.j dank eines Vertrags mit StrongLoop , einem wichtigen Mitwirkenden von Node.j (sie behaupten, mehr Node.js Kernentwickler zu beschäftigen als jedes andere Unternehmen, sogar Joyent).
Ich fand es auch ziemlich bequem, loszulegen. Ich brauchte ungefähr einen Tag, um die Struktur zu lernen und meinen ersten Proof of Concept zum Laufen zu bringen. Sehr cool.
Spiegelstriche:
Update (25.11.14): Ich habe noch keinen offiziellen Anwendungsfall für Atom-Shell gefunden, aber ich habe damit ein paar kleine Apps für meinen eigenen Gebrauch erstellt. Die komplexeste ist eine App, die zieht Meine Zeit protokolliert von meiner PM-Software und erstellt Paypal-Rechnungen.
Meine Meinung zur Plattform bleibt positiv. Es ist ziemlich großartig.
In meiner Zeitrechnungs-App habe ich erfolgreich die Dashboard-Beispielvorlage von Bootstrap 3 und einige Knotenmodule (Bluebird, Paypal SDK, Teamwork PM Client) eingebracht , um eine leicht komplexe App zu erstellen. Es hat ein paar Tage gedauert und macht seinen Job gut.
Ich kann mir wirklich nichts Negatives über Atom-Shell vorstellen, das solide, stabil, schnell und einfach zu codieren ist. Ich hoffe das hilft jemandem.
quelle
Neben der vollständigen Unterstützung von Webstandards unterstützt NW.js eine Liste nicht standardmäßiger Funktionen für die native App-Entwicklung, darunter:
Im Wiki gibt es noch viel mehr zu sehen, einschließlich Menü, Fach usw.
quelle
Ich arbeite seit einiger Zeit mit Brackets-Shell. Hier sind einige meiner Ergebnisse:
Die Dokumentation könnte besser sein
Plattformunterstützung Sie unterstützen Windows, Mac und Linux. Ein Installationspaket kann ebenfalls erstellt werden. Ich habe es nur auf Win und Mac getestet, es funktioniert großartig.
quelle
Eine Sache zu beachten (wenn Sie sich interessieren) ist, dass das Electron Windows Vista offiziell nicht unterstützt. Der Marktanteil von Vista liegt zwischen OSX 10.9 und 10.10 (beide werden von Electron vollständig unterstützt). Vista wird auch bis 2017 von Microsoft unterstützt.
NW.js funktioniert sowohl unter Vista als auch unter OSX 10.9+ einwandfrei. NW.js funktioniert unter Ubuntu, Debian, Zorin, Manjaro, Arch und den meisten anderen Debian-basierten Linux-Betriebssystemen. Electron hat PRs abgelehnt, Ubuntu-spezifische Fehler auf ihrer Plattform zu beheben.
NW.js funktioniert auch in XP. Derzeit sind 18% des Marktes noch auf XP. Wenn Ihre Desktop-Anwendung also allgemeiner ist oder Zugriff auf die späten Anwender unter XP haben soll, sind Sie mit NW.js (0.14.7) wahrscheinlich besser dran, da Electron nur Win 7 und höher unterstützt.
Wenn Sie NW.js 0.12.3 verwenden, können Sie auch OSX 10.6+ und sehr alte Versionen von Debian-basierten Linux-Betriebssystemen wie Ubuntu und Win XP + unterstützen. Es wird jedoch empfohlen, spezielle Builds nur für diese Legacy-Systeme durchzuführen und die neueren Versionen von NW.js für neuere Betriebssysteme zu verwenden.
quelle