Xamarin: desarrollando apps multiplataforma

¿Apps nativas, híbridas o Web apps?

Tanto los propios desarrolladores como las empresas se encuentran muchas veces con el dilema de qué camino escoger para desarrollar una aplicación móvil. 

Obviamente, no existe una respuesta única y absoluta a esta cuestión. Esto dependerá de los recursos que disponga tu empresa, los conocimientos del equipo y los objetivos de tu proyecto.

 

Apps nativas

Una app nativa es aquella que se desarrolla directamente en el lenguaje nativo del dispositivo. Por tanto, para desarrollar una app en iOs, utilizaremos Objetive C o Swift, para desarrollar en Android, utilizaremos Java y para desarrollar en Windows Phone, necesitaremos utilizar C#. 

  ¿Qué ventajas tienen?

  • Te permiten tener acceso a todo el hardware del móvil, como puede ser el GPS, la cámara y demás accesorios.
  • Se adapta 100% a las funcionalidades y características del dispositivo, obteniendo así, una mejor experiencia de usuario.

  ¿Qué desventajas tienen?

  • Implican un mayor coste 
  • Implican un mayor conocimiento por parte del equipo: la empresa necesitará un equipo de desarrollo por cada una de las plataformas.
  • Estas apps necesitan continuas actualizaciones del SO. El coste de mantenimiento y mejora de las funcionalidades se multiplica por el número de plataformas sobre las que se ejecuta la app.

Apps híbridas

Son apps que generalmente, contienen en su interior el navegador web del dispositivo. Para su desarrollo, se utilizan frameworks de desarrollo basados en lenguajes HTML, CSS y Javascript. 

  ¿Qué ventajas tienen?

  • Utilizan el mismo desarrollo para las plataformas iOs, Android y Windows Phone.
  • Implican un menor coste. 

  ¿Qué desventajas tienen?

  • Implican un rendimiento y una experiencia de usuario menor
  • Acceso limitado a funcionalidades o características dependiendo del hardware del dispositivo.
  • Alto riesgo de que la app sea rechazada por los markets al no ser nativa.

Web app

Como su propio nombre indica, es una web a la que se accede a través de una URL en el navegador del dispositivo y se adapta al formato de la pantalla para que tenga aspecto de app móvil.

Al ser una web, se utilizarán los lenguajes de programación HTML, CSS y Javascript. 

  ¿Qué ventajas tienen?

  • Implica un menor coste
  • Conlleva un desarrollo mucho más sencillo
  • Con el «responsive design« se puede crear una única aplicación adaptada a todos los dispositivos.

  ¿Qué desventajas tienen?

  • Ofrece una peor experiencia de uso puesto que ignora las características del dispositivo.
  • Implica una menor seguridad, ya que depende de la seguridad que ofrezca el navegador.
  • Muy limitado el acceso al hardware del dispositivo.
  • No se encuentran en las stores.

Desde Bravent, no recomendamos en ningún caso realizar desarrollos de web apps para clientes. Es más, es muy raro encontrar a empresas que sigan utilizando este tipo de desarrollo, ya que debido a la cantidad de dispositivos que hay actualmente en el mercado, no se puede asegurar que la página se vea bien, por lo que la experiencia de usuario es mínima. 

Entonces, ¿Qué tengo que tener en cuenta al desarrollar mi app?

  • Costes que tu empresa pueda asumir
  • Características y funcionalidades del proyecto
  • Modelo de negocio y target al que vas dirigido
  • La importancia que le des a la experiencia de usuario
  • La estructura y equipo de tu empresa

 

Xamarin: el futuro del desarrollo móvil

Una de las grandes soluciones para las empresas y los equipos de desarrollo puede ser Xamarin, ahora parte de Microsoft.

¿Por qué?  Xamarin es un entorno de desarrollo que permite crear apps nativas en cada plataforma móvil. Es decir, nos da las ventajas de las apps nativas y las ventajas de las apps híbridas (con solo un equipo de desarrollo podemos desarrollar apps para cada plataforma con un único lenguaje de programación C#), eliminando las desventajas de las apps nativas (Xamarin implica un menor coste y el equipo de desarrollo no necesita conocimientos específicos de cada plataforma).

Es decir, Xamarin nos permite desarrollar apps para iOs, Android y Windows Phone empleando muchos menos costes, menos equipo y generando la misma experiencia de usuario y las mismas ventajas que posee cualquier app nativa.

 

Todo esto está muy bien, pero, ¿Cómo funciona? 

Dado que con Xamarin se desarrolla en todas las plataformas empleando el mismo lenguaje de programación (C# o F#), podemos compartir gran cantidad del mismo llegando incluso a un 90% de código compartido. 

Otra de las principales ventajas que ofrece Xamarin es que dispone de tantas librerías de terceros como el código nativo: nos proporciona un acceso total a la API estándar de cada plataforma. 

Por si fuera poco, Xamarin cuenta con múltiples herramientas que eliminan el esfuerzo incesante de las empresas por ofrecer una solución completa a cada paso requerido en el desarrollo (Así, encontramos herramientas de diagnóstico como Xamarin Profiler o Xamarin Inspector, y herramientas destinadas a mejorar la calidad de la app como Xamarin Test Recorder o Xamarin Test Cloud).

 

Si quieres saber más sobre Xamarin y todo lo que puede ofrecernos, ¡No te pierdas nuestros próximos post!