Colección de citas famosas - Frases elegantes - Cómo creamos aplicaciones de escritorio Linux usando Electron

Cómo creamos aplicaciones de escritorio Linux usando Electron

Tutanota es un servicio de correo electrónico seguro y de código abierto disponible a través de un navegador, así como de aplicaciones para iOS y Android. Su código de cliente se publica bajo GPLv3 y la aplicación de Android está disponible en F-Droid para que todos puedan usar una versión completamente independiente de Google.

Dado que Tutanota se centra en el código abierto y el desarrollo de clientes Linux, queríamos lanzar una aplicación de escritorio para Linux y otras plataformas. Como equipo pequeño, descartamos rápidamente la creación de aplicaciones nativas para Linux, Windows y MacOS y decidimos utilizar Electron para crear nuestras aplicaciones.

Para cualquiera que quiera ofrecer rápidamente aplicaciones multiplataforma visualmente consistentes, Electron es la mejor opción, especialmente si ya tiene una aplicación web y desea usarla desde la API del navegador cuando esté libre de ataduras. Tutanota es uno de esos casos.

Tutanota se basa en SystemJS y Mithril y tiene como objetivo proporcionar comunicación por correo electrónico sencilla y segura para todos. Por lo tanto, debe proporcionar muchas de las funciones estándar que los usuarios esperan de un cliente de correo electrónico.

Algunas de estas funciones, como las notificaciones automáticas básicas, la búsqueda de texto y contactos y la compatibilidad con la autenticación de dos factores, están fácilmente disponibles en el navegador gracias a las API y los estándares modernos. Otras funciones, como las copias de seguridad automáticas o la compatibilidad con IMAP que no requieren retransmisión a nuestros servidores, requieren acceso restringido a los recursos del sistema, que es lo que proporciona el marco Electron.

Aunque algunas personas critican a Electron como "sólo un envoltorio básico", tiene beneficios obvios:

Tutanota no depende de grandes fondos de inversión, sino de proyectos impulsados ​​por la comunidad. Nuestro equipo ha crecido orgánicamente gracias a que cada vez más usuarios actualizan a los planes pagos de nuestro servicio gratuito. Escuchar las necesidades de nuestros usuarios no sólo es importante para nosotros, sino que también es fundamental para nuestro éxito.

Ofrecer un cliente de escritorio es la característica más solicitada por los usuarios de Tutanota, y estamos orgullosos de poder ofrecer ahora una versión beta gratuita del cliente de escritorio a todos los usuarios. (También implementamos otra función muy solicitada: la búsqueda de datos cifrados, pero ese es un tema para otro momento).

Nos gusta proporcionar a los usuarios versiones firmadas de Tutanota y admitir funciones que no son posibles en los navegadores, como notificaciones push a través de procesos en segundo plano. Ahora planeamos agregar más funciones específicas de escritorio, como compatibilidad con IMAP (sin depender de nuestro servidor para actuar como proxy), copias de seguridad automáticas y disponibilidad sin conexión.

Elegimos Electron porque su combinación de Chromium y Node.js era la mejor opción para nuestro pequeño equipo de desarrollo, ya que solo requería cambios mínimos en nuestra aplicación web. Poder utilizar la API del navegador para todas las funciones es especialmente útil cuando comenzamos, reemplazando lentamente estos componentes con versiones más nativas a medida que avanzamos. Este método es especialmente conveniente para descargas de archivos adjuntos y notificaciones.

Sabemos que algunas personas están preocupadas por los problemas de seguridad de Electron, pero consideramos que las opciones de Electron para ajustar el acceso en aplicaciones web son muy satisfactorias. Puede utilizar recursos como la documentación de seguridad de Electron y la lista de verificación de seguridad de Electron de Luca Carettoni para ayudar a prevenir incidentes catastróficos con contenido que no es de confianza en sus aplicaciones web.

El cliente web Tutanota se creó desde cero como un protocolo confiable para la comunicación entre procesos. Aprovechamos los hilos web para mantener la capacidad de respuesta de la interfaz de usuario (UI) al cifrar y solicitar datos.

Esto resulta útil cuando comenzamos a implementar nuestras aplicaciones móviles, que utilizan el mismo protocolo para comunicarse entre la parte nativa y la vista web.

Esta es la razón por la que cuando comenzamos a construir el cliente de escritorio, muchas de las partes para notificaciones push nativas, abrir buzones de correo, usar el sistema de archivos, etc. ya existían, por lo que solo el lado nativo (Node.js ) necesitaba ser implementado .

Otra conveniencia es que nuestro proceso de compilación utiliza el transpilador de Babel, que nos permite escribir toda nuestra base de código en JavaScript ES6 moderno y mezclar y combinar módulos de funciones entre diferentes entornos. Esto nos permite adaptar rápidamente el código de nuestra aplicación de escritorio basada en Electron. Sin embargo, también encontramos algunos desafíos.

Si bien Electron nos permite integrarnos fácilmente con entornos de escritorio de diferentes plataformas, ¡no se puede subestimar la inversión de tiempo! Al final, fueron estas pequeñas cosas las que ocuparon más tiempo del que esperábamos, pero que también fueron fundamentales para completar el proyecto del cliente de escritorio.

El código específico de la plataforma causa gran parte del obstáculo:

Este proceso se ve algo obstaculizado por las expectativas del usuario sobre ciertos comportamientos (a veces no directamente compatibles) de aplicaciones en diferentes plataformas complejas. Hacer que las tres versiones parecieran nativas requirió algunas iteraciones e incluso algunas adiciones modestas a la aplicación web para proporcionar una funcionalidad similar a la búsqueda de texto en el navegador.

Nuestra experiencia con Electron fue muy positiva y completamos el proyecto en menos de cuatro meses. A pesar de algunas funciones que consumen bastante tiempo, nos sorprendió la facilidad con la que pudimos proporcionar una versión beta del cliente de escritorio Tutanota para Linux. Si está interesado, puede profundizar en el código fuente en GitHub.

vía: /article/19/4/linux-desktop-electron

Autor: Nils Ganther Selección de tema: lujun9972 Traductor: wxy Corrector: wxy