27 Enero 2021

Aplicación web, el término medio entre un sitio web y una aplicación móvil

¿Qué es una aplicación web? ¿Y en qué se distingue de una aplicación móvil? Adentrémonos de nuevo en el mundo del front end para explorar este fascinante aspecto en profundidad.

El análisis del front end, que comenzó con el discurso de Augusto Montoni, prosigue ahora con un enfoque más detallado de las aplicaciones web, tema abordado por Francesco Pasquini, Desarrollador Senior de Front End, en su ponencia en la «universidad digital mashfrog», la formación organizada por mashfrog para compartir las competencias de las distintas líneas de negocio del Grupo.

¿Qué son las aplicaciones web?

Una aplicación web es un software que funciona exclusivamente en el lado del cliente de todos los dispositivos utilizables. Es un programa escrito desde cero que puede ejecutarse online, offline o en la intranet de una empresa. Básicamente es un término medio entre un sitio web y una aplicación móvil, con la diferencia de que la aplicación web no se aloja físicamente en un dispositivo, sino en la web y, por tanto, no hay que descargarla ni instalarla para utilizarla. Las aplicaciones web surgieron hace varios años y responden a las mismas necesidades por las que nacieron el resto de aplicaciones: facilitarle la vida al usuario, evitándole, en este caso, tener que descargar software o herramientas que, además, sobrecargan el ordenador. 

¿Para qué no sirven?

Llegados a este punto Francesco enumera tres requerimientos comunicativos para los que las aplicaciones web no son la solución más adecuada, según su experiencia, aunque bien indica que esta tecnología también puede aplicarse en dichos casos.

-    El sitio escaparate. No tendría sentido crear una aplicación web para construir un sitio escaparate, pues estos sitios son sobre todo estáticos y apenas presentan funciones de back end. Además, el código fuente de una aplicación web es muy breve y no rastrea contenido, por lo que no sería muy funcional desde el punto de vista del SEO.
-    Los blogs, periódicos y otros documentos: Para estos casos existen los CMS, diseñados de serie para crear este tipo de productos con un esfuerzo mucho menor que el que requeriría una aplicación web. 
-    Las pruebas de concepto o PoC: Las aplicaciones web lógicamente no son apropiadas para hacer demostraciones a los clientes, pues resulta inútil y costoso desarrollar funciones sin saber si se van a utilizar o no.

¿Para qué sí sirven?

Veamos ahora los principales objetivos para los que usar las aplicaciones web es lo más recomendable:
-    Panel de control con gráficos y tablas
-    Interacciones con mapas
-    Gestiones empresariales
-    Actividades comerciales (comercio electrónico)
-    Aplicaciones web progresivas (PWA)

En general, las aplicaciones web son adecuadas para todo aquello que no sea un estándar y para cualquier aplicación en la que el cliente requiera un nivel alto de personalización y quiera ser independiente a la hora de usar distintas funciones. Las PWA, en cambio, se crean para solucionar el problema de las aplicaciones web, que no funcionan sin conexión: son aplicaciones web que funcionan como si fueran aplicaciones móviles, pero con la ventaja de que también funcionan offline. Sin embargo, son tecnologías bastante innovadoras y aún no consolidadas, por lo que no se dispone de mejores prácticas compartidas ni de estándares útiles para implantarlas de la mejor manera posible.

Pros y contras de las aplicaciones web
Francesco enumera las fortalezas y debilidades de las aplicaciones web comenzando con las ventajas principales.

PROS
-    Multicapa: La arquitectura multinivel se define como una arquitectura que separa el front end del back end y de la base de datos, lo que permite intervenir con el tiempo en cualquiera de los tres niveles sin interferir en los otros.
-    Código mantenible: Este aspecto depende mucho de cómo trabaje el programador, pero si el entorno de trabajo se comparte con todo el equipo, el código también puede ser actualizado por personas que no sean el autor original.
-    Comunidad NPM: Esta comunidad permite a los desarrolladores compartir sus bibliotecas, permitiendo que otros las descarguen e instalen en sus propias aplicaciones web, facilitando así el trabajo de todos.
-    No ocupan memoria en los dispositivos. Como hemos mencionado anteriormente, las aplicaciones web no tienen que instalarse ni actualizarse y, por consiguiente, no ocupan memoria, ya que se valen de la caché del navegador.

CONTRAS
-    El renderizado para SEO: Como ya hemos apuntado, las aplicaciones web utilizan un código que los motores de búsqueda no leen y que, por tanto, no permite la optimización predeterminada del contenido desde el punto de vista del SEO.
-    Gran esfuerzo y experiencia: Para desarrollar una aplicación web, el recurso debe una completar una formación específica o, en su caso, tener experiencia en el sector.
-    Complejidad de algunas funciones: por ejemplo, es más fácil hacer funcionar la cámara, el GPS o el Bluetooth con aplicaciones.
-    La seguridad: Más que una debilidad, es un hecho obetivo: la seguridad nunca se puede relegar al front end, sino que debe trabajarse en el back end.

Una mirada al futuro

Como conclusión, Francesco nos muestra la posible evolución de las aplicaciones web, a dónde mirar para obtener programas más seguros y certificados.

-    La Programación Orientada a Objetos (POO) es una tecnología que hace que la aplicación sea más robusta y tenga menos errores de software o «bugs».
-    La escalabilidad permite integrar nuevas funciones y alargar la vida de la aplicación.
-    El framework LTS es el framework de soporte a largo plazo.
-    La conversión a APP: Cada vez hay más herramientas que permiten convertir aplicaciones web en aplicaciones, por lo que en el futuro será cada vez más fácil crear, con un solo código, tanto aplicaciones web que se puedan consultar en un sitio como aplicaciones móviles que se puedan descargar desde una tienda en cualquier dispositivo.
-    Los microfrontends se utilizan sobre todo en grandes proyectos en los que participan distintas empresas, lo cual requiere contar con distintos microfrontends para dar mayor libertad de elección a los distintos equipos. 

Francesco Pasquini, Senior de Front End, ha trabajado durante más de diez años como programador, comenzando con bases de datos relacionales y luego pasando al back end. Una vez asentadas las bases y tras haber adquirido experiencia en lenguajes de programación orientada a objetos, decidió pasarse al front end gracias, también, al constante aumento de los frameworks estandarizados. Se unió a mashfrog en 2018, donde se ocupa principalmente del desarrollo de aplicaciones web de front end.