Ahora que TideSDK está efectivamente muerto, he estado buscando 'envoltorios' alternativos para ejecutar aplicaciones HTML / CSS / JS como aplicaciones de escritorio independientes. Las tres opciones viables con las que me he encontrado hasta ahora son NW.js (anteriormente node-webkit), brackets-shell y Electron (anteriormente atom-shell).
El problema es que no parece haber una comparación suficientemente completa entre los tres en términos de conjunto de características, compatibilidad, etc. Espero convertir esto en un hilo canónico más o menos en las diferencias (objetivas) entre los tres, en particular con respecto a:
- Soporte de plataforma ; sistemas operativos, dependencias, etc.
- Soporte de funciones de idioma , en lo que respecta a HTML5, CSS3 y JavaScript. Piense cosas como "¿funciona el video HTML5 y, en caso afirmativo, qué códecs están disponibles?"
- Funciones adicionales no estándar , como iconos de bandeja, notificaciones emergentes y barras de menú representadas por el sistema operativo.
- Extensibilidad ; p.ej. capacidad de 'enchufar' código nativo, hablar con Node.js, etc.
- Arquitectura ; en particular las diferencias arquitectónicas que afectan el uso diario como desarrollador.
- Depuración ; Incluye herramientas de desarrollo, compatibilidad con herramientas de uso común como
node-inspector
, etc. - ... y así.
¿Cuáles son las diferencias técnicas objetivas que importan al elegir entre ellos como desarrollador de aplicaciones?
html
node-webkit
electron
brackets-shell
Sven Slootweg
fuente
fuente
Respuestas:
Hice una investigación similar hace unos dos meses, y al final elegí el kit web de nodos. La mayor ventaja de node-webkit es node.js y npm. La gestión de paquetes de npm es realmente agradable, y el nodo tiene un buen acceso al sistema de archivos.
Brackets-shell parecía interesante, pero aparte de un buen IDE, realmente no entendí lo que lo hacía tan bueno o mejor que el resto. Ellos tienen muy claro que "El soporte de los brackets solo se mantiene para su uso en el proyecto Brackets", que los gritos se me escapan.
https://github.com/adobe/brackets-shell#overview
Atom-shell parece estar activo recientemente, pero se parece mucho a los corchetes en el sentido de que realmente están escribiendo y editando / IDE que están conectados a un tiempo de ejecución de webkit. También está construido encima de node.js. Este tiene el inconveniente de ser difícil de buscar cosas en línea sin recordar la química de tu escuela secundaria.
Realmente no quiero un nuevo editor, y la mayoría de los programadores ya tienen su favorito. Para el desarrollo real de la aplicación, prácticamente funcionan igual, y deberían, ya que todos usan webkit. Básicamente, escribe 90-95% como un sitio web, y luego se ocupa de las partes nativas y algo de configuración.
Estas cosas son ciertas para las tres plataformas: se ejecuta en soporte de idiomas para Windows, Mac y Linux: HTML5, CSS3 y Javascript: dado que ejecutan JavaScript, puede descargar y ejecutar casi cualquier biblioteca / marco que desee.
La gran advertencia en webkit es el soporte de códec. Por lo general, tendrá problemas con los códecs de video no libres, a menos que reconstruya el dll / so para admitirlos. Por ejemplo, el nodo webkit enviado no reproducirá video mp4.
fuente
bracket-shell
y Atom está construidoatom-shell
, pero puede usar cualquier editor o IDE de su elección para crear código con ellos. Creo que lo que quiere el OP es más sobre las diferencias técnicas entre los 3. Sería genial ver algo como TodoMVC en los 3 entornos de tiempo de ejecución.He estado jugando con Atom-Shell en los últimos días, y hasta ahora me encanta.
La mejor parte es que está respaldado por GitHub ... que debería permitirle instalarse en la plataforma a largo plazo, especialmente si gana un gran número de seguidores. También es posible gracias a las mejoras directas de Node.js, cortesía de un contrato con StrongLoop , quien es un importante contribuyente de Node.js (afirman que emplean más desarrolladores principales de Node.js que cualquier otra compañía, incluso Joyent).
También me ha resultado bastante cómodo comenzar. Me llevó cerca de un día aprender la estructura y obtener mi primera prueba de concepto en funcionamiento. Muy genial.
Puntos de bala:
Actualización (25/11/14): todavía no he encontrado un caso de uso para Atom-Shell en ninguna capacidad oficial, pero lo he usado para construir algunas aplicaciones pequeñas para mi propio uso, la más compleja es una aplicación que tira mi tiempo se registra desde mi software PM y crea facturas de Paypal.
Mi opinión sobre la plataforma sigue siendo positiva. Es bastante asombroso.
En mi aplicación de facturación de tiempo, traje con éxito la plantilla de ejemplo del tablero de Bootstrap 3 y algunos módulos de nodo (bluebird, Paypal SDK, Teamwork PM Client) para crear una aplicación ligeramente compleja. Me llevó unos días y hace bien su trabajo.
Realmente no puedo pensar en nada negativo que decir sobre Atom-Shell, es sólido, estable, rápido y fácil de codificar. Espero que esto ayude a alguien.
fuente
Además de admitir completamente los estándares web, NW.js admite una lista de características no estándar para el desarrollo de aplicaciones nativas que incluyen:
Hay mucho más para ver en la wiki, incluido Menú, Bandeja, etc.
fuente
He estado trabajando con brackets-shell durante algún tiempo, estos son algunos de mis hallazgos:
La documentación podría ser mejor.
soporte de plataforma Admite Windows, Mac y Linux. También se puede crear un paquete de instalación. Solo lo probé en Win y Mac, funciona muy bien.
fuente
Una cosa a tener en cuenta (si le importa), es que el Electron oficialmente no es compatible con Windows Vista. La cuota de mercado de Vista está a medio camino entre OSX 10.9 y 10.10 (los cuales son totalmente compatibles con Electron). Vista también es compatible con Microsoft hasta 2017.
NW.js funciona bien en Vista, así como en OSX 10.9+. NW.js funciona en Ubuntu, Debian, Zorin, Manjaro, Arch y la mayoría de los sistemas operativos Linux basados en Debian. Electron ha rechazado las relaciones públicas para corregir errores específicos de Ubuntu en su plataforma, lo cual es preocupante.
NW.js también funciona en XP. Actualmente el 18% del mercado todavía está en XP. Por lo tanto, si su aplicación de escritorio tiene un propósito más general o desea tener acceso a los adoptadores tardíos que todavía están en XP, probablemente esté mejor con NW.js (0.14.7) ya que Electron solo admite Win 7 y versiones posteriores.
Si usa NW.js 0.12.3 también puede soportar OSX 10.6+ y versiones muy antiguas de sistemas operativos Linux basados en Debian como Ubuntu y Win XP +. Sin embargo, se recomienda hacer compilaciones especiales solo para esos sistemas heredados y usar las versiones más nuevas de NW.js para los sistemas operativos más nuevos.
fuente