Marco de desarrollo basado en Chromium
Electron (anteriormente conocido como Atom Shell [5] ) es un marco de software libre y de código abierto desarrollado y mantenido por OpenJS Foundation . [6] El marco está diseñado para crear aplicaciones de escritorio utilizando tecnologías web (principalmente HTML , CSS y JavaScript , aunque son posibles otras tecnologías como marcos front-end y WebAssembly ) que se representan utilizando una versión del motor del navegador Chromium y un back end que utiliza el entorno de ejecución Node.js. [7] También utiliza varias API para habilitar funcionalidades como la integración nativa con los servicios de Node.js y un módulo de comunicación entre procesos .
Electron fue creado originalmente para Atom [5] y es el marco GUI principal detrás de varios otros proyectos de código abierto, incluidos GitHub Desktop , Light Table , [8] Visual Studio Code , WordPress Desktop, [9] y Eclipse Theia . [10]
Arquitectura
Las aplicaciones de Electron incluyen un proceso "principal" y varios procesos "renderizadores". El proceso principal ejecuta la lógica de la aplicación (por ejemplo, menús, comandos de shell, eventos del ciclo de vida) y luego puede iniciar varios procesos renderizadores al crear una instancia de la BrowserWindow
clase, que carga una ventana que aparece en la pantalla al renderizar HTML y CSS . [ cita requerida ]
Tanto el proceso principal como el de renderizado pueden ejecutarse con la integración de Node.js si el nodeIntegration
campo en el proceso principal está configurado en true
. [ cita requerida ]
La mayoría de las API de Electron están escritas en C++ o Objective-C y están expuestas directamente al código de la aplicación a través de enlaces de JavaScript . [11]
Historia
En septiembre de 2021, Electron pasó a un ciclo de lanzamiento de ocho semanas entre versiones principales para que coincida con el ciclo de lanzamiento de Chromium Extended Stable y para cumplir con un nuevo requisito de Microsoft Store que requiere que las aplicaciones basadas en navegador estén dentro de las dos versiones principales de la última versión del motor del navegador. [12]
Electron publica con frecuencia nuevas versiones principales junto con cada lanzamiento de Chromium . Las últimas tres versiones estables cuentan con el soporte del equipo de Electron. [13]
Uso
Las aplicaciones de escritorio creadas con Electron incluyen Atom , [28] balenaEtcher , [29] Eclipse Theia , [10] Microsoft Teams antes de 2.0, [30] [31] Slack , [32] y Visual Studio Code . [33] [34] El navegador Brave se basaba en Electron antes de que se reescribira para usar Chromium directamente. [35]
Recepción
La crítica más común a Electron es que requiere una gran cantidad de software cuando se utiliza para programas simples. [36] Como resultado, Michael Larabel se ha referido al marco como "famoso entre la mayoría de los usuarios de escritorio Linux por consumir muchos recursos, no integrarse bien con la mayoría de los escritorios y, en general, ser despreciado". [37] Mientras tanto, Joey Sneddon afirma que esta compensación es sensata ya que Electron reduce en gran medida el costo de desarrollo y mantenimiento de software multiplataforma. [38]
Los investigadores han demostrado que el amplio conjunto de características de Electron puede ser secuestrado por actores maliciosos con acceso de escritura a los archivos fuente de JavaScript. Esto requiere acceso root en sistemas *nix y los desarrolladores de Electron no lo consideran una vulnerabilidad. [39] Aquellos a quienes les preocupa que Electron no siempre esté basado en la versión más reciente de Chromium han recomendado las aplicaciones web progresivas como alternativa. [40]
Véase también
Referencias
- ^ "electrón/electrón". GitHub . Archivado desde el original el 2 de agosto de 2016 . Consultado el 8 de mayo de 2018 .
- ^ "Versión 33.0.0". 14 de octubre de 2024. Consultado el 16 de octubre de 2024 .
- ^ "Lanzamiento de electron v34.0.0-alpha.1 · electron/electron". GitHub . 15 de octubre de 2024 . Consultado el 16 de octubre de 2024 .
- ^ "electron/LICENSE at master". GitHub . Archivado desde el original el 12 de mayo de 2017 . Consultado el 3 de julio de 2020 .
- ^ ab Sawicki, Kevin (23 de abril de 2015). «Atom Shell ahora es Electron». Electron . Archivado desde el original el 9 de noviembre de 2017. Consultado el 6 de enero de 2022 .
- ^ "Cree aplicaciones de escritorio multiplataforma con JavaScript, HTML y CSS | Electron". Archivado desde el original el 9 de mayo de 2022. Consultado el 1 de febrero de 2023 .
- ^ "Electron Internals: Using Node as a Library" (Funciones internas de Electron: uso de Node como biblioteca). electronjs.org . 8 de agosto de 2016. Archivado desde el original el 9 de noviembre de 2017. Consultado el 3 de julio de 2020 .
- ^ Horner, Gabriel (10 de diciembre de 2015). «Light Table 0.8.0». lighttable.com. Archivado desde el original el 13 de diciembre de 2015. Consultado el 3 de julio de 2020 .
- ^ "Repositorio de GitHub". GitHub . Archivado desde el original el 19 de febrero de 2016 . Consultado el 16 de junio de 2019 .
- ^ ab "Theia - Plataforma IDE de escritorio y en la nube". theia-ide.org . Archivado desde el original el 20 de abril de 2018 . Consultado el 31 de diciembre de 2021 .
- ^ "De nativo a JavaScript en Electron | Blog de Electron". electronjs.org . 19 de marzo de 2019. Archivado desde el original el 26 de abril de 2019 . Consultado el 26 de abril de 2019 .
- ^ "Nueva cadencia de lanzamiento de Electron | Electron". electronjs.org . 14 de julio de 2021. Archivado desde el original el 14 de julio de 2021 . Consultado el 9 de febrero de 2022 .
- ^ "Electron Releases | Electron". electronjs.org . Archivado desde el original el 16 de diciembre de 2022 . Consultado el 16 de diciembre de 2022 .
- ^ "Lanzamiento de electron v33.0.0 · electron/electron". GitHub . 14 de octubre de 2024 . Consultado el 16 de octubre de 2024 .
- ^ "Lanzamiento de electron v28.0.0 · electron/electron". GitHub . 4 de diciembre de 2023. Archivado desde el original el 14 de diciembre de 2023 . Consultado el 14 de diciembre de 2023 .
- ^ "Lanzamiento de electron v27.0.0 · electron/electron". GitHub . 10 de octubre de 2023. Archivado desde el original el 11 de octubre de 2023 . Consultado el 11 de octubre de 2023 .
- ^ "Lanzamiento de electron v26.0.0 · electron/electron". GitHub . Archivado desde el original el 23 de septiembre de 2023 . Consultado el 23 de septiembre de 2023 .
- ^ "Lanzamiento de electron v25.0.0 · electron/electron". GitHub . Archivado desde el original el 23 de septiembre de 2023 . Consultado el 23 de septiembre de 2023 .
- ^ "Lanzamiento de electron v24.0.0 · electron/electron". GitHub . Archivado desde el original el 23 de septiembre de 2023 . Consultado el 23 de septiembre de 2023 .
- ^ "Lanzamiento de electron v23.0.0 · electron/electron". GitHub . Archivado desde el original el 23 de septiembre de 2023 . Consultado el 23 de septiembre de 2023 .
- ^ ab "Lanzamiento de electron v22.0.0 · electron/electron". GitHub . Archivado desde el original el 15 de diciembre de 2022 . Consultado el 16 de diciembre de 2022 .
- ^ ab "Lanzamiento de electron v21.0.0 · electron/electron". GitHub . Archivado desde el original el 16 de diciembre de 2022 . Consultado el 16 de diciembre de 2022 .
- ^ "Lanzamiento de electron v20.0.0 · electron/electron". GitHub . Archivado desde el original el 16 de diciembre de 2022 . Consultado el 16 de diciembre de 2022 .
- ^ abc «Lanzamiento de electron v19.0.0 · electron/electron». GitHub . Archivado desde el original el 31 de mayo de 2022 . Consultado el 31 de mayo de 2022 .
- ^ ab "Lanzamiento de electron v18.0.0 · electron/electron". GitHub . Archivado desde el original el 4 de mayo de 2022 . Consultado el 4 de mayo de 2022 .
- ^ ab "Lanzamiento de electron v17.0.0 · electron/electron". GitHub . Archivado desde el original el 12 de febrero de 2022 . Consultado el 28 de febrero de 2022 .
- ^ ab "Lanzamiento de electron v16.0.0 · electron/electron". GitHub . Archivado desde el original el 6 de diciembre de 2021 . Consultado el 3 de diciembre de 2021 .
- ^ Sawicki, Kevin (23 de abril de 2015). «Atom Shell ahora es Electron». Electron . Archivado desde el original el 16 de octubre de 2019. Consultado el 15 de julio de 2017 .
- ^ "Etcher en GitHub". GitHub . Archivado desde el original el 16 de noviembre de 2018 . Consultado el 7 de julio de 2020 .
- ^ msdmaguire. «Cómo utiliza Microsoft Teams la memoria - Microsoft Teams». docs.microsoft.com . Archivado desde el original el 8 de diciembre de 2020 . Consultado el 12 de noviembre de 2021 .
- ^ Redmond, Tony. "Teams 2.0 se aleja de Electron para adoptar Edge WebView2". Office 365 para profesionales de TI . Consultado el 2 de agosto de 2024 .
- ^ "Construcción de aplicaciones híbridas con Electron". Varias personas están programando . 25 de octubre de 2016. Archivado desde el original el 16 de octubre de 2019. Consultado el 12 de agosto de 2017 .
- ^ Bright, Peter (29 de abril de 2015). «El nuevo editor de código de Microsoft está basado en Chromium de Google». Ars Technica . Archivado desde el original el 7 de mayo de 2015. Consultado el 18 de noviembre de 2015 .
- ^ "Proyecto de código abierto". GitHub . 29 de marzo de 2022. Archivado desde el original el 23 de noviembre de 2015 . Consultado el 20 de mayo de 2018 .
- ^ Singh, Jagmeet (3 de enero de 2017). "La gente ahora incluso está haciendo aprendizaje automático en JavaScript". Código abierto para EE. UU. Archivado desde el original el 7 de enero de 2017. Consultado el 26 de agosto de 2022 .
- ^ Proven, Liam (19 de noviembre de 2021). «Algunas joyas del software libre: Franz, RamBox, Pidgin y más». The Register. Archivado desde el original el 19 de noviembre de 2021. Consultado el 26 de agosto de 2022 .
- ^ Larabel, Michael (9 de febrero de 2019). "Las aplicaciones de Electron son malas, así que ahora puedes crear aplicaciones de escritorio con HTML5 + Golang". Phoronix. Archivado desde el original el 26 de agosto de 2022. Consultado el 26 de agosto de 2022 .
- ^ Sneddon, Joey (23 de julio de 2017). "En serio, amigos, las aplicaciones de Electron no son tan malas". Dios mío, Ubuntu. Archivado desde el original el 16 de mayo de 2018. Consultado el 26 de agosto de 2022 .
- ^ Gallagher, Sean (7 de agosto de 2019). "Skype, Slack y otras aplicaciones basadas en Electron pueden ser atacadas fácilmente con puertas traseras". Ars Technica. Archivado desde el original el 7 de agosto de 2019. Consultado el 26 de agosto de 2022 .
- ^ Hoffman, Chris (15 de agosto de 2019). "Esa aplicación nativa probablemente sea solo un navegador web antiguo". How To Geek. Archivado desde el original el 15 de agosto de 2019. Consultado el 26 de agosto de 2022 .
Enlaces externos