¿Aplicaciones Nativas VS Híbridas?

¿Que son las Aplicaciones Nativas?

Son aplicaciones desarrolladas sobre el lenguaje de programación nativo (Java, Swift, Objetive-C,…) del dispositivo. Estas aplicaciones son 100% dependientes de la plataforma. Por ello, hay que desarrollar y mantener una aplicación completa para cada plataforma destino (iOS, Android u otros).

VENTAJAS DE NATIVAS

  • Presenta un mayor rendimiento dentro de los sistemas operativos porque tiene acceso a todos los recursos del teléfono.
  • Permite las notificaciones push.
  • Resulta más sencillo seguir una línea de diseño si es que nos basamos en una plataforma específica.
  • Brinda una mejor experiencia al usuario.
  • Se pueden desarrollar actualizaciones constantes para beneficio de las personas.
  • No requieren de una conexión a internet para funcionar.

DESVENTAJAS DE NATIVAS

  • No todas las plataformas pueden gozar de las mismas funciones.
  • Su costo de inversión es más elevado.
  • El código desarrollado solo sirve para una sola plataforma. Si deseamos que nuestra aplicación esté disponible para otro sistema, tendremos que diseñar de nuevo utilizando otro lenguaje.

¿QUÉ SON APLICACIONES HÍBRIDAS?

Las aplicaciones híbridas son aplicaciones móviles diseñadas en un lenguaje de programación web como por ejemplo HTML5, CSS o JavaScript, junto con un framework que permite adaptar la vista web a cualquier vista de un dispositivo móvil.

Con esta estructura se puede reducir el tiempo de desarrollo de una aplicación para cada sistema operativo.

VENTAJAS DE APLICACIONES HÍBRIDAS

  • Puedes visualizarlas en cualquier teléfono móvil.
  • Permite la reutilización de código ahorrando bastante tiempo a los desarrolladores.
  • Su costo de inversión es más bajo que de las nativas.
  • No importa en qué sistema operativo la uses, las funciones serán las mismas.
  • Tiene un buen rendimiento en cualquier plataforma.
  • Su mantenimiento es menos complicado que las nativas.

DESVENTAJAS DE APLICACIONES HÍBRIDAS

  • Sus funciones son limitadas ya que no tienen acceso a todos los recursos del dispositivo en su totalidad.
  • Generalmente, requieren de una conexión a internet para funcionar.
  • Visualmente, no son tan atractivas como las nativas.
  • Su rendimiento es menor que el de una app nativa.

Comparativa de Secuencias de Desarrollos

¿CUAL ELEGIR?

Como referencia me ha servido evaluar el siguiente checklist en la mesa de planificación con el equipo y el cliente

  • Time-to-market del desarrollo inicial: se refiere al tiempo para llevar la aplicación a mercado desde el concepto al despliegue con el mismo número de recursos.
  • Time-to-market de nuevas funcionalidades: se refiere al tiempo para llevar a mercado cualquier desarrollo evolutivo del producto inicial con el mismo número de recursos.
  • Tiempo para ajustar una nueva funcionalidad/lanzamiento a diseño: se refiere al tiempo necesario para ajustar de forma precisa un nuevo desarrollo al diseño aprobado por cliente.
  • Experiencia del usuario: en este punto se refiere a la experiencia general del usuario al utilizar la aplicación.
  • Reutilización de código: se refiere a la capacidad para reutilizar código entre plataformas.
  • Sencillez para mantener el código: se refiere a la facilidad para mantener código desde el punto de vista de minimizar “bugs” o fallos de programación, realizar desarrollos evolutivos, portar código entre plataformas y formar al equipo técnico encargado del desarrollo.
  • Rendimiento de la aplicación: se refiere al rendimiento de la aplicación en consumo de recursos de CPU y memoria del terminal.
  • Look & Feel de la aplicación: se refiere a la posibilidad de personalizar el diseño para adaptarlo a las necesidades específicas aprobadas por el cliente.
  • Capacidad para convivir Nativo-Híbrido: se refiere a la posibilidad de hacer convivir partes de desarrollo nativo con partes de desarrollo híbrido.
  • Coste de desarrollo: se refiere al coste final que tendría un proyecto dependiendo de si elegimos desarrollarlo de forma híbrida o nativa.