Premièrement, je ne suis pas intéressé à faire cela de manière professionnelle. Je suis un développeur Web, un de mes collègues est récemment parti pour Spotify et a déclaré qu'il travaillerait principalement en JavaScript pour l'application Spotify Desktop. Il a dit qu'il utilise "Chrome frame" et que tout à l'intérieur se fait comme une application Web (HTML / JS / CSS).
En tant que développeur Web qui n'a jamais rien construit pour Desktop, c'est une excellente nouvelle. Si je peux utiliser les technologies que je connais déjà et les implémenter dans une sorte de «cadre» tout en étant capable de créer une application Windows ou mieux encore multi-plateforme.
Je sais que je n'ai rien mentionné à propos de la base de données, mais même une simple application de bureau Hello World avec des technologies Web serait formidable pour démarrer.
Alors, comment s'y prendre? Que dois-je / dois savoir exactement?
Réponses:
Vous pouvez commencer avec Titanium pour les développeurs de bureau. Vous pouvez également jeter un œil à Chromium Embedded Framework . Il s'agit essentiellement d'un contrôle de navigateur Web basé sur le chrome.
Il est écrit en C ++ pour que vous puissiez faire tout ce que vous voulez du système d'exploitation de bas niveau (Growl, icônes de la barre d'état, accès aux fichiers locaux, ports com, etc.) dans votre application de conteneur, puis toute la logique de l'application et l'interface graphique en html / javascript. Il vous permet d'intercepter toute demande http pour servir des ressources locales ou effectuer une action personnalisée. Par exemple, une demande à http://localapp.com/SetTrayIconState?state=active pourrait être interceptée par le conteneur, puis appeler la fonction C ++ pour mettre à jour l'icône de la barre d'état.
Il vous permet également de créer des fonctions qui peuvent être appelées directement depuis JavaScript.
Il est très difficile de déboguer JavaScript directement dans CEF. Il n'y a aucun support pour quelque chose comme Firebug.
Vous pouvez également essayer AppJS.com (Aide à créer des applications de bureau. Pour Linux, Windows et Mac en utilisant HTML, CSS et JavaScript)
De plus, comme l'a souligné @Clint, l'équipe de brackets.io (Adobe) a créé un shell génial à l'aide de Chromium Embedded Framework qui facilite grandement la mise en route. Il s'appelle le shell brackets: github.com/adobe/brackets-shell Pour en savoir plus, cliquez ici: clintberry.com/2013/html5-desktop-apps-with-brackets-shell
la source
NW.js
(Anciennement connu sous le nom de node-webkit)
Je suggérerais NW.js si vous êtes familier avec Node ou expérimenté avec JavaScript.
Vous pouvez trouver le repo NW.js ici , et une bonne introduction à NW.js ici . Si vous avez envie d'apprendre Node.js, je recommanderais cet article SO avec beaucoup de bons liens.
la source
Mettre à jour
Ma réponse précédente est maintenant dépassée. Ces jours-ci, vous seriez fou de ne pas envisager d'utiliser Electron pour cela. De nombreuses applications de bureau populaires ont été développées en plus.
la source
REMARQUE: AppJS est obsolète et n'est plus recommandé.
Jetez plutôt un œil à NW.js.
la source
Il semble que les solutions pour les applications de bureau HTML / JS / CSS ne manquent pas.
Une solution que je viens de trouver est TideSDK: http://www.tidesdk.org/ , qui semble très prometteuse, en regardant la documentation.
Vous pouvez développer avec Python, PHP ou Ruby et le packager pour Mac, Windows ou Linux.
la source
Désolé d'éclater votre bulle mais le client de bureau Spotify n'est qu'un navigateur basé sur Webkit . Bien sûr, il expose des fonctionnalités supplémentaires spécifiques, mais il ne peut exécuter JS et rendre HTML / CSS que car il dispose d'un moteur JS ainsi que d'un moteur de rendu Chromium. Cela ne vous aide pas à coder une application Web côté client et à le déployer sur plusieurs plates-formes.
Ce que vous recherchez est similaire à Sencha Touch - un cadre qui permet aux applications HTML5 d'être déployées de manière native sur les appareils iOS, Android et Blackberry. Il agit essentiellement comme un intermédiaire entre certains appels d'API et les fonctionnalités spécifiques à l'appareil disponibles.
Je n'ai aucune expérience avec appcelerator , mais il semble faire exactement cela - et obtenir des critiques très favorables en ligne. Vous devriez essayer (à moins que vous ne vouliez revenir en 1999 et rouler avec MS HTA ;)
la source
Je sais qu'il y a Fluid et Prism (il y en a d'autres, c'est celui que j'utilisais auparavant) qui vous permettent de charger un site Web dans ce qui ressemble à une application autonome.
Dans Chrome, vous pouvez créer des raccourcis sur le bureau pour les sites Web. (vous faites cela à partir de Chrome, vous ne pouvez / ne devriez pas emballer cela avec votre application) Chrome Frame est différent:
Vous auriez besoin d'une sorte de wrapper comme celui-ci pour votre application Web, puis le reste correspond aux technologies Web auxquelles vous êtes habitué. Vous pouvez utiliser le stockage local HTML5 pour stocker des données lorsque l'application est hors ligne. Je pense que vous pourrez peut-être même travailler avec SQLite.
Cependant, je ne sais pas comment vous feriez pour accéder aux fonctionnalités spécifiques du système d'exploitation. Ce que j'ai décrit ci-dessus a les mêmes limites que n'importe quel site Web «régulier». J'espère que cela vous donne une sorte d'indications sur par où commencer.
la source
Vous pouvez créer des applications Javascript avec Adobe AIR… http://www.adobe.com/products/air.html
la source
CEF offre beaucoup de flexibilité et d'options de personnalisation. Mais si l'intention est de développer rapidement, node-webkit est également une bonne option. Node-web kit offre également la possibilité d'appeler des modules de nœuds directement à partir du DOM.
S'il n'y a pas de modules natifs à intégrer, Node-Webkit peut offrir un meilleur kilométrage. Avec les modules natifs C / C ++ ou même C # c'est mieux avec CEF.
la source