Page 27 - Revista FIUDE 2014
P. 27
igual que cualquier aplicación nativa (pues, de hecho, el navegador en que se basa es una aplicación
nativa) pero ejecuta la aplicación web, que es general y usable a través de distintas plataformas. Para
remediar el problema del acceso a los recursos del equipo móvil, la capa de intermediación permite que
la aplicación web, programada en JavaScript, puede acceder a contactos, agenda, sensores, etc.
El desarrollo de aplicaciones híbridas tiene, sin embargo, algunas complicaciones. Aunque la aplicación
final, empaquetada con el navegador, funcionará en cualquier entorno, se deberá considerar aspectos de
hardware (¿cuántos y qué botones tiene un smartphone? ¿qué dimensiones y resolución tiene la pantalla?
¿cómo está orientada?), de capacidad (¿velocidad del procesador? ¿cantidad de memoria?), estándares no
muy fijos (HTML5 no es realmente un estándar, sino una meta común, que varía frecuentemente), etc.
¿Qué Tipo de Aplicación Elegir?
Hay determinados casos de uso que llevan, casi inexorablemente, a elegir o preferir un modelo de
desarrollo sobre los otros. Para aplicaciones en las cuales sea clave que el aspecto visual y usabilidad (“look
and feel”) sea el usual de la plataforma, sólo las aplicaciones nativas pueden garantizarlo. Similarmente,
si la performance es un problema (piénsese, por ejemplo, en juegos o aplicaciones de multimedia) la
mayor velocidad de las aplicaciones nativas será decisivo. Finalmente, sólo las aplicaciones nativas,
desarrolladas en base a las API del equipo móvil, tienen la garantía y capacidad de poder acceder a
absolutamente todas las funciones y sensores del equipo.
Por otra parte, no todo son rosas si se opta por aplicaciones nativas. Cada nueva plataforma requiere
un desarrollo nuevo, diferente a lo ya hecho. Puede llegar a ser necesario atender a versiones distintas
de una misma plataforma; Android 2.3 Gingerbread, de años atrás, recién ahora ha sido superado en
números por Android 4.x. Los desarrollos para una plataforma son específicos; esto implica que no será
factible reciclar conocimientos si quiero desarrollar para una nueva plataforma, y peor, que precisaré
nueva gente, porque ni las herramientas o lenguajes de programación coinciden. Desarrollar aplicaciones
nativas para diferentes ambientes multiplica linealmente los costos. Finalmente, hay un aspecto difícil
de controlar: ¿qué ocurre si hay una nueva versión de la aplicación, pero el usuario no la instala? Hay
que prever siempre la compatibilidad “hacia atrás” para evitar los problemas que surjan de tener en uso
versiones diferentes de una misma aplicación.
El caso de uso de las aplicaciones web es diferente. La mezcla de HTML5 y JavaScript es muy potente
(sobre todo, en vista de la performance de los equipos móviles actuales) y, al ser compatible a través de
distintas plataformas, automáticamente implica menores costos de desarrollo. (Nótese, sin embargo,
que no habrá forma de evitar realizar la prueba de la aplicación en todas las plataformas; estos costos
no se reducirán.) Las aplicaciones web logran ubicuidad, al poder usarse en todo tipo de smartphone, y
simplifican totalmente el problema de la actualización de versiones, pues el usuario final, al conectarse a
la página web, siempre recibe la última versión del software.
¿Por qué entonces podría una empresa no optar por desarrollar aplicaciones web? Visualmente, salvo
un trabajo especial, será difícil lograr que la aplicación luzca igual que una nativa. Las aplicaciones web
no pueden instalarse al escritorio (¡el usuario no podrá tener un ícono!) y, trivialmente, sólo funciona
con conexión (aunque puede haber algunas soluciones parciales). En prevención de que la conexión se
interrumpa, la programación deberá hacerse con métodos tipo “caching” y “store and forward”, de modo
de que cuando la conexión se restaure, puedan actualizarse los datos en el servidor. Finalmente, aún
cuando la performance es muy buena (y cada nueva generación de smartphones supera a la anterior) si
se quiere programar el nuevo “Angry Birds” o “Candy Crush”, seguramente habrá que ir a aplicaciones
nativas.
Finalmente, ¿en qué condiciones se optaría por aplicaciones híbridas? La respuesta se basa en considerar
las desventajas de aplicaciones nativas y aplicaciones web. Una aplicación híbrida podrá ponerse a
disponibilidad en el “app store” para instalarse (ícono en el teléfono) como cualquier aplicación nativa.
El desarrollo será único, por tratarse básicamente de una aplicación web, compatible entre distintas
Revista de la Facultad de Ingeniería