La proliferación de las webapps

Hablemos de una de las tendencias más habituales en el desarrollo de aplicaciones web.

Web App
Artículo original: junio 2019

Llevo tiempo trabajando en el desarrollo de páginas web, mucho tiempo. Y algo que he podido ver estos últimos años es la habitualidad con la que cada vez se recurre más a lenguajes de programación web que a lenguajes nativos para el desarrollo de aplicaciones destinadas a Android, iOS, y en menor medida Windows.

Para quien no tenga ni idea de qué estoy diciendo, cada sistema operativo tiene su propio lenguaje de programación para desarrollar aplicaciones, ya sabes, esas aplicaciones que tienes en el móvil, como Facebook, Google Maps o Instagram.

Por otra parte los navegadores web que tenemos en nuestros ordenadores, móviles y demás dispositivo tienen soporte para leer e interpretar páginas web en múltiples lenguajes, siendo HTML el más extendido de todo. HTML, que significa HyperText Markup Language, permite estructurar un sitio web mediante etiquetas <así> y </así>, darle forma y contenido, que, junto a lenguajes de programación como JavaScript y hojas de estilo CSS, dan forma y vida a cualquier página web.

Bien, con todo esto ya tienes una introducción bastante básica.

Logo de HTML5

La llegada de HTML5

Cuento unos 6 años desde que llegó HTML5 allá por 2014, después de no sé cuanto tiempo manteniendo en paralelo el desarrollo de xHTML y HTML 4.0. Un cacao que a muchos júnior mareaba bastante, sobretodo con las validaciones de los estándares de la W3C.

HTML5 trajo consigo importantes mejoras en semántica, accesibilidad y compatibilidades con multimedia y nuevas tecnologías, dándole una fuerte patada al odioso Flash que lo único bueno que ha aportado en la vida son los videos de ‘Cálico Electrónico’. Y algo más.

Con el tiempo, las nuevas tendencias en diseño web, y una buena combinación con JavaScript, HTML+JS fue convirtiéndose poco a poco en una maravillosa opción para desarrollar aplicaciones para móviles. Hablamos de aplicaciones que eran desarrolladas como si fueran una página web, dotándolas de aspecto y funciones propias de una aplicación móvil, engañando así a los ojos del usuario no tenía ni pajolera de que lo que estaba viendo, era, en efecto, una web.

Al comienzo se solía recurrir a programadas de terceros que se encargaban de coger tu código y lo metían en una app simulada, con su instalador y todo, pero con el tiempo los sistemas operativos han ido adoptando su propia alternativa, los llamados web-view.

Ejemplo de WebView

Un web-view viene a ser una aplicación en segundo plano que se alimenta del motor proporcionado por el navegador nativo de un sistema operativo. Dicho de una forma más simplificada, un web-view es un mini-navegador oficial. En Android, cuando abres un enlace a una web desde Facebook o Instagram verás que esta se abre dentro de la propia aplicación, eso es gracias al web-view, y está usando exactamente la misma tecnología que Chrome.

Y es esta la misma tecnología que se usa para hacer aplicaciones con lenguajes web.

Aplicaciones Web vs Aplicaciones Nativas

¿Y qué inconvenientes y qué ventajas tiene una cosa o la otra? ¿Para qué hacer aplicaciones en HTML si tengo otras opciones? ¿Y por qué al revés? Es sencillo, todo depende de las prioridades y necesidades de la aplicación que uno vaya a desarrollar.

Web Apps vs Apps Nativas

La principal ventaja que brinda HTML+JS es que se trata de un lenguaje universal, no requiere aprender nuevos lenguajes exclusivos de un único sistema, y es fácilmente maleable una vez te desenvuelves con él.

La desventaja es que en dispositivos más antiguos su rendimiento es más pobre, y se nota bastante que son web-apps. Otro inconveniente es que se pierden funciones nativas del sistema operativo, aquellas que requieren permisos de usuario, como acceso al GPS, multimedia, etc…

Existen frameworks, entornos que permiten desarrollar aplicaciones y simularlas en lenguaje nativo para así tener dichas funciones, además de facilitar mucho el desarrollo de una aplicación, un ejemplo es Ionic.

Pero la tendencia que más está pegando y que más me gusta es sin duda React y React Native, una alternativa de puro JavaScript desarrollada por Facebook que permite elaborar páginas web y aplicaciones traduciendo JS a HTML por componentes, bajo un contexto modelo-vista-controlador.

React

Por un lado React aporta un DOM virtual lo que permite tener un sitio web mucho más óptimo, y que combinado con el MVC permite actualizar solo una parte de la página de forma ligera y rápida, sin actualizarlo todo.

Por otro lado está React Native, que partiendo de la base de React va más enfocado al desarrollo de aplicaciones web bajo el mismo concepto, aportando una traducción a lenguaje nativo tanto a iOS como Android, con un solo código, y garantizando el acceso a aquellas funciones nativas que nos interesen. De ahí el nombre.

Lo desconozco, pero presumiblemente Facebook e Instagram deben estar desarrolladas con React, y ya podemos ver lo eficientes que son estas aplicaciones.

Si te interesa saber más sobre React en la página oficial tienes una extensa documentación. Eso sí, en inglés está más completa. Para conocer más sobre HTML5, a continuación la documentación oficial de la W3C.

Publicado en:

Deja un comentario:

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