¿Buscas comenzar en el mundo de Electron? Se han publicado dos nuevos podcasts que ofrecen un gran vistazo a qué es, por qué se construyó y cómo se está utilizando.
¿Es Electron "sólo Chrome en una ventana" o es mucho más? Jessica pone a Scott en el camino correcto y explica exactamente donde encaja la plataforma de Electron en su mundo como desarrollador.
Electron is becoming more and more of a relevant and popular way of building multi-platform desktop apps with web technologies. Let's get a dive into this awesome tech and see how we can use it to enhance our own experience and our user's experience on the desktop.
If you're looking for an introduction to Electron, give the first a listen. The second goes into more detail about building apps with great tips from Nylas's Evan Morikawa.
We are currently working on two more podcasts that should come out next month, keep an eye on the @ElectronJS Twitter account for updates.
Durante los últimos dos años, Electron ha ayudado a los desarrolladores a construir aplicaciones multiplataforma de escritorio usando HTML, CSS y JavaScript. Ahora estamos encantados de compartir un hito importante para nuestro framework y para la comunidad que lo creó. La versión de Electron 1.0 ya está disponible en electronjs.org.
Electron 1.0 representa un hito importante en la estabilidad y madurez de la API. Esta versión te permite construir aplicaciones que actúen y se sientan verdaderamente nativas en Windows, Mac y Linux. Construir aplicaciones de Electron es más fácil que nunca con nueva documentación, nuevas herramientas y una nueva aplicación para guiarlo a través de las API de Electron.
Si estás listo para construir tu primera aplicación Electron , aquí tienes una guía de inicio rápido para ayudarte a empezar.
Estaremos encantados de ver tus creaciones con Electron.
Lanzamos Electron cuando lanzamos Atom hace poco más de dos años. Electron, entonces conocido como Atom Shell, era el framework sobre el que habíamos construido Atom. En esos días, Atom fue la fuerza motriz detrás de las características y funcionalidades que Electron proporcionaba, bajo la presión de lograr el lanzamiento inicial de Atom.
En estos últimos dos años hemos visto tanto empresas como proyectos de código abierto elegir Electron como la base de sus aplicaciones. Justamente el año pasado, Electron ha sido descargado por más de 1.2 millones de veces. Da una visita a algunas de las increíbles aplicaciones de Electron y añade la tuya si no está ahí.
Junto con el lanzamiento de la versión 1.0, estamos lanzando una nueva aplicación para ayudarte a explorar las API de Electron y aprender más sobre cómo hacer que tu aplicación de Electron se sienta nativa. La aplicación Electron API Demos contiene fragmentos de código para ayudar a comenzar su aplicación y consejos sobre el uso efectivo de las API de Electron.
También hemos añadido una nueva extensión para ayudarte a depurar tus aplicaciones de Electron. Devtron es una extensión de código abierto a las Herramientas para desarrolladores de Chrome diseñadas para ayudarte a inspeccionar, debug, y solucione problemas a su aplicación Electron.
Require graph que te ayuda a visualizar las dependencias internas y externas de las bibliotecas de tu aplicación tanto en los procesos principales como en los procesos de renderizado
IPC monitor que rastrea y muestra los mensajes enviados y recibidos entre los procesos de tu aplicación
Event inspector que muestra los eventos y los escuchadores que están registrados en tu aplicación en las API principales de Electron, como la ventana, la aplicación y los procesos
App Linter que verifica tus aplicaciones en busca de errores comunes y funcionalidades faltantes
Finalmente, lanzamos una nueva versión de Spectron, el framework de pruebas de integración para aplicaciones Electron.
Spectron 3.0 cuenta con un soporte completo para toda la API de Electron, lo que te permite escribir pruebas más rápidamente para verificar el comportamiento de tu aplicación en diferentes escenarios y entornos. Spectron se basa en ChromeDriver y WebDriverIO por lo que también tiene APIs completas para la navegación de la página, entrada y ejecución de JavaScript.
Electron 1.0 es el resultado de un esfuerzo de la comunidad realizado por cientos de desarrolladores. Además de la estructura principal, se han lanzado cientos de bibliotecas y herramientas para facilitar la construcción, empaquetado y despliegue de aplicaciones de Electron.
Ahora hay una nueva página de comunidad que muestra muchas de las increíbles herramientas de Electron , aplicaciones, bibliotecas y frameworks en desarrollo. También puede revisar Electron y Electron Userland organizaciones para ver algunos de estos fantásticos proyectos.
¿Eres nuevo en Electron? Mira el video de introducción de Electron 1.0:
Electron 0.37 fue publicado recientemente e incluye una gran actualización de Chrome 47 a Chrome 49, además de algunas nuevas APIs principales. Este último lanzamiento proporciona todas las nuevas características incluidas en Chrome 48 y Chrome 49. Esto incluye las propiedades personalizadas de CSS, soporte incrementado de ES6, mejoras en KeyboardEvent, mejoras en Promise y otras nuevas características disponibles en tu aplicación de Electron.
Si anteriormente has utilizado lenguajes procesados previamente como Sass y Less, es probablemente que estés familiarizado con las variables, que te permiten definir valores reutilizables en cosas como esquemas de color y diseños. Las variables ayudan a mantener las hojas de estilo SECAS y más fáciles de mantener.
Las propiedades personalizadas de CSS son similares a las variables previamente procesadas en el sentido de que son reutilizables, pero también tienen una cualidad única que las hace más poderosas y flexibles: estas pueden ser manipuladas con JavaScript. Esta sutil pero poderosa característica permite realizar cambios dinámicos a las interfaces visuales, mientras estas se benefician de la aceleración por hardware de CSS y la reducción de código duplicado entre el código de la interfaz y las hojas de estilo.
Los valores de las variables también pueden ser editadas desde la sección de Estilos en las herramientas de desarrollo para una retroalimentación y cambios rápidos:
Chrome 48 añadió la nueva propiedad code, disponible en los eventos KeyboardEvent, que representará la tecla física presionada, independientemente de la distribución del teclado del sistema operativo.
Esto debería hacer que la implementación de atajos de teclado personalizados en tu aplicación Electron sea más precisa y consistente en diferentes máquinas y configuraciones.
La versión de V8 incorpora a Electron un 91% de ES2015. Aquí tienes algunas adiciones interesantes que puedes usar directamente, sin flags ni precompiladores:
Building an Electron application means you only need to create one codebase and design for one browser, which is pretty handy. But because Electron stays up to date with Node.js and Chromium as they release, you also get to make use of the great features they ship with. In some cases this eliminates dependencies you might have previously needed to include in a web app.
There are many features and we'll cover some here as examples, but if you're interested in learning about all features you can keep an eye on the Google Chromium blog and Node.js changelogs. You can see what versions of Node.js, Chromium and V8 Electron is using at electronjs.org/#electron-versions.
Electron combines Chromium's rendering library with Node.js. The two share the same JavaScript engine, V8. Many ECMAScript 2015 (ES6) features are already built into V8 which means you can use them in your Electron application without any compilers.
Below are a few examples but you can also get classes (in strict mode), block scoping, promises, typed arrays and more. Check out this list for more information on ES6 features in V8.
Arrow Functions
findTime()=>{
console.log(newDate())
}
String Interpolation
var octocat ='Mona Lisa';
console.log(`The octocat's name is ${octocat}`);
New Target
Octocat()=>{
if(!new.target)throw"Not new";
console.log("New Octocat");
}
// Throws
Octocat();
// Logs
newOctocat();
Array Includes
// Returns true
[1,2].includes(2);
Rest Parameters
// Represent indefinite number of arguments as an array
Thanks to all the hard work Google and contributors put into Chromium, when you build Electron apps you can also use cool things like (but not limited to):
Follow along with the Google Chromium blog to learn about features as new versions ship and again, you can check the version of Chromium that Electron uses here.
Since the beginning of Electron, starting way back when it used to be called Atom-Shell, we have been experimenting with providing a nice cross-platform JavaScript API for Chromium's content module and native GUI components. The APIs started very organically, and over time we have made several changes to improve the initial designs.
Now with Electron gearing up for a 1.0 release, we'd like to take the opportunity for change by addressing the last niggling API details. The changes described below are included in 0.35.x, with the old APIs reporting deprecation warnings so you can get up to date for the future 1.0 release. An Electron 1.0 won't be out for a few months so you have some time before these changes become breaking.
By default, warnings will show if you are using deprecated APIs. To turn them off you can set process.noDeprecation to true. To track the sources of deprecated API usages, you can set process.throwDeprecation to true to throw exceptions instead of printing warnings, or set process.traceDeprecation to true to print the traces of the deprecations.
Los módulos integrados ahora se agrupan en un solo módulo, en lugar de separarse en módulos independientes, así que puedes usarlos sin conflictos con otros módulos:
Because of the way using built-in modules has changed, we have made it easier to use main-process-side modules in renderer process. You can now just access remote's attributes to use them:
The ipc module existed on both the main process and renderer process and the API was different on each side, which is quite confusing for new users. We have renamed the module to ipcMain in the main process, and ipcRenderer in the renderer process to avoid confusion:
// In main process.
var ipcMain =require('electron').ipcMain;
// In renderer process.
var ipcRenderer =require('electron').ipcRenderer;
And for the ipcRenderer module, an extra event object has been added when receiving messages, to match how messages are handled in ipcMain modules:
The BrowserWindow options had different styles based on the options of other APIs, and were a bit hard to use in JavaScript because of the - in the names. They are now standardized to the traditional JavaScript names:
The API names in Electron used to prefer camelCase for all API names, like Url to URL, but the DOM has its own conventions, and they prefer URL to Url, while using Id instead of ID. We have done the following API renames to match the DOM's styles:
Url is renamed to URL
Csp is renamed to CSP
You will notice lots of deprecations when using Electron v0.35.0 for your app because of these changes. An easy way to fix them is to replace all instances of Url with URL.
As of v0.34.0 each Electron release includes a build compatible with the Mac App Store. Previously an application built on Electron would not comply with Apple's requirements for the Mac App Store. Most of these requirements are related to the use of private APIs. In order to sandbox Electron in such a way that it complies with the requirements two modules needed to be removed:
crash-reporter
auto-updater
Additionally some behaviors have changed with respect to detecting DNS changes, video capture and accessibility features. You can read more about the changes and submitting your app to the Mac App store in the documentation. The distributions can be found on the Electron releases page, prefixed with mas-.
In Electron v0.34.1 the auto-updater module was improved in order to work with Squirrel.Windows. This means that Electron ships with easy ways for auto updating your app on both OS X and Windows. You can read more on setting up your app for auto updating on Windows in the documentation.
Hemos reestructurado y estandarizado la documentación para que luzca y se lea mejor. Además hay traducciones de la documentación aportadas por la comunidad, como el japonés y el coreano.
Se ha integrado un parche de @jaanus que, al igual que otras aplicaciones integradas de OS X, permite crear ventanas sin marcos con luces de tráfico del sistema integradas en OS X Yosemite y posteriores.
Después del Google Summer of Code hemos incorporado parches de @hokein para mejorar el soporte de impresión y agregar la habilidad de imprimir la página en archivos PDF.
Construir aplicaciones nativas con Electron por Amy Palomountain
Ben Ogle, también en el equipo de Atom, dio una charla de Electron en YAPC Asia:
Crear Aplicaciones de Escritorio con Tecnologías Web por Ben Ogle
El miembro del equipo Atom Kevin Sawicki y otros dieron una charla sobre Electron en la reunión Bay Are Electron User Group recientemente. Los videos han sido publicados, aquí hay un par:
Únete a nosotros el 29 de setiembre en las oficinas centrales de GitHub para una reunión de Electron organizada por los miembros del equipo de Atom @jlord y @kevinsawicki. There will be talks, food to snack on, and time to hangout and meet others doing cool things with Electron. We'll also have a bit of time to do lightning talks for those interested. Hope to see you there!
Talks
Jonathan Ross and Francois Laberge from Jibo will share how they use Electron to animate a robot.
Jessica Lord will talk about building a teaching tool, Git-it, on Electron.
Tom Moor will talk about the pros and cons of building video and screen sharing on Electron with speak.io.
Ben Gotow will preview N1: The Nylas Mail Client and talk about developing it on Electron.
Esta semana hemos proporcionado la documentación de Electron un lugar en electronjs.org. Puedes visitar /docs/latest para el último conjunto de documentos. También, mantendremos versiones antiguas de documentos, así que podrás visitar /docs/vX.XX.X para los documentos que se corresponden con la versión que estás usando.
Puedes visitar /docs para ver qué versiones están disponibles o /docs/all para ver la última versión de los documentos en una sola página (perfecto para búsquedas cmd + f).
Si le gustaría contribuir con el contenido de los documentos, puede hacerlo en el repositorio de Electron, desde donde los documentos son obtenidos. Los obtenemos para cada lanzamiento menor y los añadimos al repositorio del sitio Electron, el cual es realizado con Jekyll.
Si está interesado en aprender más sobre cómo obtenemos los documentos de un repositorio a otro sigue leyendo a continuación. En otro caso, ¡disfrute de los documentos!
Estamos preservando la documentación dentro del repositorio núcleo de Electron tal como está. Esto significa que electron/electron siempre tendrá la última versión de los documentos. Cuando se liberan las versiones nuevas de Electron, las duplicamos en el repositorio del sitio web de Electron electron/electronjs.org.
Para obtener los documentos ejecutamos un guion con un interfaz de línea de instrucción del script/docs v.X.XX.X con o sin la opción --latest (dependiendo de si la versión que ha importado es la última versión). Nuestro guion para obtener los documentos utiliza unos módulos de Node interesantes:
Para que Jekyll renderice cada página necesita al menos un asunto frontal vacío. Vamos a hacer uso de la materia frontal en todas nuestras páginas, así que mientras estamos transmitiendo el directorio /docs comprobamos si un archivo es el archivo README.md (en cuyo caso recibe una configuración de materia frontal) o si es cualquier otro archivo con una extensión markdown (en cuyo caso recibe una materia frontal ligeramente diferente).
Cada página recibe este conjunto de variables de la materia principal:
En el archivo _config.yml del sitio se establece una variable latest_version cada vez que se utiliza el indicador --latest al recuperar documentos. También añadimos una lista de todas las versiones que han sido añadidas al sitio así como el enlace permanente que nos gustaría para toda la colección de documentos.
latest_version: v0.27.0
available_versions:
- v0.27.0
colecciones:
docs:{output:true,permalink:'/docs/:path/'}
El archivo latest.md en nuestra raíz del sitio está en blanco excepto para este suceso frontal el cual concede a los usuarios ver el índice (como README) de la versión más última de los documentos visitando esta URL, electron.atom.io/docs/latest, en vez de utilizar el número de la última versión específicamente (a través del cual puede hacer eso, también).
Para crear una página mostrando las versiones que están disponibles, tan solo hacemos un bucle a través de la lista en nuestra configuración de un archivo, versions.md, en la raíz del sitio. También proporcionamos a esta página un enlace permanente: /docs/
{% raw %} {% for version in site.available_versions %} - [{{ version
}}](/docs/{{ version }}) {% endfor %} {% endraw %}
¡Espero que hayas disfrutado de estos trazos técnicos! Si estás interesado en más información sobre el uso de Jekyll para sitios de documentación, revisa cómo el equipo de documentación pública de GitHub en los documentos de GitHub en Jekyll.
Atom Shell es ahora llamado Electron. Puedes aprender más sobre Electron y lo que la gente está construyendo con él en su nuevo hogar electronjs.org.
Electron es el shell de aplicación multiplataforma que originalmente construimos para el editor Atom para manejar la integración de bucle de eventos Chromium/Node.js y APIs nativas.
Cuando empezamos, nuestro objetivo no era sólo satisfacer las necesidades de un editor de texto. También queríamos crear un marco sencillo que permitiera a la gente utilizar tecnologías web para crear aplicaciones de escritorio multiplataforma con todos los adornos nativos.
En dos años, Electron ha crecido enormemente. Ahora incluye actualizaciones automáticas de aplicaciones, instaladores de Windows, informes de fallos, notificaciones y otras útiles funciones de aplicaciones nativas—, todo ello expuesto a través de API de JavaScript. Y tenemos más en proyecto. Tenemos previsto extraer aún más bibliotecas de Atom para que crear una aplicación nativa con tecnologías web sea lo más fácil posible.
Hasta ahora, desarrolladores individuales, empresas emergentes y grandes compañías han creado aplicaciones con Electron. Han creado una gran variedad de aplicaciones—, como aplicaciones de chat, exploradores de bases de datos, diseñadores de mapas, herramientas de diseño colaborativo y aplicaciones de prototipado móvil.
Echa un vistazo a la nueva electronjs.org para ver más de las aplicaciones que la gente ha construido en Electron o echa un vistazo a los documentos para aprender más acerca de qué más se puede hacer.
Si ya has empezado, nos encantaría charlar contigo sobre las aplicaciones que estás creando en Electron. Envíanos un correo electrónico a info@electronjs.org para contarnos más cosas. También puedes seguir la nueva cuenta de Twitter @ElectronJS para mantenerte conectado con el proyecto.