En Devalpo estamos emocionados de anunciar el lanzamiento de nuestro...
Leer másElectron es una plataforma que permite desarrollar aplicaciones de escritorio utilizando lenguajes y patrones de diseño comúnmente empleados para crear páginas web.
Con el tiempo, hemos comenzado a reemplazar las aplicaciones de escritorio tradicionales por aplicaciones web complejas que corren en nuestros navegadores. Muchos desarrolladores llevaron sus aplicaciones a la web en busca de mayor funcionalidad, lo que resultó en un notable aumento de aplicaciones con múltiples características ejecutándose en navegadores. Esto, en teoría, parece una solución ideal. Sin embargo, las aplicaciones web tienen una limitación técnica importante: están confinadas al contexto del navegador y no pueden acceder directamente a las características del sistema operativo. Por ejemplo, servicios como Google o LinkedIn no pueden interactuar con el disco duro o los drivers del computador.
¿Cuándo es necesario usar Electrón?
Supongamos que necesitas desarrollar una aplicación que convierta videos y deba acceder a los códecs del sistema operativo o, más comúnmente, que tu aplicación funcione sin conexión a internet. Este fue un desafío que enfrentamos en Devalpo con uno de nuestros clientes. Aquí es donde entra Electrón. Algunas aplicaciones necesitan ser de escritorio debido a sus características o funcionalidades principales, y Electrón permite construirlas combinando la potencia de las tecnologías web actuales con la capacidad de interactuar con el sistema operativo.
¿Cómo funciona Electron?
Electrón está basado en el navegador Chrome, específicamente en Chromium, que actúa como el motor principal para renderizar el código JavaScript. Cuando utilizamos Electrón, se crea un proceso principal que, a su vez, genera varios subprocesos de renderizados encargados de mostrar el contenido en ventanas reales, simulando el comportamiento de una página web.
Por ejemplo, al abrir Google Chrome y observar el administrador de tareas, podemos notar que cada pestaña ejecuta múltiples subprocesos llamados «helpers». Este diseño, que puede parecer intensivo en recursos, permite una encapsulación total entre procesos, lo que garantiza que una falla en una pestaña no afecte a las demás.
Electrón utiliza esta misma arquitectura. Crea un proceso principal que genera ventanas independientes, y cada una de estas puede comunicarse con las demás mediante un sistema llamado IPC (Inter-Process Communication). Esta comunicación es clave para el funcionamiento de Electrón y su capacidad para manejar múltiples procesos de manera eficiente.
En síntesis, Google Chrome funciona creando un proceso principal que aísla cada pestaña en un proceso secundario y esta encapsulación queda totalmente aparte del sistema operativo, no pudiendo interactuar con él. Google hizo muy bien en pensarlo así por temas de seguridad, una aplicación web no debería afectar el sistema operativo, sería muy sencillo crear cualquier malware y que funcionará bajo un sitio web. Esto pasa en la actualidad, pero la arquitectura en cómo está construido ayuda bastante a mitigar estos riesgos.
Origen de Electron
Electrón fue creado por la compañía GitHub en el 2013. Luego pasó a ser de código abierto para crear su propio editor de código llamado Atom que llegó a ser muy popular en ese tiempo entre los programadores. GitHub al ser un centro de control de versiones de código abierto , se vio en la necesidad de poder crear propio editor de código totalmente compatible con los repositorios de esta y el cual se pudiera crear colaborativamente entre diversos programadores del mundo manteniendo la esencia del porqué fue creado Git-
Entonces tuvieron que tomar la decisión en que lenguaje hacerlo y uno de los lenguajes de programación más universales o que al menos la mayoría de los programadores está familiarizado , es JavaScript. Recordemos que GitHub tiene la estadística de la cantidad de repositorios creados con x lenguaje en particular. No debería extrañarnos que en base a esa estadística obtuvieran cuál era el lenguaje “más universal” en sus repositorios. Con esto podían asegurarse de que muchos programadores de todo el mundo pudieran colaborar en la creación de este nuevo editor e ir mejorando el producto en nuevas y futuras versiones. ¿Y Quienes son los traductores de código JavaScript por excelencia? Así es, los navegadores web.
Dieron el palo al gato, como le decimos a una idea exitosa en Chile y otras compañías pusieron sus ojos en este proyecto viendo los beneficios de poder crear aplicaciones de escritorio en un entorno completamente web. Así es como Slack , Discord y en su momento Spotify decidieron crear sus apps con esta tecnología.
¿Por qué Desarrollar con Electrón?
Todo suena genial hasta ahora, pero ¿qué tiene que ver Electrón con todo esto del navegador Google Chrome?
Hiciste la pregunta clave y la respuesta es que electrón funciona igual al navegador, su arquitectura interna es la misma. Todas las reglas y convenciones de Chrome se utilizan para el Desarrollo en Electrón.
En Electrón vamos a crear un objeto o un proceso general que genera una vista principal, y dónde este proceso principal puede generar cierto número de procesos secundarios. Es decir, una pantalla principal de la aplicación puede crear otras pantallas separas e independientes, pero bajo un mismo microambiente tecnológico. Dónde cada una de estas ventanas pueden comunicarse a través del mismo IPC.
Finalmente hemos llegado al núcleo de esta explicación y que ya lo hemos dicho anteriormente, una app en electrón funciona de la misma forma como el navegador Chrome y esto es muy importante de entender porque Desarrollar en Electrón en ocasiones nos podemos encontrar cosas bastantes extrañas como programadores al interactuar con electrón.
Cuando comiences a programar con Electrón quiero que comiences a imaginar que estamos programando para el mismo entorno de una aplicación web. Sin embargo, el área de la pantalla se va a extender por toda la pantalla, desaparecen las opciones extras que traen un navegador. Ya no solo estamos limitados a mostrar contenido en un área de la pantalla, si no que ahora podemos hacerlo en la totalidad de ella.
En Devalpo estamos emocionados de anunciar el lanzamiento de nuestro...
Leer másElectron es una plataforma que permite desarrollar aplicaciones de escritorio...
Leer másEn un mundo donde la tecnología avanza a pasos agigantados,...
Leer más