Comparativa de desarrollo de aplicaciones móviles

¿Estás pensando en desarrollar una aplicación móvil? ¿Tienes una idea de negocio pero no sabes qué es lo que necesitas? ¿Pides presupuesto para un desarrollo de una aplicación y sólo te hablan con términos técnicos y no sabes bien las diferencias entre una cosa o la otra? ¿Qué tengo que tener en cuenta para hacer una app?

Aquí resolvemos todas estas preguntas y te explicamos qué opciones existen para el desarrollo de aplicaciones, qué ventajas tienen y qué inconvenientes. No hay una opción mejor que otra, simplemente algunas alternativas se adaptan mejor a las necesidades del usuario que otras opciones.

¿Se usan las aplicaciones móviles?

En la actualidad pensar en el mundo de internet sin apps es imposible. Redes sociales de ocio, de trabajo, aplicaciones para buscar pareja, o que miden tus gastos, te despiertan y te avisan de tus tareas del día a día.

En los últimos años ha habido un aumento creciente de uso de los Smartphones. El 80% de los usuarios de internet poseen al menos un dispositivo móvil. Algo que a principios de los años 90 era inimaginable.

Enfocándonos un poco en el mundo de las apps, y en su uso, descubrimos un estudio hecho por la consultora estadounidense ‘App Annie’ que revela que las descargas de aplicaciones móviles durante el tercer trimestre de 2017 llegaron a 26000 millones en todo el mundo. Esto supone un crecimiento del 8% en el sector móvil.

Además el 89% del tiempo que el usuario usa el móvil, lo hace en una aplicación móvil frente al 11% que lo hace en la web.

Como podemos ver el este sector está en auge y sigue creciendo por lo que hay que tenerlo en cuenta. Otra cuestión, que veremos después, será la tecnología con la que vamos a abordar el desarrollo de la aplicación móvil.

Si estos datos aún no son suficientes, podemos ver en la siguiente gráfica los ingresos mundiales generados por el sector de las aplicaciones móviles desde 2011.
Sólo viendo la tendencia de la gráfica nos damos cuenta de que 2018 no se quedará atrás.

Gráfica de los ingresos anuales mundiales de las aplicaciones móviles

Con todos estos datos podemos ver que el sector de las aplicaciones móviles tiene todavía mucho futuro y va a ser uno de los sectores que siga generando ingresos para las empresas durante 2018.

Algo que hay que plantearse antes de lanzarse a desarrollar una app es de qué forma será útil para el negocio. O dicho de otra forma, qué esperamos obtener de retorno con una app.

¿Quién va a usar la aplicación móvil?

Lo primero que tenemos que hacer es enfocarnos en “nuestro” usuario potencial. Esta decisión será más a nivel de negocio que tecnológica.
Hay que decidir:

  • Quién queremos que use la app
    No será lo mismo una aplicación con juegos para niños que una aplicación de compras. En la primera se entiende que el usuario final no va a realizar pagos dentro de la aplicación, y en la segunda nuestro público potencial serán personas mayores de edad.
    Si por ejemplo realizamos una app para que nuestros clientes vean y gestionen sus facturas, nuestro público estará limitado a nuestros clientes y por tanto será más difícil obtener un retorno monetario.
  • Qué va a hacer el usuario en la aplicación móvil
    Esto va ligado al modelo de negocio. No será lo mismo que el núcleo de nuestro negocio sea la aplicación, en el cual sea imprescindible que el usuario use la app para generar beneficios, a que sea simplemente un complemento más del negocio.
  • Cómo va acceder el usuario a la aplicación
    Este punto será clave en los tipos de aplicaciones que vamos a ver a continuación. Ya que dependiendo de cómo queramos que acceda el usuario a la aplicación necesitaremos de un tipo de aplicación u otro. Podemos valorar varios ejemplos generales:

    • Sólo se podrá acceder a la aplicación móvil desde las tiendas oficiales. Es siempre necesario que el usuario descargue o instale la aplicación en el móvil.
    • Además de la aplicación móvil, como en el punto anterior, el usuario podrá acceder mediante la web, como es por ejemplo el caso de Facebook.
      Hay aplicaciones móviles disponibles, pero un usuario puede acceder mediante el navegador. En este caso es necesario tener también una aplicación web.
    • No quiero que los usuarios tengan que descargar la aplicación desde los markets. Quiero que esté disponible siempre a través de un navegador mediante una aplicación web.
  • Sistemas operativos para la app.
    En el caso de que queramos una app móvil hay que decidir en qué dispositivos queremos que la aplicación esté disponible. Actualmente existen dos sistemas operativos que dominan el mercado: Android (80% de dispositivos) e iOs (15%), hay alguno más como Windows phone o Blackberry pero lo vamos a dejar en un segundo plano.

  • Qué vamos a ganar con la app.
    Definir qué esperamos obtener con una aplicación es uno de los puntos más importantes ya que de ello dependerá el desarrollo y el nivel de inversión.
    Será distinto dependiendo de la app de nuestro negocio. Bien puede ser una aplicación para fidelización de clientes en la que buscamos la comodidad del usuario y el reconocimiento de marca; bien puede ser un retorno monetario como en el caso de las aplicaciones con pagos dentro de la app y/o publicidad.

Tipos de desarrollo de aplicaciones móviles

Lo siguiente que hay que valorar, una vez sabemos qué queremos que haga nuestra aplicación y cómo se va a acceder a ella, es la tecnología que vamos a usar. Si nos hemos adentrado un poco en este mundo nos serán familiares, entre otros, términos como desarrollo nativo, multiplataforma o híbrido… ¿Pero a qué se refieren estos términos?

Para aclarar estas dudas, vamos a explicar cada una de las opciones que hay en el desarrollo de aplicaciones y veremos sus ventajas e inconvenientes: Aplicaciones web, aplicaciones nativas, aplicaciones híbridas y Progressive Web Apps

Aplicaciones Web

Las aplicaciones web son aplicaciones a las que se accede siempre desde un navegador, ya sea desde un dispositivo móvil o desde un ordenador. Sólo cambia la visualización de la aplicación en función del dispositivo.

Estas aplicaciones están desarrolladas con tecnología web. Y aunque hay combinaciones muy distintas, lo normal es que todas ellas tengan en común estar desarrolladas con HTML, CSS y JavaScript además de un lenguaje de servidor que nos proporcionará acceso a base de datos, lógica de negocio, seguridad,… entre otras muchas cosas.

Desventajas de las aplicaciones web

  • No son accesibles desde el móvil de un usuario mediante un icono en el escritorio. Esto se refiere a que no se pueden instalar en el dispositivo. Sólo se puede acceder a ellas mediante un navegador.
  • Requieren siempre de internet para su uso.
  • No están disponibles en los market de aplicaciones.
  • Consumen más datos móviles del usuario (desde conexión móvil). La primera vez al menos, ya que hasta que no se almacene en caché del móvil tendrá que pedirse toda la información. También depende de la tecnología usada.
  • El usuario no puede recibir notificaciones PUSH. Esto es lo que comúnmente conocemos como alertas o notificaciones de mensajes nuevos. Es necesario siempre loguearse en la aplicación (a través del navegador) y ver las notificaciones pendientes.

Ventajas de las aplicaciones web

  • Requieren sólo de un desarrollo. El de la plataforma web. Y por tanto será accesible desde todos los dispositivos mediante un navegador, con independencia del sistema operativo.
  • No consumen espacio en el dispositivo
  • Mayor mantenibilidad. Las actualizaciones de la aplicación sólo dependen de un desarrollo con pequeños cambios visuales para cada plataforma.
  • Minimizan el riesgo. Esto se debe a que un desarrollo universal, no incurre en tantos gastos como el desarrollo particular. Suele ser un buen punto de partida para cualquier negocio.
  • Persistencia de datos universal en el mismo servidor. Para poder almacenar los datos de aplicación de cada usuario como suele pasar en cualquier aplicación dinámica (en la que podemos interactuar con el contenido) es necesario un servidor de base de datos con acceso a internet, el cual suele estar en el mismo sitio donde está alojada la aplicación web
Ventajas Desventajas
Sólo un desarrollo No tienen icono en el móvil
No consumen espacio en el dispositivo Requieren siempre de internet
Mantenibilidad alta Consumen más datos móviles
Minimiza el riesgo No hay notificaciones PUSH
Base de datos en el mismo servidor

Aplicaciones Nativas

Las aplicaciones nativas son las aplicaciones móviles que se desarrollan específicamente para cada sistema operativo. Este es el desarrollo tradicional de aplicaciones móviles. En el cual es necesario conocer el lenguaje y la mecánica de desarrollo para cada uno de los sistemas operativos.

Comúnmente se desarrolla para Android y para iOs.

Desarrollo de aplicaciones nativo

Desventajas de las aplicaciones nativas:

  • Esta opción exige desarrollos independientes para cada plataforma. Lo que aumenta el coste y el tiempo de desarrollo.
  • Las actualizaciones de la app requieren dos desarrollos (más el de la aplicación web si la hay). Cada nueva versión requiere cambios en dos plataformas distintas.
  • Cada una de las aplicaciones serán subidas al market de aplicaciones correspondiente (Play Store y Apple Store). Esto implica superar las revisiones de las plataformas de forma independiente. Lo cual no siempre es rápido.
  • Trabajar visibilidad en los markets. Cada una de las tiendas tiene sus reglas, y como pasa con el posicionamiento SEO en los buscadores, cuanto más arriba aparezcas más fácil será que el usuario final instale tu aplicación. Esto se conoce como posicionamiento ASO.
  • Se requiere  instalar la aplicación en el móvil. Por lo que es necesario que haya espacio suficiente en el móvil. Esto en algunos casos puede ser una barrera si la app ocupa mucho espacio.
  • Consumen bastante espacio en el dispositivo del usuario.

Ventajas de las aplicaciones nativas:

  • Una vez descargadas e instaladas son accesibles desde el móvil del usuario mediante un icono en el escritorio o en el menú.
  • Aprovechan al 100% las funciones del móvil (potencialmente) ya que están programadas para ese sistema operativo. Sólo depende de las capacidades del desarrollador.
  • Mayor rendimiento del dispositivo.
  • El usuario puede recibir notificaciones PUSH. Avisos o alertas como puede ser recibir  un nuevo mensaje o notificación que ahora sí aparecerán directamente como avisos en el menú del móvil.
  • Accesible Offline. Para usar una app ya instalada en el móvil no es indispensable tener acceso a internet. Sólo depende de las características de la aplicación. Imaginemos por ejemplo una app que usamos para crear notas recordatorias en el móvil. No es necesario que haya acceso a internet ya que toda la funcionalidad se encuentra en la app, si por el contrario la app es una red social necesitaremos internet para poder ver el contenido que se va publicando.

Ejemplos:  Facebook y Whatsapp

Ventajas Desventajas
Accesibles mediante un icono en el móvil Desarrollos independientes para cada plataforma (Coste)
Optimizan el rendimiento del móvil Mantenibilidad baja
Notificaciones PUSH Consumen más datos móviles
Accesible Offline* No hay notificaciones PUSH
Disponibles en los market Superar revisiones independientes de los market
Trabajar visibilidad ASO
Consumen espacio en el dispositivo

Aplicaciones Híbridas

Las aplicaciones híbridas son aplicaciones móviles desarrolladas con tecnologías web (HTML, CSS y JavaScript) y “empaquetadas” para cada sistema operativo de forma independiente. El usuario final no es capaz de distinguir una aplicación nativa de una híbrida, es sólo a nivel de desarrollo. Cada una de las versiones debe ser modificada para optimizar el desarrollo, pero parte del mismo código y por ello son modificaciones.

Lo que se obtiene después de este desarrollo son aplicaciones para cada uno de los sistemas operativos (Android, iOs,..) listas para subir a las tiendas correspondientes

Desarrollo de aplicaciones híbridas

Desventajas de las aplicaciones híbridas

  • No están desarrolladas en el lenguaje nativo del dispositivo y hace uso de un “intérprete” que ejecuta las  instrucciones.
  • No aprovechan al 100% las características del dispositivo. Esto será determinante cuando la funcionalidad lo requiera como puede ser el caso de la realidad aumentada, videojuegos, 3D,…etc.
  • Cada una de las aplicaciones serán subidas al market de aplicaciones correspondiente (Play Store y Apple Store). Lo mismo ocurría con las aplicaciones nativas.
  • Trabajar la visibilidad en los markets
  • Se requiere la instalación en el dispositivo. Aunque el desarrollo de la aplicación use esta tecnología, esto es trasparente para el usuario final, que sólo verá una aplicación que puede instalar en su dispositivo.
  • Consumen bastante espacio en el dispositivo del usuario

Ventajas de las aplicaciones híbridas

  • Requieren del desarrollo con tecnología web, y la estructura es aprovechable para todas las plataformas.  Menor tiempo de desarrollo.
  • Mayor mantenibilidad. Las actualizaciones de la app sólo dependen de un desarrollo con pequeños cambios para cada plataforma.
  • Una vez descargadas son accesibles desde el móvil del usuario mediante un icono en el escritorio.
  • El usuario puede recibir notificaciones PUSH. Avisos o alertas como puede ser recibir  un nuevo mensaje o notificación
  • Accesible Offline* (Sólo el contenido estático o ya descargado)

Ejemplos: Instagram, Uber, Amazon Appstore, Twitter, Gmail

Ventajas Desventajas
Sólo un desarrollo multiplataforma No usan lenguaje nativo
Coste No optimizan el rendimiento del dispositivo
Mantenibilidad alta Superar revisiones independientes de los market
Accesibles mediante un icono en el móvil Visibilidad ASO
Menor riesgo que las app nativas Consumen espacio en el dispositivo
Notificaciones PUSH
Accesibles offline*

Progressive Web Apps (PWA)

Las aplicaciones progresivas son una nueva generación de aplicaciones potenciadas por Google. Están en expansión y por el momento no son muy conocidas. Se basan en aplicaciones desarrolladas con tecnologías web y usan el navegador como motor de la app. Por eso son accesibles desde cualquier dispositivo. Visualmente es la misma experiencia que la de una app nativa.

Desarrollo de aplicaciones PWA

El proceso para llegar a «instalar» la PWA es el que se ilustra en la imagen de abajo. Hay que acceder mediante el navegador a la web que dispone de una PWA y  en el caso de Chrome, te de que el sitio en cuestión te ofrece instalar la PWA en tu móvil.
Si no aparece esta notificación podemos ir a opciones del navegador y hacer click en «Añadir a pantalla de inicio».

Cómo se usa una PWA

Desventajas de las PWA

  • No aparecen en los markets
  • Para que sean accesibles desde el escritorio hay que entrar en la web desde el móvil y anclar (o añadir) la app desde las opciones del navegador
  • No se pueden usar todas las características del dispositivo. (Contactos, NFC, Bluetooth)

Ventajas de las PWA

  • No se “instalan” en el dispositivo
  • Se pueden anclar al escritorio del dispositivo mediante un icono y visualmente serán como apps nativas para el usuario
  • Las actualizaciones de la app serán automáticas con los cambios en la aplicación web.
  • Sólo un desarrollo web y configuraciones de la app
  • Accesible offline*(Sólo el contenido estático o ya descargado)
  • Consumen mucho menos espacio en el dispositivo
  • Al igual que pasa en las aplicaciones nativas e híbridas habrá disponibles notificaciones PUSH. Esto es novedoso ya que sólo con una aplicación web esto es imposible y ahora con las PWA se puede «enlazar» las notificaciones de esa web con el dispositivo mediante este tipo de aplicación.

Ejemplos: Telegram, Ali Express, Forbes, Twitter

Ventajas Desventajas
No se “instalan” en el dispositivo No usan lenguaje nativo
Consumen poco espacio en el dispositivo No aparecen en los market
Coste No optimizan el rendimiento del dispositivo
Mantenibilidad alta Superar revisiones independientes de los market
Accesibles mediante un icono en el móvil Visibilidad ASO
Notificaciones PUSH Consumen espacio en el dispositivo
Las actualizaciones de la app van ligadas a la aplicaciones web
Accesibles offline*
Sólo un desarrollo de la web y configuraciones para la PWA

Conclusión sobre las tecnologías de desarrollo de aplicaciones

Si buscamos una aplicación que exija rendimiento por parte de los dispositivos como pueden ser aplicaciones de realidad virtual, realidad aumentada o juegos, la opción a tener en cuenta es el desarrollo nativo. En cambio si lo que necesitamos es una aplicación de gestión, redes sociales, tienda online, etc… habría que valorar el desarrollo híbrido (y progressive) por tiempos de desarrollo, mantenibilidad y coste, siempre que tengamos una limitación en alguno de estos factores.

Como hemos visto hay otras variables a tener en cuenta y por supuesto si el núcleo de nuestro negocio es la aplicación móvil merecerá la pena invertir más esfuerzo e inversión en ella.
Grandes marcas apuestan por distintos tipos de aplicaciones, esto nos recuerda que no hay sólo una opción válida. Facebook y WhatsApp tienen desarrollos nativos de sus aplicaciones. En cambio Gmail e Instagram son partidarios de usar aplicaciones híbridas.
Además también hay grandes empresas apostando por las nuevas tecnologías como las PWA (que parece que están peganfo fuerte) y además de sus aplicaciones tienen versiones de PWA para sus usuarios, con las que han coseguido rendimientos superiores a sus versiones en la web.

Por último dejamos una tabla comparativa de los tipos de aplicaciones que se han explicado en el artículo, y si tenéis cualquier pregunta no dudéis en comentar.

Nativas Híbridas Web PWA
Desarrollos (web + apps) 3 1-2 1 1,5
Markets Si Si No No
Instalación Si Si No Si*
Icono escritorio móvil Si Si No Si
Notificaciones Si Si No Si
Coste mantenimiento Alto Medio Bajo Bajo
Tiempo desarrollo Alto Medio Medio Bajo
Rendimiento dispositivo Alto Medio Bajo Bajo