No hace mucho tiempo era imposible crear una aplicación de escritorio con JavaScript. Afortunadamente, estos tiempos han pasado, y ahora los desarrolladores de JS pueden utilizar sus conocimientos y experiencia en desarrollo web para crear aplicaciones de escritorio con un aspecto nativo.
Como siempre, es más fácil decirlo que hacerlo. Mientras realizábamos nuestra investigación, nos dimos cuenta de que hay mucha confusión sobre cómo se crean realmente las aplicaciones de escritorio JavaScript y cómo funcionan. También es bastante difícil encontrar las herramientas adecuadas para usar en un proyecto.
En este artículo, echamos un vistazo más de cerca a los 5 frameworks de trabajo de JavaScript más conocidos para aplicaciones de escritorio.
Electron
Electron es un framework de código abierto construido inicialmente por GitHub para el editor Atom en 2013. Esta biblioteca le permite crear aplicaciones GUI de escritorio con tecnologías web como JavaScript, HTML y CSS.
Las aplicaciones de escritorio Electron se comportan como aplicaciones web, pero pueden leer y escribir datos en el filesystem del ordenador. Hay muchas aplicaciones de escritorio populares construidas con Electron en el mercado, por ejemplo, Skype para Linux o Slack.
La ventaja significativa de esta solución es que no hay necesidad de un desarrollador web JavaScript para aprender nueva tecnología o lenguaje para construir una aplicación de escritorio. La aplicación Electron suele reutilizar la lógica de negocio, el diseño y la estructura general de una aplicación web. Es una gran manera de ahorrar tiempo y dinero en el lado de los negocios y el desarrollo.
Si eres un desarrollador de JavaScript, necesitarás aprender algunas cosas relativamente simples sobre cómo funciona Electron y su API. Lo más probable es que pueda configurar su primera aplicación de escritorio Electron en tan sólo unos días.
El electrón es una tecnología madura con una comunidad en crecimiento y, por lo tanto, constituye un gran entorno de producción. Gracias al renderizado de la interfaz de usuario del motor Chromium, tendrá acceso a herramientas como Developer Tools y Storage Access.
NW.js
El siguiente en nuestra lista de los mejores frameworks JavaScript para aplicaciones de escritorio es NW.js, anteriormente conocido como node-webkit. Fue construido en el Centro de Tecnología de Código Abierto de Intel combinando el framework Node.js con un motor Chromium (anteriormente conocido como Webkit).
Gracias a la combinación de Node.js y Chromium, puede construir una aplicación que no sólo cargue un sitio web local en una ventana de aplicación, sino que también se conecte con el sistema operativo a través de la API JavaScript. Esta solución permite controlar parámetros como las dimensiones de las ventanas, la barra de herramientas y los elementos de menú, y proporciona acceso a los archivos de ordenador locales.
NW.js no tiene opinión y le da la libertad de elegir las estructuras y bibliotecas que desea utilizar en un proyecto. Permite llamar a los módulos Node.js directamente desde el DOM, soporta todas las características del navegador, proporciona una protección de fuente JavaScript y está disponible en Linux, Mac OS y Windows.
AppJS
AppJS es una herramienta sencilla pero potente que puede utilizar para crear aplicaciones multiplataforma sin necesidad de aprender nuevos idiomas. Al igual que las otras bibliotecas mencionadas hoy, usted está bien siempre y cuando esté familiarizado con HTML, CSS y JavaScript.
Aunque es la estructura de Node.js-Chromium más antigua del trío AppJS, Electron y NW.js, no está tan madura como su competencia. Debido a que ha perdido su impulso, puede no ser la mejor opción para nuevos proyectos.
Meteor
Meteor se anuncia como "la forma más rápida de crear aplicaciones JavaScript", una "plataforma de código abierto para web, móvil y escritorio". Este framework multiplataforma escrito en Node.js puede utilizarse para crear aplicaciones web, móviles y de escritorio.
Aunque no construye aplicaciones de escritorio por sí solo, puede ser usado con Cordova u otras herramientas similares para producirlas. Utiliza MongoDB, Protocolo de Datos Distribuidos, y un patrón de publicación-suscripción para autopropagar los cambios sin interferencia del desarrollador. Tiene módulos front-end y back-end, incluyendo la API, herramientas de construcción, paquetes Node.js.
Proton Native
Proton Native es un nuevo lanzamiento. Se puso a disposición en GitHub en los primeros meses de 2018. Lo que hace Proton Native para el desarrollo de aplicaciones de escritorio es similar a lo que ha hecho React Native para móviles.
Lo que lo convierte en uno de los mejores frameworks de JavaScript para aplicaciones de escritorio es que le permite administrar el estado y crear interfaces de usuario sin problemas mientras lo hace en varias plataformas. Funciona de forma muy diferente a Electron, que ejecuta un navegador completo de Chrome para gestionar una pequeña interfaz gráfica de usuario. Por otro lado, Proton Native utiliza herramientas nativas, ocupa menos espacio y necesita menos recursos.
Esta solución tiene otras ventajas - usa la misma sintaxis que React Native, trabaja con librerías React incluyendo Redux y es compatible con Node.js.
Proton Native es uno de los frameworks de JavaScript para aplicaciones de escritorio.
En resumen, los frameworks JavaScript para aplicaciones de escritorio se pueden dividir en tres categorías:
Frameworks que producen aplicaciones de escritorio alojadas en navegadores web, basadas en Node.js y Chromium (Electron, NW.js, AppJS).
Frameworks que necesitan ser usados con herramientas similares a las de Córdoba (Meteor).
Frameworks que utilizan componentes genuinamente nativos para construir una aplicación de escritorio (Proton Native).
Depende de ti cuál elijas, y depende principalmente del tipo de proyecto que desarrolles.