Escribiendo código para un Sistema Operativo concreto en Electron


Una de las ventajas de usar Electron es que al ser multiplataforma, no nos importa el sistema operativo sobre el que va a correr nuestra aplicación.
Sin embargo, a veces necesitamos que nuestro código se específico para un sistema operativo, por ejemplo, si vamos a usar la consola de comandos, o necesitamos recuperar información del sistema.
Tener que escribir múltiples ifs cada vez que queremos una funcionalidad de un sistema operativo concreto parece un trabajo excesivo. El código se vuelve rápidamente en algo difícil de analizar y comprender.
Para mantener el código claro y legible, podemos crear un pequeño ‘ayudante’ y eliminar los ifs y la lógica específica de cada sistema operativo.

Implementando plataformas

Primero, vemos el objecto platforms que contiene los nombres de todos los sistemas operativos soportados. Se hace tan sólo por convenio. Entonces podemos usar platforms.WINDOWS en lugar de teclear ‘WINDOWS’ cada vez en nuestro objeto con handlers que pasamos a la función byOS.
Además, fíjate en el objeto PlatformsNames. Las claves son el resultado de llamar a os.platform(). Los valores son las claves del objeto platform. Sencillamente lo mapeamos a un nombre más sencillo.
Por ejemplo, cuando os.platform() devuelve win32, lo mapeamos a platform.WINDOWS llamando a platformsNames[os.platform()].
En currentPlatform, guardamos la plataforma usada ahora mismo, de modo que podemos relacionarlo con cualquier objeto con sus ‘handlers’.

Implementando lanzamientos

Podríamos ir incluso más lejos y diferenciar entre lanzamientos de un mismo sistema operativo, por ejemplo, Windows 7, 8 o 10.

Ahora podemos usar os.release() para comprobar el lanzamiento (o versión) del sistema.
Podemos dividir la cadena resultante y comprobar la versión de Windows. Aquí podéis encontrar una lista completa. Para Linux/Mac, no acabo de ver la utilidad de esto, así que he dejado releases.ANY.
En whatWindowsIsHeUsing puedes ver que sólo comprobamos las diferentes versiones de Windows si ejecutamos la aplicación en este sistema operativo.
Pues ver el código completo en este repositorio.

¡Gracias por tu tiempo! Si tienes ideas acerca de como generar código específico para un sistema operativo, puedes compartirlas más abajo.
Si tienes comentarios o preguntas, puedes dejarlas en la sección de comentarios o puedes enviármelas.
Visita mis redes sociales
¡Únete a mi lista de correo!

Nota: puedes encontrar el artículo original en https://medium.freecodecamp.org/how-to-write-os-specific-code-in-electron-bf6379c62ff6

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *