Electron (software)
# Electron (software)

Electron (conocido anteriormente como Atom Shell) es un framework de código abierto creado por Cheng Zhao, y ahora desarrollado por GitHub. Permite el desarrollo de aplicaciones gráficas de escritorio usando componentes del lado del cliente y del servidor originalmente desarrolladas para aplicaciones web: Node.js del lado del servidor y Chromium como interfaz. Electron es el framework gráfico detrás de muchos proyectos de código abierto importantes, incluyendo a Atom de GitHub y Microsoft Visual Studio Code, la aplicación de escritorio del servicio de streaming Tidal y el IDE Light Table, al igual que el cliente de escritorio freeware del servicio de mensajería instantánea Discord.

## Historia

* El 11 de abril de 2013, Electron fue creado como Atom Shell.
* El 6 de mayo de 2014, el código de Atom y Atom Shell fue liberado bajo la licencia MIT.
* El 17 de abril de 2015, Atom Shell fue renombrado como Electron.
* El 11 de mayo de 2016, Electron alcanzó la versión 1.0.
* El 20 de mayo de 2016, Electron permitió la publicación de paquetes de aplicaciones a la Mac App Store.
* El 2 de agosto de 2016, Windows Store añadió el soporte para aplicaciones Electron.

## Estructura de una aplicación Electron

Una aplicación Electron básica consiste en al menos tres archivos: package.json (metadatos), main.js (código) y index.html (GUI). El framework es provisto por el ejecutable de Electron (electron.exe en Windows, electron.app en macOS, y electron en Linux). Los desarrolladores que deseen añadir iconos y diseño propio pueden renombrar y editar el ejecutable de Electron.

El archivo package.json almacena datos acerca del paquete, empleando la notación literal de objetos de JavaScript (JSON). Los elementos básicos que podemos encontrar en este archivo son:

* name: el nombre de la aplicación
* version: el número de versión de la aplicación
* description: la descripción de la aplicación
* main: la ruta del script principal de la aplicación

Una de las principales funciones del archivo package.json es permitir a npm gestionar las dependencias del proyecto.

## Aplicaciones que usan Electron

Existen diversas aplicaciones de escritorio desarrolladas utilizando Electron, algunos ejemplos son los listados a continuación:

* Atom
* Calmly Writer
* CrashPlan
* Discord
* Etcher
* Evernote
* GitHub Desktop
* Keybase
* Light Table
* Microsoft Teams
* Microsoft Visual Studio Code
* Microsoft SQL Operations Studio
* Midori (navegador)
* Slack
* Signal
* Twitch
* WhatsApp
* Wire
* Yammer
* Skype
* Spotify
