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
   22   23   24   25   26   27   28   29   30   31   32