Desarrollo de aplicaciones móviles multiplataforma

Desarrollo de aplicaciones móviles multiplataforma

Hoy en día muchos de nuestros clientes necesitan soluciones para distintas plataformas móviles. El desarrollo nativo es complicado, sobre todo para equipos de desarrollo pequeños o presupuestos ajustados, ya que para cada plataforma debe utilizarse un entorno, lenguaje y herramientas distintos, aumentando así el tiempo de desarrollo y, por lo tanto, el coste.

Para estos casos donde los costes en tiempo o dinero son elevados e inasumibles para el cliente o el proveedor, una opción a tener en cuenta es el desarrollo de aplicaciones móviles multiplataforma.

Ventajas y inconvenientes del desarrollo de aplicaciones móviles multiplataforma

En primer lugar trataremos las ventajas del desarrollo multiplataforma frente al desarrollo nativo para, a continuación, comentar algunos inconvenientes de éste.

Las principales ventajas son:

  • Lenguaje, entorno y herramientas únicos para todas las plataformas.
  • Reutilización del mismo código para todas las plataformas (dependiendo del framework utilizado el porcentaje será mayor o menor).
  • Menor coste económico y reducción de tiempos de desarrollo.

Por otro lado los principales inconvenientes son:

  • Menor rendimiento de las aplicaciones (variará en función del framework elegido).
  • En algunos casos no podremos acceder a las APIs nativas. De nuevo depende del framework elegido.
  • Interfaces distintas, aumentando la fricción en su uso respecto a las nativas.

Frameworks

En el mercado hay distintos frameworks para el desarrollo de aplicaciones móviles multiplataforma, vamos a diferenciarlos entre dos tipos ya que su propósito y, sobre todo, sus resultados varían bastante.

Por un lado existen los frameworks basados en tecnologías web. Éstos utilizan HTML5, JavaScript, CSS3, etc. para desarrollar las aplicaciones. Además, nos proporcionan acceso a las APIs nativas de cada plataforma ya sea de forma nativa o mediante el uso de plugins.

Este tipo de frameworks suelen ser los más rápidos a la hora de desarrollar nuestras aplicaciones para varias plataformas. Sin embargo, también son las que peor rendimiento dan ya que no ejecutan código nativo y dependen del navegador web, además tendremos una interfaz genérica para todas las plataformas que no se adaptará a las particularidades de cada una de ellas. Algunos de los frameworks de este tipo son:

  • Apache Cordova
  • PhoneGap

Conviene comentar que hay muchos frameworks web como Ionic Framework o ExtJs que, para el acceso a las APIs y la generación de las aplicaciones para los marketplaces de las distintas plataformas, utilizan estos frameworks.

Por otro lado tenemos los frameworks pseudo-nativos. Estos frameworks implementan las distintas APIs de las plataformas en un solo lenguaje y generan código nativo para las distintas plataformas al compilarse.

Con estos, el desarrollo será muy cercano al desarrollo nativo y, por lo tanto, el coste en tiempo y dinero aumentará respecto a los frameworks basados en tecnologías web. Sin embargo, el coste será menor que en el desarrollo nativo ya que el lenguaje y entorno de programación será el mismo y un porcentaje del código generado será compartido. En cuanto al rendimiento, como os podéis imaginar, será muy parecido al de una aplicación nativa. Lo mismo ocurre con la interfaz: al utilizar las propias componentes de la plataforma es difícil, por no decir imposible, diferenciar entre las aplicaciones desarrolladas con estos frameworks y las aplicaciones nativas. Os dejamos sus principales exponentes:

  • Xamarin
  • J2ObjC
  • RoboVM
  • RubyMotion
  • Titanium

Conclusiones

Como podemos ver, el desarrollo de aplicaciones móviles multiplataforma no es perfecto, sin embargo, para presupuestos ajustados o equipos pequeños, es una opción a tener en cuenta.

Si lo más importante es el coste, los frameworks basados en tecnologías web nos darán buenos resultados para aplicaciones sencillas y su tiempo de desarrollo será bajo. De hecho, en algunos casos, la migración de una web existente a una aplicación móvil podría resultar sencilla y poco costosa utilizando alguno de estos frameworks.

Por otro lado, si buscamos un desarrollo muy cercano al nativo, tanto en rendimiento como en interfaz, los frameworks pseudo-nativos parecen más adecuados ya que obtenemos resultados muy buenos y una aplicación muy difícil de diferenciar de una nativa.