Glosario
Esta página define algunos términos que comúnmente se utilizan en el desarrollo de Electron.
ASAR
ASAR significa formato de archivo de Shell de Atom. Un archivo de asar es un simple formato tipo tar
que concatena archivos en un solo archivo. Electron puede leer archivos arbitrarios de él sin desempacar el archivo entero.
El formato ASAR fue creado principalmente para mejorar el rendimiento en Windows cuando se cargan grandes cantidades de archivos pequeños (p.e. al cargar el árbol de dependencia JavaScript de tu aplicación desde node_modules
).
firma de código
La firma de código es un proceso donde un desarrollador de aplicación firma digitalmente su código para asegurarse que el código no haya sido manipulado después del empaquetado. Tanto Windows y macOS implementan su propia versión de la firma de código. Como desarrollar de aplicaciones de escritorio, es importante que firmes tu código si planeas distribuirlo al publico en general.
Para más información, consulta el tutorial Code Signing.
aislamiento del contexto
El aislamiento de contexto es una medida de seguridad en Electron que asegura que su script de precarga no pueda filtrar las APIs privilegiadas de Electron o Node.js a los contenidos web en su proceso de renderizado. Con el aislamiento de contexto activado, la única manera de exponer las APIs, desde tu scrip de precarga es a través de la API contextBridge
.
Para más información, consulta el tutorial Context Isolation.
Ver también: preload script, renderer process
CRT
La biblioteca de Run-time C (CRT) es la parte de la biblioteca estándar de C++ que incorpora la biblioteca estándar de ISO C99. Las librerías de Visual C++ que implementan el apoyo CRT desarrollo de código nativo, y tanto código mixto nativo y como código administrado, y puro código administrado para el desarrollo .NET.
DMG
Una imagen de disco de Apple es un formato de empaquetado utilizado por macOS. Los archivos DMG se utilizan comúnmente para la distribución de aplicaciones "instaladores".
IME
Método de entrada del editor. Un programa que permite a los usuarios introducir caracteres y símbolos no encontrados en su teclado. Por ejemplo, esto permite a los usuarios de teclados de latín introducir caracteres chinos, japoneses, coreanos e indios.
IDL
Lenguaje de descripción de interfaz. Escribe firmas de funciones y tipos de datos en un formato que se puede utilizar para generar interfaces en Java, C++, JavaScript, etc.
IPC
IPC se refiere a la comunicación entre procesos. Electron utiliza IPC para enviar mensajes JSON serializados entre el proceso principal y los procesos renderizadores.
véase también: proceso principal, proceso de renderizado
proceso principal
El proceso principal, comúnmente un archivo llamado main.js
, es el punto de entrada de cada aplicación Electron. Controla la vida de la aplicación, de abierto a cerrado. También maneja elementos nativos como el menú, barra de menú, bandeja, etc. El proceso principal es responsable de crear cada nuevo proceso de representación en la aplicación. La API completa de Node está integrada.
El archivo de proceso principal de cada aplicación se especifica en la propiedad main
en package.json
. Así es como electron
sabe qué archivo ejecutar al inicio.
En Chromium, este proceso se denomina "proceso del navegador". Se renombró en Electron para evitar confusiones con los procesos del renderizador (browser process).
Véase también: proceso, proceso de renderizado
MAC
Acrónimo para la App Store de Apple. Para más detalles sobre el envío de su aplicación al MAS, consulte la Guía de envíos de Mac App Store.
Mojo
Un sistema IPC para comunicarse dentro o entre procesos, y eso es importante porque Chrome está interesado en poder dividir su trabajo en procesos separados o no, dependiendo de las presiones de la memoria, etc.
Ver https://chromium.googlesource.com/chromium/src/+/main/mojo/README.md
Ver también: IPC
MSI
En Windows, los paquetes MSI son usados por el servicio Windows Installer (también conocido como Microsoft Installer) para instalar y configurar aplicaciones.
Puede encontrar más información en Microsoft's documentation.
Módulos nativos
Los módulos nativos (también llamados addons en Node.js) son módulos escritos en C o C++ que pueden ser cargados en Node.js o Electron mediante la función require() y utilizarlos como si fueran un módulo ordinario de Node.js. Son usados principalmente para ofrecer una interfaz entre JavaScript corriendo en Node.js y las librerías C/C++.
Nativo nodo módulos están soportados por el Electron, pero puesto que el Electron es muy probable que utilice una versión V8 del nodo binario instalada en su sistema, usted tiene que especificar manualmente la ubicación de cabeceras del Electron al compilar los módulos nativos.
Para obtener más información, lee el tutorial de módulos nativos de Node.
notarización
La notarización es un proceso específico de macOS en el que un desarrollador puede enviar una aplicación firmada con código a los servidores de Apple para verificar la presencia de componentes maliciosos a través de un servicio automatizado.
Ver también: code signing
OSR
OSR (representación fuera de pantalla) puede ser usado para cargar una página pesada en segundo plano y luego mostrarla (será mucho más rápido). Te permite renderizar la página sin motrarla en la pantalla.
Para más información, lea el tutorial Offscreen Rendering.
script de precarga
Los scripts de precarga contienen el código que se ejecuta en un proceso de renderizado antes de que su contenido web comience a cargar. Estos scripts se ejecutan dentro del contexto del renderizador, pero tienen más privilegios al tener acceso a las APIs de Node.js.
Ver también: renderer process, context isolation
process
Un proceso es una instancia en un programa de computadora que está siendo ejecutado. Aplicaciones de Electron que hacen usan de la main y uno o muchos procesos renderer están ejecutando varios programas simultáneamente.
En Node.js y Electron, cada proceso en ejecución tiene un objeto de process
. Este objeto es un global que proporciona información sobre, y control sobre, el proceso actual. Como un global, siempre está disponible para aplicaciones sin utilizar require().
Véase también: proceso principal, proceso de renderizado
proceso de renderizado
El renderer process es una ventana de navegador en tu aplicación. A diferencia del proceso principal, puede haber varios de estos y cada uno se ejecuta en un proceso separado. También pueden ocultarse.
Véase también: proceso, proceso principal
sandbox
El sandbox es una característica de seguridad heredada de Chromium que restringe sus procesos de rederizado a un conjunto limitado de permisos.
Para más información, lea el tutorial Process Sandboxing.
Ver también: process
Squirrel
Squirrel es un marco de código abierto que permite a aplicaciones de Electron actualizar automáticamente como se liberan nuevas versiones. Ver el autoUpdater API para información sobre cómo empezar con Squirrel.
espacio de usuario
Este término que se originó en la comunidad Unix, donde "userland" o "userspace" se refiere a programas que se ejecutan afuera del kernel del sistema operativo. Más recientemente, el término se ha popularizado en la comunidad Node y npm para distinguir entre las características disponibles en el "núcleo Node" versus los paqutes publicados por el registro npm por la comunidad de "usuarios" mucho más grande.
Como Node, Electron se centra en tener un pequeño conjunto de APIs que proporcionan a todas las primitivas necesarias para el desarrollo de aplicaciones de escritorio multiplataformas. Esta filosofía de diseño permite Electron a seguir siendo una herramienta flexible sin ser excesivamente prescriptivas sobre cómo deben utilizarse. Userland permite a los usuarios crear y compartir herramientas que proporcionen funcionalidad adicional además de lo que está disponible en el "núcleo".
proceso de utilidad
El proceso de utilidad es un hijo del proceso principal que permite ejecutar cualquier servicio no confiable que no se pueda ejecutar en el proceso principal. Chromium utiliza este proceso para realizar E/S de red, procesamiento de audio/video, entradas de dispositivos, entre otros. En Electron, puedes crear este proceso utilizando la API de UtilityProcess.
Véase también: proceso, proceso principal
V8
V8 es el motor JavaScript de código abierto de Google. Está escrito en C++ y es usado en Google Chrome. V8 puede ejecutarse de independiente o puede incrustarse en cualquier aplicación de C++.
Electrón forma V8 como parte de Chromium y luego apunta el Nodo ese V8 cuando lo está formando.
Los números de versión V8's siempre se corresponden con los de Google Chrome. Chrome 59 incluye V8 5.9, Chrome 58 incluye V8 5.8, etc.
webview
Las etiquetas webview
son usadas para incrustar contenido 'invitado' (tales como páginas web externas) en tu aplicación Electron. Son similares a los iframe
, pero difieren en que cada webview se ejecuta en un proceso separado. No tiene los mismos permisos que su página web y todas las interacciones entre tu aplicación y el contenido incluido serán asincrónicas. Esto mantiene a tu aplicación protegida de contenido incluido.