Erstens bin ich nicht daran interessiert, dies professionell zu tun. Ich bin ein Webentwickler, ein Mitarbeiter von mir, der kürzlich zu Spotify gegangen ist, und sagte, er werde hauptsächlich in JavaScript für die Spotify Desktop-App arbeiten. Er sagte, dass es "Chrome Frame" verwendet und alles im Inneren wie eine Web-App (HTML / JS / CSS) gemacht wird.
Als Webentwickler, der nie etwas für Desktop erstellt hat, sind dies großartige Neuigkeiten. Wenn ich die Technologien, die ich bereits kenne, nutzen und in einer Art "Rahmen" implementieren kann und trotzdem in der Lage bin, ein Windows oder besser noch eine plattformübergreifende App zu erstellen.
Ich weiß, dass ich nichts über die Datenbank erwähnt habe, aber selbst eine einfache Hallo-Welt-Desktop-App mit Webtechnologien wäre großartig, um loszulegen.
Wie geht man also vor? Was genau muss / muss ich wissen?
Antworten:
Sie können mit Titanium für Desktop-Entwickler beginnen. Sie können sich auch Chromium Embedded Framework ansehen . Es ist im Grunde ein Webbrowser-Steuerelement, das auf Chrom basiert.
Es ist in C ++ geschrieben, sodass Sie alle gewünschten Betriebssysteme (Growl, Tray-Symbole, lokaler Dateizugriff, COM-Ports usw.) in Ihrer Container-App und dann die gesamte Anwendungslogik und GUI in HTML / Javascript ausführen können. Sie können jede http-Anforderung abfangen, um entweder lokale Ressourcen bereitzustellen oder eine benutzerdefinierte Aktion auszuführen. Beispielsweise könnte eine Anforderung an http://localapp.com/SetTrayIconState?state=active vom Container abgefangen werden und dann die C ++ - Funktion aufrufen, um das Taskleistensymbol zu aktualisieren.
Außerdem können Sie Funktionen erstellen, die direkt aus JavaScript aufgerufen werden können.
Es ist sehr schwierig, JavaScript direkt in CEF zu debuggen. Es gibt keine Unterstützung für so etwas wie Firebug.
Sie können es auch versuchen AppJS.com(Hilft beim Erstellen von Desktop-Anwendungen für Linux, Windows und Mac mithilfe von HTML, CSS und JavaScript).
Wie von @Clint hervorgehoben, hat das Team von brackets.io (Adobe) mit Chromium Embedded Framework eine fantastische Shell erstellt, die den Einstieg erheblich erleichtert. Es heißt Brackets-Shell: github.com/adobe/brackets-shell Erfahren Sie hier mehr darüber: clintberry.com/2013/html5-desktop-apps-with-brackets-shell
quelle
NW.js
(Früher als Node-Webkit bekannt)
Ich würde NW.js vorschlagen, wenn Sie mit Node vertraut sind oder Erfahrung mit JavaScript haben.
Das NW.js-Repo finden Sie hier und eine gute Einführung in NW.js hier . Wenn Sie Node.js lernen möchten, würde ich diesen SO-Beitrag mit vielen guten Links empfehlen .
quelle
Aktualisieren
Meine vorherige Antwort ist jetzt veraltet. Heutzutage wären Sie verrückt, Electron nicht dafür zu verwenden. Darüber hinaus wurden viele beliebte Desktop-Apps entwickelt.
quelle
HINWEIS : AppJS ist veraltet und wird nicht mehr empfohlen.
Schauen Sie sich stattdessen NW.js an.
quelle
Es scheint, dass die Lösungen für HTML / JS / CSS-Desktop-Apps nicht knapp sind.
Eine Lösung, auf die ich gerade gestoßen bin, ist TideSDK: http://www.tidesdk.org/ , was der Dokumentation sehr vielversprechend erscheint.
Sie können mit Python, PHP oder Ruby entwickeln und für Mac, Windows oder Linux verpacken.
quelle
Es tut uns leid, dass Sie Ihre Blase platzen lassen, aber der Spotify-Desktop-Client ist nur ein Webkit-basierter Browser . Natürlich bietet es bestimmte zusätzliche Funktionen, aber es kann nur JS ausführen und HTML / CSS rendern, da es sowohl eine JS-Engine als auch eine Chromium-Rendering-Engine hat. Dies hilft Ihnen nicht beim Codieren einer clientseitigen Web-App und beim Bereitstellen auf mehreren Plattformen.
Was Sie suchen, ähnelt Sencha Touch - einem Framework, mit dem HTML5-Apps nativ auf iOS-, Android- und Blackberry-Geräten bereitgestellt werden können. Es fungiert im Wesentlichen als Vermittler zwischen bestimmten API-Aufrufen und verfügbaren gerätespezifischen Funktionen.
Ich habe keine Erfahrung mit Appcelerator , aber es scheint genau das zu tun - und ich bekomme online sehr günstige Bewertungen. Sie sollten es versuchen (es sei denn, Sie wollten zurück zu 1999 gehen und mit MS HTA rollen ;)
quelle
Ich weiß, dass es Fluid und Prism gibt (es gibt andere, die ich früher verwendet habe), mit denen Sie eine Website in eine eigenständige App laden können.
In Chrome können Sie Desktop-Verknüpfungen für Websites erstellen. (Sie tun dies in Chrome. Sie können / sollten dies nicht mit Ihrer App verpacken.) Chrome Frame ist anders:
Sie müssten einen solchen Wrapper für Ihre Webanwendung haben, und der Rest sind die Webtechnologien, an die Sie gewöhnt sind. Sie können den lokalen HTML5- Speicher verwenden , um Daten zu speichern, während die App offline ist. Ich denke, Sie können möglicherweise sogar mit SQLite arbeiten.
Ich weiß jedoch nicht, wie Sie auf betriebssystemspezifische Funktionen zugreifen sollen. Was ich oben beschrieben habe, hat die gleichen Einschränkungen wie jede "normale" Website. Hoffentlich gibt Ihnen dies eine Anleitung, wo Sie anfangen sollen.
quelle
Sie können Javascript-Apps mit Adobe AIR erstellen… http://www.adobe.com/products/air.html
quelle
CEF bietet viel Flexibilität und Anpassungsmöglichkeiten. Aber wenn die Absicht besteht, schnell ein Node-Webkit zu entwickeln, ist dies auch eine gute Option. Das Node-Web-Kit bietet auch die Möglichkeit, Knotenmodule direkt aus dem DOM aufzurufen.
Wenn keine nativen Module zur Integration vorhanden sind, bietet Node-Webkit eine bessere Kilometerleistung. Mit nativen Modulen C / C ++ oder sogar C # ist es mit CEF besser.
quelle