Primero, no estoy interesado en hacer esto profesionalmente. Soy un desarrollador web, un compañero de trabajo mío que se fue recientemente a Spotify y dijo que trabajará principalmente en JavaScript para la aplicación Spotify Desktop. Dijo que usa "marco de Chrome" y que todo lo que está dentro se hace como una aplicación web (HTML / JS / CSS).
Como desarrollador web que nunca creó nada para Desktop, esta es una gran noticia. Si puedo usar las tecnologías que ya conozco e implementarlas dentro de una especie de "marco" y todavía ser capaz de construir una aplicación de Windows o mejor plataforma cruzada.
Sé que no mencioné nada sobre la base de datos, pero incluso una simple aplicación de escritorio hello world con tecnologías web sería genial para comenzar.
Entonces, ¿cómo se hace esto? ¿Qué necesito / necesito saber exactamente?
Respuestas:
Puede comenzar con Titanium para desarrolladores de escritorio. También puede echar un vistazo a Chromium Embedded Framework . Básicamente es un control de navegador web basado en cromo.
Está escrito en C ++ para que pueda hacer todas las cosas del sistema operativo de bajo nivel que desee (Growl, iconos de bandeja, acceso a archivos locales, puertos com, etc.) en su aplicación contenedor, y luego toda la lógica de la aplicación y la interfaz gráfica de usuario en html / javascript. Le permite interceptar cualquier solicitud http para servir recursos locales o realizar alguna acción personalizada. Por ejemplo, el contenedor puede interceptar una solicitud a http://localapp.com/SetTrayIconState?state=active y luego llamar a la función C ++ para actualizar el icono de la bandeja.
También le permite crear funciones a las que se puede llamar directamente desde JavaScript.
Es muy difícil depurar JavaScript directamente en CEF. No hay soporte para nada como Firebug.
También puede probar AppJS.com (Ayuda a construir aplicaciones de escritorio para Linux, Windows y Mac usando HTML, CSS y JavaScript)
Además, como señaló @Clint, el equipo de brackets.io (Adobe) creó un shell increíble utilizando Chromium Embedded Framework que hace que sea mucho más fácil comenzar. Se llama shell de corchetes: github.com/adobe/brackets-shell Obtenga más información aquí: clintberry.com/2013/html5-desktop-apps-with-brackets-shell
fuente
NW.js
(Anteriormente conocido como node-webkit)
Sugeriría NW.js si está familiarizado con Node o tiene experiencia con JavaScript.
Puede encontrar el repositorio de NW.js aquí , y una buena introducción a NW.js aquí . Si te gusta aprender Node.js , recomendaría esta publicación SO con muchos enlaces buenos.
fuente
Actualizar
Mi respuesta anterior ahora está desactualizada. En estos días, sería una locura no considerar el uso de Electron para esto. Además, se han desarrollado muchas aplicaciones de escritorio populares.
fuente
NOTA: AppJS está en desuso y ya no se recomienda.
Echa un vistazo a NW.js en su lugar.
fuente
Parece que las soluciones para las aplicaciones de escritorio HTML / JS / CSS no faltan.
Una solución que acabo de encontrar es TideSDK: http://www.tidesdk.org/ , que parece muy prometedor, mirando la documentación.
Puede desarrollar con Python, PHP o Ruby, y empaquetarlo para Mac, Windows o Linux.
fuente
Lamento reventar su burbuja, pero el cliente de escritorio Spotify es solo un navegador basado en Webkit . Por supuesto, expone una funcionalidad adicional específica, pero solo puede ejecutar JS y renderizar HTML / CSS porque tiene un motor JS y un motor de renderizado Chromium. Esto no le ayuda a codificar una aplicación web del lado del cliente y a implementarla en múltiples plataformas.
Lo que está buscando es similar a Sencha Touch , un marco que permite que las aplicaciones HTML5 se implementen de forma nativa en dispositivos iOS, Android y Blackberry. Básicamente, actúa como intermediario entre ciertas llamadas API y la funcionalidad específica del dispositivo disponible.
No tengo experiencia con appcelerator , aunque parece estar haciendo exactamente eso, y recibo críticas muy favorables en línea. Debe intentarlo (a menos que quiera volver a 1999 y continuar con MS HTA ;)
fuente
Sé que hay Fluid and Prism (hay otros, ese es el que solía usar) que te permiten cargar un sitio web en lo que parece una aplicación independiente.
En Chrome, puede crear accesos directos de escritorio para sitios web. (lo haces desde Chrome, no puedes / no debes empacar eso con tu aplicación) Chrome Frame es diferente:
Necesitaría tener algún tipo de envoltorio como ese para su aplicación web, y luego el resto son las tecnologías web a las que está acostumbrado. Puede usar el almacenamiento local HTML5 para almacenar datos mientras la aplicación está fuera de línea. Creo que incluso podrías trabajar con SQLite.
Sin embargo, no sé cómo harías para acceder a funciones específicas del sistema operativo. Lo que describí anteriormente tiene las mismas limitaciones que cualquier sitio web "normal". Esperemos que esto le brinde algún tipo de orientación sobre dónde comenzar.
fuente
Puede crear aplicaciones Javascript con Adobe AIR ... http://www.adobe.com/products/air.html
fuente
CEF ofrece mucha flexibilidad y opciones de personalización. Pero si la intención es desarrollar rápidamente el kit de web de nodo también es una buena opción. El kit Node-web también ofrece la capacidad de llamar a módulos de nodo directamente desde DOM.
Si no hay módulos nativos para integrar, Node-Webkit puede ofrecer un mejor kilometraje. Con los módulos nativos C / C ++ o incluso C #, es mejor con CEF.
fuente