¿Qué tipo de app necesito? Nativa, híbrida o web app.

  • Nov 09, 16
  • Liberto Giménez

Cuando iniciamos un proyecto de mobile app siempre nos asalta (o debería hacerlo) una duda: ¿Qué tipo de aplicación se adapta mejor a las necesidades de mi proyecto? En esta techPill vamos a conocer en 5' los diferentes tipos de apps y sus pros y contras.

Cómo funciona

Aunque existe alguna salvedad, podemos afirmar que hay tres tipos de aplicaciones para dispositivos móviles.

Aplicaciones nativas: las que están programadas en el lenguaje propio de cada sistema operativo (iOS, Android...)

Aplicaciones híbridas: básicamente son aplicaciones nativas que disponen de un navegador web interno en el que se ejecuta una aplicación web. Están programadas en los lenguajes que interpretan los navegadores web: HTML, CSS y javascript.

Web apps: aplicación web adaptadas para su ejecución en los navegadores web del dispositivo móvil.

Aunque es imposible elegir una opción u otra sin previamente conocer los requerimientos concretos de cada proyecto, en la siguiente tabla mostramos algunas caractrísticas generales de cada una de ellas que nos pueden orientar en nuestra decisión:

 

Característica Nativas Híbridas Web
Multi-plataforma 1 No
Fluidez en la ejecución 2 ++ + -
Coste 3 - + ++
Distribución 4 Stores Stores Link
Icono de la app en escritorio 5 No
Acceso a recursos del dispositivo (GPS, acelerómetro...) 6 ++ + -
Trabajo sin conexión a internet 7 ++ ++ -
Actualizaciones 8 Store Store Directas
Necesita aprobación en los stores 9 No
Interfaz adaptada a los patrones del sistema operativo 10 ++ - -
Dependencia del desarrollo de terceros 11 No No
Notificaciones push 12 ++ ++ -
Escalabilidad 13 ++ + -

 

Referencias:

[1] Multi-plataforma: las aplicaciones multi-plataforma permiten que una misma aplicación pueda funcionar correctamente en los diferentes sistemas operativos existentes.

[2] Fluidez en la ejecución: una buena fluidez siempre mejorará la experiencia de usuario. Las apps híbridas en muchos casos pueden competir con las nativas en fluidez, pero en algunas situaciones y para algunos sistemas operativos pueden ver afectada su fluidez.

[3] Coste: las apps nativas no permiten reutilizar el código de un sistema operativo a otro como ocurre normalmente con las híbridas. En el caso de las web apps, una misma aplicación puede servir para todos los sistemas operativos de los dispositivos móviles y para ordenadores portátiles y sobremesa. Es importante tener en cuenta las futuras funcionalidades de un proyecto, ya que pueden obligarnos a pasar de una app híbrida a una nativa antes de haber amortizado la reducción de coste que en su momento supuso optar por una solución híbrida. Generalmente el coste de los programadores nativos es superior al de los programdores en plataformas híbridas, pero también hay que tener en cuenta que aún es superior el coste los programadores que deben de programar en nativo desde una plataforma híbrida.

[4] Distribución: en el caso de los stores no existe un única opción de distribución, pero eso ya es tema de otra techPill. En el caso de las web apps el acceso a través de link puede realizarse a través de buscadores, códigos QR, e-mails...

[5] Icono de la app en el escritorio del dispositivo: en els caso de las web app, para fijar el acceso directo de la app en el escritorio del dispositivo es necesaria la intervención del usuario.

[6] Acceso a recursos del dispositivo: para las aplicaciones nativas no hay ninguna restricción. Para las híbridas nos podemos encontrar con algunas restricciones que en algunos casos se podrán superar programando en nativo dentro de la plataforma híbrida. Las web apps son las que presentan más limitaciones para acceder a los recursos del dispositivo, aunque también es cierto que cada vez son menores.

[7] Trabajo sin conexión internet: evidentemente la necesidad de conexión a internet depende de la naturaleza de las funcionalidades de cada app. En este sentido, nativas e híbridas se encuentran a la par. Las web apps necesitan de conexión, aunque solo sea incialmente.

[8] Actualizaciones: en el caso de las web apps las actualizaciones realmente no existen como tales, ya que cualquier cambio se aplica automáticamente al descargar los datos del servidor.

[9] Aprobación de los stores: el proceso de aprobación varía para cada store. Existen posibilidades concretas de distribución a través de store que no requieren aprobación.

[10] Diseño adaptado al sistema operativo: es necesario tener en cuenta que existen patrones de navegación diferenciados promovidos por cada sistema operativo y a los que los usuarios estan habituados. Programando con plataformas híbridas podemos adaptar la navegación a cada sistema operativo pero ya nos estamos alejando de su objetivo proncipal: la reutilización del código.

[11] Dependencia del desarrollo de terceros: en el caso de las apps híbridas, dependiendo de la plataforma, pueden haber determinadas funcionalidades que no estén desarrolladas, o que muestren determinadas limitaciones. En este caso será necesario esperar a que alguien de la comunidad las programe, o bien contratar los servicios de un programador con conocimientos de programación nativa y de la plataforma híbrida para que desarrolle la funcionalidad que necesitamos a través de un plugin o similar.

[12] Notificaciones push: en el caso de las web apps, en los últimos tiempos han mejorado las posibilidades de envío de notificaciones push, aunque aún no están al nivel de las apps nativas o híbridas.

[13] Escalabilidad: es necesario tener en cuenta las futuras necesidades de nuestra app. Si en el futuro se necesitará tener acceso a recursos del dispositivo es importante evaluar correctamente si se empieza el proyecto ya en nativo o se opta inicialmente por plataformas híbridas para después pasar a programación nativa.

Para finalizar, solo comentar que los puntos anteriores son generalizaciones. Seguramente podríamos encontrar situaciones en las que plantear alguna objección.