Saltar al contenido
Desarrollo · Móvil

¿Nativa o híbrida? ¿Qué solución adoptar?

Al desarrollar tu proyecto, es importante conocer sus funcionalidades para decidir si usarás tecnología para una app nativa o híbrida.

¿Nativa o híbrida? ¿Qué solución adoptar?

El uso de aplicaciones móviles (mobile apps) crece cada día. Cada vez estamos más conectados y el smartphone se está convirtiendo en una extensión del cuerpo humano. Usamos aplicaciones para todo: comunicarnos, divertirnos, investigar, comprar e incluso ligar. Por eso, desarrollar una aplicación hoy en día es un excelente negocio. Pero ¿qué solución adoptar? ¿Una app nativa o híbrida?

¿Es mejor una app nativa o híbrida?

Lo primero que debemos entender es que ninguna regla es siempre válida. Que una aplicación sea nativa o híbrida no significa que siempre sea mejor o peor. Es necesario entender qué hace nuestra aplicación, qué esperamos de ella y hasta dónde puede llegar. Luego, podemos decidir cuál es el mejor modelo tecnológico.

Ambas formas de desarrollo, nativa e híbrida, tienen ventajas y desventajas. En este artículo intentaré aclarar algunos mitos y señalar características importantes de cada tecnología.

Además de las aplicaciones nativas o híbridas, también tenemos las web apps. Veamos ahora en qué se diferencian.

Aplicaciones nativas

Las aplicaciones nativas pueden instalarse en dispositivos móviles (smartphones y tablets). En la mayoría de los casos, se instalan descargando la app desde la tienda correspondiente. En el caso de iOS, la Apple Store, y en el de Android, Google Play.

Su desarrollo se basa en los lenguajes nativos de cada plataforma, junto con uno o más SDK. SDK es la sigla de Software Development Kit, es decir, Kit de Desarrollo de Software o, en nuestro caso, Kit de Desarrollo de Aplicaciones.

Los lenguajes nativos de cada plataforma son:

  • iOS puede utilizar Objective C o Swift;
  • Android utiliza JAVA; y
  • Windows Phone utiliza C#;

Permiten acceder fácilmente a las funcionalidades del sistema operativo del dispositivo, como el GPS, la cámara y el acelerómetro, entre otras.

Aplicaciones híbridas

Al igual que las aplicaciones nativas, las aplicaciones híbridas también se instalan en dispositivos móviles y pueden descargarse desde una tienda de aplicaciones.

La gran diferencia con las nativas es que las híbridas se crean con lenguajes y tecnologías web, y utilizan frameworks (como Cordova, por ejemplo) para convertirse al lenguaje nativo del dispositivo.

Para acceder a los recursos del sistema operativo, los frameworks utilizan bibliotecas y también pueden utilizar SDK.

Los lenguajes de programación (o marcado) que suelen utilizarse en las aplicaciones híbridas son:

  • HTML5;
  • CSS3, muchas veces basado en Bootstrap o similares;
  • Javascript, muchas veces utilizado junto con otros frameworks de front-end, como Jquery Mobile y Angule;

Web apps

Las web apps no son más que páginas de internet a las que se puede acceder desde cualquier navegador. No se instalan en el dispositivo y, por eso, no tienen acceso a las funcionalidades del sistema operativo.

Una web app se limita a tener un diseño similar al de una aplicación para mejorar la experiencia de uso de los usuarios.

¿Qué tipo de aplicación debería elegir, nativa o híbrida?

A continuación, encontrarás una lista de preguntas que debes responder para saber qué tipo de solución es mejor adoptar:

  1. ¿Qué plazo tienes para desarrollar tu aplicación?
  2. ¿Tienes presupuesto disponible para invertir en el desarrollo para cada plataforma?
  3. ¿Con qué frecuencia se actualizará tu aplicación?
  4. ¿Esta aplicación es un MVP? MVP es la sigla de Minimum Viable Product, es decir, Producto Mínimo Viable.
  5. ¿Necesitas que el usuario tenga la mejor experiencia de uso posible?
  6. ¿Utilizarás muchos recursos del sistema operativo? ¿Quieres que tu usuario tenga la mejor experiencia posible?

Con estas respuestas, podrás consultar la tabla comparativa a continuación y definir cuál es la solución más adecuada para tu aplicación.

Tabla comparativa

 
Nativa
Híbrida
HTML5 (mobile web)

Conocimientos necesarios para Android e iOS

Objective-C, iOS SDK, Java, Android SDK

HTML, CSS, Javascript, Mobile Development Framework

HTML, CSS, Javascript

Distribución

App Store

App Store

Web

Velocidad de desarrollo

Baja

Moderada

Rápida

Costo de desarrollo

Alto

Moderado

Bajo

Costo de mantenimiento

Alto

Moderado

Bajo

Rendimiento gráfico

Alto

Moderado

Moderado

Rendimiento de la aplicación

Rápido

Moderado

Moderado

Acceso a las funcionalidades del dispositivo

Cámara

Sí

Sí

Sí
(Más información)

Notificaciones push

Sí

Sí

No

Contactos

Sí

Sí

No

Acceso sin conexión

Sí

Sí

Sí
(Más información)

Geolocalización

Sí

Sí

Sí
(Más información)

Carga de archivos

Sí

Sí

Sí
(Más información)

Giroscopio

Sí

Sí

Sí
(Más información)

Acelerómetro

Sí

Sí

Sí
(Más información)

Navegación swipe

Sí

Sí

Sí

Micrófono

Sí

Sí

Sí
(Más información)

Recomendado para

Juegos o aplicaciones en las que el foco del usuario está relacionado con el rendimiento gráfico y una experiencia de uso mejorada.

Aplicaciones que no exigen un rendimiento extremo, pero necesitan acceder a los recursos del dispositivo.

Aplicaciones que no necesitan utilizar muchos recursos del dispositivo.

La tabla anterior fue tomada y traducida del sitio MRC Productivity.

Principales aspectos a considerar sobre una app nativa o híbrida

De todo lo que hemos comentado, hay 2 puntos principales que siempre deben tenerse en cuenta al tomar la decisión: plazo y costo.

Plazo

  • Aplicación nativa: El tiempo de desarrollo es más largo, porque es necesario crear una versión de la aplicación para cada plataforma.
  • Aplicación híbrida: El tiempo de desarrollo es más corto, porque se desarrolla en un solo lenguaje y se compila para otros.

Costo

  • Aplicación nativa: Como el desarrollo se multiplica por la cantidad de plataformas, el costo de la aplicación casi duplica el de una aplicación híbrida. Además, la curva de aprendizaje es mucho mayor porque se utilizan distintos lenguajes.
  • Aplicación híbrida: El tiempo es mucho más corto, ya que el lenguaje utilizado resulta más familiar para los profesionales web y desarrollar en un lenguaje específico que se compila para los demás reduce el costo de producción casi a la mitad.