Una alternativa a las aplicaciones que conocemos: Aplicaciones Web Progresivas
Microsoft lleva ya un buen tiempo planteando a las PWA como el futuro de las aplicaciones. ¿Pero qué son realmente las Progressive Web Apps?. ¿Cómo afectarán en el día a día nuestro trabajo con la Suite Microsoft 365 en Chile? ¿Cambiaría el día a día de una empresa de consultoría SharePoint en Chile o una empresa de consultoría Office 365 en Chile con esta tecnología?
En el siguiente post de uno de Cristobal Saldías quien es parte del equipo de desarrollo de Soporta y colaborador de nuestro blog te contaremos más sobre las PWA y el gran cambio que podrían suponer, tanto para usuarios de la tecnología, como para empresas de Consultoría SharePoint en Chile, Consultoría Microsoft 365 en Chile y Partners de Microsoft en Chile
Aplicaciones de Escritorio
Los programas o aplicaciones de escritorio se caracterizan por depender en gran medida de los componentes físicos del computador (hardware) en que se ejecuta dicho programa, en general se pueden ejecutar sin la necesidad de una conexión a internet. Ejemplos de estos pueden ser editores de video como Sony Vegas o Avid Media Composer.
Demandan características específicas de componentes de computadores como RAM, almacenamiento o una gráfica para su correcto funcionamiento. Otro ejemplo podrían ser los programas de ofimática como Microsoft Word, PowerPoint o Excel, y así se podría seguir aludiendo a más ejemplos de programas de escritorio.
La limitante de este tipo de aplicaciones radica en que, si no se poseen las características mínimas de componentes físicos en el computador, el programa no rendirá al máximo o simplemente, no se podrá ejecutar.
Aplicaciones Web
Por otro lado, las aplicaciones web *1 no demandan propiedades física; pero si requieren de conexión a internet para acceder a éstas. Dicha conexión se lleva a cabo mediante un navegador web como Google Chrome, Mozilla Firefox, Microsoft Edge o Safari por mencionar algunos. Ejemplos de este tipo de aplicaciones pueden ser las redes sociales en general como Facebook, Twitter, YouTube o Instagram. Quizás el más grande exponente de lo que son las aplicaciones web es Google con todas sus herramientas para Google Drive como lo son: Documentos de Google, Hojas de cálculo, Presentaciones y Formularios de Google.
En estas aplicaciones web ofrece una interfaz completa para realizar prácticamente cualquier trabajo de ofimática en un navegador. Una gran ventaja de las aplicaciones web es que éstas se pueden ejecutar desde un computador (portátil o de escritorio), tablet o smartphone, ya que están diseñadas de tal forma que se adaptan al tamaño de la pantalla en que se está visualizando. Así mismo, la gran desventaja de estas aplicaciones es que, requieren de un punto de acceso a internet para ser ejecutadas; de lo contrario no pueden operar.
Aplicaciones móviles
Hasta los años 90’ existía principalmente el software de escritorio ya que el acceso a internet de forma masiva (pensando en el uso de aplicaciones web) era bastante escaso y caro. Después del 2000 el uso de internet se fue haciendo más masivo logrando llegar e ingresar con fuerza en los hogares por medio de computadores de escritorio; pero el nuevo problema que surgía era que su velocidad aún no era “óptima” y seguía siendo en cierta medida costoso. No fue hasta 2007, en que esto en gran medida cambió.
En 2007, surgió un nuevo paradigma para el software que potenció un nicho que estaba recién en crecimiento y además, creó un nuevo nicho.
Ese año, fue en que la empresa Apple lazó al mercado lo que fue considerado posteriormente como una “revolución” del siglo XXI: el primer smartphone real.
Hasta esa fecha otras empresas como Nokia o Motorola habían creado celulares inteligentes; pero eran sumamente complicados de usar. Con la llegada del primer iPhone esto cambió totalmente, ya que facilitaba un dispositivo móvil con una interfaz sumamente simple de usar y que además era con una pantalla táctil. Con esto se potenció el desarrollo de aplicaciones web, ya que ahora existía un nuevo medio para acceder a éstas: el celular. También hizo que surgiera un nuevo nicho: las aplicaciones para celulares, ya que otros fabricantes también empezaron a lanzar smartphones como Samsung, LG o Sony por mencionar algunos.
Volviendo a la actualidad, el smartphone se ha vuelto lo que el mismo Steve Jobs predijo en ese entonces: “Un complemento, una extensión para el ser humano”. Se ha vuelto una herramienta cada vez más capaz, incluso pudiendo realizar tareas que antes se requerían de computadores o equipos especiales, por ejemplo para las grabaciones o fotografías y su posterior edición.
Con esta fuerte demanda del smartphone es que las aplicaciones móviles se han vuelto algo esencial para el funcionamiento de éstos dispositivos. Aplicaciones móviles como What’s app, Facebook, Instagram, YouTube, Google, Gmail, Outlook o Calendarios, se han vuelto indispensables en casi todos los celulares actuales.
Las aplicaciones móviles entonces, son aquellas que se ejecutan sobre los smartphones y están creadas y diseñadas para operar sobre sus sistemas operativos, tamaños y proporciones de pantallas y propiedades físicas (RAM, procesador u almacenamiento).
Actualmente se podrían separar en dos grandes universos los smartphones basándonos en su sistema operativo1: los smartphones con Android y los smartphones con iOS.
Quizás el más grande problema de los sistemas operativos móviles es su “fragmentación” *2, esto se refiere a que aún existen smartphones, por ejemplo, del sistema operativo Android con versiones de hace más de 3 o 4 años de antigüedad que no se podrán actualizar.
Esto representa un gran problema para el desarrollo móvil, ya que las aplicaciones móviles se tienen que ir adaptando a las nuevas características que traen las nuevas versiones de los sistemas operativos de smartphones, como por ejemplo los estándares de seguridad o eficiencia en su ejecución.
En iOS no se da tanto esta fragmentación; pero si existe el problema que como sistema operativo es muy cerrado.
Las aplicaciones móviles resultan ser una de las herramientas más poderosas en la actualidad, ya que éstas se ejecutan en uno de los dispositivos más usados en el mundo: el smartphone.
Cuáles son las principales desventajas de las aplicaciones móviles: dependen del almacenamiento del smartphone, de las características de éstos (procesador, RAM y la gráfica que tenga integrada el procesador) y el principal problema radica en que, desarrollar una aplicación móvil para Android no es lo mismo que desarrollar una aplicación móvil para iOS. Esto ocurre porque, en su base ambos sistemas operativos están construidos de diferente forma.
Esta última desventaja se ha ido subsanando en gran medida estos últimos años con el surgir de entornos de desarrollo híbridos para aplicaciones móviles como los son Flutter, Xamarin o React Native. Estos entornos permiten desarrollar aplicaciones móviles que son compatibles con ambos sistemas operativos a la vez. Con esto, en primera instancia, se puede pensar que está solucionado el problema de compatibilidad; pero no es tan así.
La empresa Huawei, debido a las medidas que tomó Estados Unidos entre los años 2019 y 2020, se vio obligada a desarrollar su propio sistema operativo conocido como Harmony OS. Así mismo, es como han surgido otras iniciativas para sistemas operativos de Tables como lo es Jing OS (basado en un kernel Linux).
Lamentablemente, los entornos de desarrollo híbrido que existen en este momento, no estarían dando soporte para ejecutar funciones nativas del sistema operativo para estos dos últimos casos, ya que son diferentes sistemas operativos a los existentes y por ende poseen una estructura que puede variar en ciertos aspectos.
Entonces, si una empresa como Huawei está en desarrollo de su propio sistema operativo ¿Por qué no lo puede hacer otra más en algunos años? ¿Se va tener que ir complementando y adaptando estos entornos de desarrollos híbridos para cada nuevo sistema operativo que pueda surgir?
Es en este punto donde surge una nueva iniciativa, que podría ayudar a subsanar en cierta medida este pequeño punto de inflexión: aplicaciones web progresivas o PWA.
Aplicaciones Web Progresivas
Las PWA son aquellas que permiten crear aplicaciones web con capacidades de instalación, trabajar en un modo offline (sin conexión a internet), e incluso recibir notificación. Con las PWA se pueden desarrollar aplicaciones web, que tienen algunas de las funcionalidades de las aplicaciones nativas.
Las PWA no son extensiones de navegadores web, plugins o librerías, y tampoco son aplicaciones web “responsivas”. Se basan en el desarrollo de aplicaciones web, las cuales se diseñan pensando que serán visibles en diferentes tamaños de pantallas (computadores, celulares o tablets).
Una PWA corresponde a una aplicación web, que progresivamente va implementando diferentes funcionalidades de carácter nativo como notificaciones push, una ubicación en el “escritorio” del celular, tablet o computador, puede funcionar sin conexión a internet, se actualiza constantemente, pesan poco y es rápida al momento de cargar información.
Las PWA más conocidas o que están mejor implementadas actualmente son Facebook, Twitter, YouTube, Aliexpress y puntualmente un juego llamado 2048.
El ser progresiva, quiere decir que: si el navegador no soporta una determinada característica (como notificaciones por ejemplo), no influirá en el correcto funcionamiento de la PWA. De esta forma se puede tener un conjunto de funcionalidad básica de la aplicación que siempre estará presente.
Dependiendo del navegador y los requerimientos del usuario, se pueden añadir funcionalidades extras como el “modo offline”. Con este modo, se puede emplear la aplicación sin la necesidad de conexión a internet. Esto funciona ya que se guardan en caché los recursos de la página. Cuando la conexión se restablezca, el usuario podrá seguir usando la aplicación con normalidad.
Para guardar los elementos del sitio web en caché se emplea un recurso llamado “Service Worker”. Esto es un archivo especial en el lenguaje de programación JavaScript, que permite interceptar la comunicación entre la aplicación y el servidor web, en otras palabras, actúa de forma muy similar a un proxy. En este archivo se interceptan eventos por ejemplo cuando se realizan peticiones de información al servidor.
Las PWA se pueden instalar, por lo que el usuario podrá acceder en una ventana especial sin la necesidad de emplear el navegador. Se pueden instalar tanto en escritorios de sistemas operativos de escritorio como Windows o MacOS, como en dispositivos móviles Android o iOS.
Para instalar una PWA en un celular, basta con ir a la aplicación web a través del navegador. Una vez cargada la página web asociada, ir a la esquina superior derecha donde está el botón de opciones (⋮), hacer clic sobre éste y buscar la opción que dice “Agregar a la pantalla principal”. Se siguen los pasos que estén a continuación y finalmente la PWA queda instalada.
Las PWA son útiles cuando se requiere una aplicación que no necesite capacidades nativas específicas; pero que opcionalmente si pueda beneficiar de algunas capacidades nativas básicas, por lo que se podría considerar como una desventaja considerable.
Permiten compartir el desarrollo de la aplicación web respecto a la aplicación que se vaya a instalar en el celular. Estas capacidades incluyen lo anterior mencionado.
La principal desventaja, es que las PWA no cuentan con las funcionalidades para dar cobertura por ejemplo a:
Ejecución en segundo plano.
Geofencin (cuando se ejecutan funcionalidades específicas de acuerdo a al ubicación del usuario, por ejemplo que se ejecute algún proceso cuando un usuario entra a algún edificio específico).
Eventos de sistema operativo (por ejemplo en los celulares, algunas aplicaciones saben el momento en que entra una llamada al celular).
Las PWA se diferencian respecto a las aplicaciones híbridas a pesar de compartir algunas similitudes, como por ejemplo: las herramientas que se emplean para su construcción. Las PWA se construyen en base a sólo HTML, CSS y JavaScript; las aplicaciones nativas emplean estas mismas tres componentes; pero además tienen código nativo para ejecutar funcionalidades específicas.
Finalmente, las ventajas y desventajas de las PWA se resumen en que:
Ventajas
Prácticamente no usan espacio de almacenamiento al interior del dispositivo móvil. Esto es de suma importancia, ya que muchos dispositivos móviles cuentan con almacenamientos reducidos puesto que el sistema operativo (ya sea Android o iOS) ocupa un buen porcentaje del almacenamiento con el que viene por defecto el celular, dejando de esta manera menos espacio disponible. Además, a medida que los sistemas operativos reciben actualizaciones, van ocupando más espacio de almacenamiento.
Se actualizan de forma sesgada para el usuario. Las PWA se actualizan sin que el usuario lo autorice o se de cuenta. En el caso de las aplicaciones nativas, éstas se tienen que actualizar por medio de la tienda de aplicaciones (Play Store o AppStore) de forma manual. Existe una configuración en estas tiendas para actualizar de forma automática las aplicaciones en “segundo plano”; pero surge la misma problemática anteriormente descrita: el espacio de almacenamiento de los celulares tiende a ser escaso y cada actualización de una aplicación, reduce aún más el espacio disponible.
Permiten notificaciones de tipo push en los navegadores.
Pueden trabajar bajo cualquier sistema operativo, ya sea móvil o de escritorio.
Desventajas
No se pueden ejecutar en segundo plano. Las aplicaciones nativas de celulares permiten la “ejecución en segundo plano”. Esto corresponde a la ejecución de procesos mientras no se están usando, tales procesos pueden ser sincronizaciones, ubicación o actualización de información. El ejemplo más práctico son las notificaciones de correo electrónico o mensajes que llegan a los dispositivos móviles sin la necesidad de tener la aplicación abierta.
No permiten la ejecución de capacidades nativas específicas. Tal como se mencionó anteriormente, no se pueden ejecutar funcionalidades específicas nativas del sistema operativo como lo es el “Geofencin”. Para ejecutar este tipo de funcionalidades, es necesaria una aplicación nativa que sea descargada de alguna de las tiendas de aplicaciones.
No detectan los eventos del sistema operativo. Las PWA no son capaces de detectar eventos del sistema operativo como llamadas telefónicas, mensajes o notificaciones de otras aplicaciones. Esto es debido a que no funcionan de forma nativa en el dispositivo móvil, por ende no tienen forma de detectar este tipo de eventos.
A veces la ejecución offline se puede encontrar en cierta medida limitada a pesar de que se pueda subsanar con los “Service Worker”.
¿Es mejor una PWA que una aplicación móvil nativa?
Una PWA no es mejor o peor que una aplicación nativa para un celular y viceversa, simplemente es una solución alternativa a una aplicación nativa. Corresponde a la muestra perfecta de la metáfora:
“Un problema posee más de una forma de solucionarlo”.
Como se puede apreciar, ninguna de las dos soluciones es perfecta, ya que ambas tienen sus desventajas y limitaciones. El verdadero trabajo de ingeniería radica en la decisión de qué solución emplear, por ende la verdadera pregunta radica en ¿Cuándo se debe desarrollar una PWA en vez de una aplicación nativa?
Las aplicaciones nativas conviene desarrollaras cuando se requiere de una utilidad que sea específica y que demande de accesos a funcionalidades o características que son nativas del sistema operativo como la ejecución en segundo plano, que se muestren determinadas alertas en función de la ubicación del usuario o se requiera detectar determinados eventos del sistema operativo.
Las PWA conviene desarrollarlas cuando las funcionalidades más superficiales y “tradicionales”, en otras palabras, que no se requiera de alguna utilidad que sea nativa y demasiado específica o internalizada con el sistema operativo.
¿NECESITAS SOPORTE O APOYO PARA RESOLVER TUS CONFIGURACIONES Y PROYECTOS CON TECNOLOGÍA MICROSOFT 365 Y ARCGIS EN CHILE?
Resuelve todas tus dudas sobre: Esri, ArcGIS, Soporte ArcGIS, Mantención ArcGIS, Upgrade ArcGIS, Diagnóstico plataforma GIS, Diseño GIS, Integración GIS, Integración SIG, Soporte ArcMap Chile, Integración ArcGIS, Consultoría GIS, Consultoría SIG, Aplicaciones GIS, Aplicaciones SIG, Apps GIS, Apps SIG, ArcGIS Enterprise, ArcGIS PRO, ArcGIS Online, ArcGIS StoryMaps, Soluciones SIG, Soluciones GIS, Migración ArcGIS, Capacitación Esri ArcGIS, GIS Training, empresas GIS CHILE, Empresas SIG CHILE, Diagnóstico plataforma SharePoint, SharePoint 2007, SharePoint 2010, SharePoint 2013, SharePoint 2016, SharePoint 2019, Gestión documental SharePoint, Soporte Sharepoint, Mantención SharePoint, Integración SharePoint, Implementación SharePoint, Migración SharePoint, Migración de contenido hacia SharePoint, Power Apps, Integración Power Apps, Power Apps Chile, Upgrade Sharepoint, Actualización SharePoint, Digitalizacón SharePoint, Digitalizar documentos en SharePoint, Capacitación SharePoint, Migracion Gsuite a Sharepoint, Migración Gmail a SharePoint, empresas SharePoint Chile, Desarrollo web, Desarrollo mobile industrial y suscripciones y servicios Microsoft Office 365 en el siguiente botón o enlace.