Por favor, activa JavaScript y desactiva tu adblock para este sitio

El Javatar

Blog dedicado a la Programación en Java, C, PHP, Phyton, HTML, SQL y Mucho Más

jueves, 23 de julio de 2015

Aplicaciones Móviles: Apps Nativas VS Apps Web VS App Híbridas

Aplicaciones Moviles
Ya hace más de un año que no publico en mi blog por razones de estudio y trabajo, sin embargo he decidido volver a darle vida a esta bitácora :) En este largo periodo de tiempo he incursionado bastante en el mundo móvil, y por tal razón he decidido empezar hablando del desarrollo de aplicaciones móviles.

Y es que para nadie es un secreto que el mercado móvil cada día crece más y más, no sólo por la cantidad creciente de usuarios, sino por la cantidad de plataformas que están disponibles en el mercado, lo cual representa también para nosotros como desarrolladores un gran abanico de opciones a la hora de escoger una tecnología para crear apps, ya que nuestro ideal sería llegar a la mayor cantidad de usuarios posibles.

En este orden de ideas lo primero que hemos de saber es que existen tres tipos de aplicaciones móviles con sus respectivas características, y cada una de ellas posee una serie de ventajas y desventajas, las cuales se valoran de acuerdo al tipo de desarrollo que vayamos a llevar a cabo.

Los tres tipos de Aplicaciones Móviles son:

  • Apps Nativas
  • Apps Web
  • Apps Híbridas
Aplicaciones Moviles - Apps Nativas VS Apps Web VS Apps Hibridas

A continuación veremos en que consiste cada una de ellas, y como decía, sus respectivas ventajas y desventajas o inconvenientes que pueden presentar cada una de ellas.

1. Apps Nativas

Una aplicación nativa es aquella que se desarrolla un determinado sistema operativo en específico, usando su respectivo SDK (Software Development Kit). Cada una de las plataformas, Android, iOS, Windows Phone, Blackberry, entre otros, tienen un sistema diferente, por lo tanto, si quisiéramos que una app esté disponible en todas las plataformas haciendo uso de un desarrollo nativo, se deberán crear varias apps y cada una con el lenguaje del sistema operativo correspondiente.

Por ejemplo:

  • Las apps para iOS se desarrollan con lenguaje Objective-C o Swift
  • Las apps para Android se desarrollan con lenguaje Java
  • Las apps en Windows Phone se desarrollan en .Net (Visual Basic o C#)

Ventajas de las Apps Nativas

  • Acceso completo a todas las características del hardware del móvil (GPS, cámara, acelerómetro, agenda, almacenamiento, etc.)
  • Mejor experiencia de usuario
  • Por lo general, la ejecución es más fluída

Inconvenientes de las Apps Nativas

  • Se debe tener dominio de cada uno de los lenguajes y herramientas de desarrollo para cada una de las plataformas de destino
  • El desarrollo de una app conlleva tanto tiempo según cada una de las plataformas de destino
  • El código no es reutilizable entre las diferentes plataformas

2. Apps Web

Una aplicación web o webapp es aquella que se desarrolla con lenguajes como HTML, Javascript y CSS. La principal ventaja de este tipo de app con respecto a la nativa es la posibilidad de programar independientemente del sistema operativo en el que se usará la aplicación. De esta forma, una app se puede ejecutar en diferentes dispositivos sin tener que crear varias aplicaciones para cada plataforma.

Las aplicaciones web se ejecutan dentro del propio navegador web del dispositivo a través de una URL. Una de las cosas a tener en cuenta a la hora de desarrollar este tipo de aplicaciones es que el contenido debe adaptarse a la pantalla de cada uno de los dispositivos en los cuales se ejecuta adquiriendo un aspecto de navegación APP.

La gran diferencia con una aplicación nativa (además de los inconvenientes que veremos a continuación) es que una webapp no necesita instalación, por lo que no pueden estar visibles en los app store y por tanto la promoción y comercialización debe realizarse de forma independiente. De todas formas se puede crear un acceso directo que sería como “instalar” la aplicación en el dispositivo.

Ventajas de las Apps Web

  • El mismo código es reutilizado en múltiples plataformas
  • El proceso de desarrollo es más rápido
  • No necesitan ninguna aprobación externa para publicarse
  • El usuario siempre dispone de la última versión
  • Pueden reutilizarse sitios "responsive" ya diseñados

Inconvenientes de las Apps Web

  • Requieren siempre de conexión a Internet
  • Acceso muy limitado a las características hardware del dispositivo
  • La experiencia de usuario en cuanto a navegación e interacción y tiempos de respuesta es menor que en una app nativa
  • Requieren de mayor esfuerzo en cuanto a promoción y visibilidad

3. Apps Híbridas

Una aplicación híbrida o web app nativa es una combinación de las dos anteriores, se podría decir que recoge lo mejor de cada una de ellas. Las apps híbridas se desarrollan con lenguajes propios de las webapp, es decir, HTML, Javascript y CSS por lo que permite su uso en diferentes plataformas, pero también dan la posibilidad de acceder a gran parte de las características del hardware del dispositivo. La principal ventaja es que a pesar de estar desarrollada con HTML, Javascript y CSS, es posible agrupar los códigos y distribuirla en los app store.

Para el desarrollo de apps híbridas es común el uso de frameworks que agilizan el desarrollo de las mismas, y uno de los más utilizados es PhoneGap (Apache Cordova).

Ventajas de las Apps Híbridas

  • El mismo código es reutilizado en múltiples plataformas
  • Acceso a la gran mayoría de las características hardware del dispositivo
  • Instalación nativa pero construida con HTML, Javascript y CSS

Inconvenientes de las Apps Híbridas

  • La experiencia de usuario en cuanto a navegación e interacción y tiempos de respuesta es menor que en una app nativa
  • El Diseño visual no siempre va acorde con el sistema operativo en el que se muestra

Aplicaciones Moviles - Cual es la Mejor opcion a elegir
¿Cuál es la mejor Opción a elegir?

Para nosotros como desarrolladores, seleccionar el tipo de app más adecuado va a depender de diversos factores. Por un lado, si el desarrollo es para un cliente que nos está contratando debemos tener en cuenta el coste que éste está dispuesto a asumir.

Por otra parte, también debemos considerar el tipo de aplicación, ya que si por ejemplo deseamos desarrollar un juego, a pesar de que HTML5 está muy avanzado en este campo, debemos tener en cuenta que los recursos de memoria y procesamiento de un dispositivo móvil son más limitados que los de un computador, por lo cual sería preferible inclinarnos a desarrollar una app nativa que nos proporcione una mejor experiencia de usuario y mayor fluidez en los gráficos.

Por ejemplo, si nuestra aplicación no requiere acceso a las características hardware del dispositivo, podríamos pensar mejor en el desarrollo de una web app o una app híbrida dependiendo de las necesidades de la misma.

En conclusión, como podrás darte cuenta, son muchas las opciones con las que cuentas, pero a fin de cuentas, lo más importante es definir primero las características y necesidades de tu app, ya que éstas te indicarán cual es la mejor opción a elegir a la hora de desarrollar una aplicación móvil.

No hay comentarios.:

Publicar un comentario