Desarrollar Apps con Xamarin

Xamarin es una compañía establecida en 2011 por los mismos ingenieros que llevaron a cabo el Proyecto Mono, una implementación libre de la plataforma de desarrollo.NET para Android, iOS y GNU/Linux. Xamarin es una completa herramienta que está entre las alternativas para el desarrollo de apps multiplataforma. Lo más destacable de Xamarin es su gran capacidad para traducir una app en lenguaje C# a un código ejecutable en iOS, Android y Windows Phone.

Recientemente xamarin ha sido comprado por Microsoft con el fin de impulsar el desarrollo de aplicaciones para múltiples dispositivos.

La estrategia de Microsoft es simplificar el trabajo a los desarrolladores y la relación con Xamarin no es algo nuevo. Anteriormente la empresa habilitó la integración de Xamarin con visual Studio, Office 365 y otros productos de Microsoft. mas info.

para los que apenas empiezan en este mundo del desarrollo de aplicaciones, C# es un lenguaje de programación desarrollado por Microsoft, muy popular entre los desarrolladores .NET de apps móviles.

Para desarrollar apps en iOS se utiliza el código Objective-C o Swift y para desarrollar en Android se utiliza Java. Lo que hace Xamarin es unificar estos lenguajes mediante su IDE Xamarin Studio, por lo que nos bastara con saber el lenguaje de programacion C# para desarrollar apps para iOS, Android y Windows Phone, pero tambien es bueno tener nociones de cada una de estas plataformas.

funcionamiento xamarin

 

Una de sus principales ventajas es la reutilización de código. Esto es, al desarrollar una app se escribe un código nuevo, probado y testeado; si este código es el mismo para todas las plataformas para las que queremos nuestra app, no será necesario reescribirlo de nuevo sino que lo podemos reutilizar ya que está probado y no presentará errores, lo que nos garantizará un funcionamiento correcto. De no ser así, si encontramos algún error de código y lo corregimos en el código compartido, esta corrección se aplicará a todas las plataformas al compilarlo de nuevo. Esto influirá positivamente en el plazo y coste de desarrollo de la app, que se verá reducido considerablemente y en la consistencia ya que el entorno de desarrollo será el mismo para todas las plataformas, lo que nos hará más fácil la transición entre cada entorno.

Arquitectura Xamarin app

Es importante que del código reutilizable eliminemos todo aquello que tenga que ver con el uso de interfaces nativas, ya que éste dependerá únicamente del sistema operativo destino. También cualquier integración con sistema de ficheros, frameworks específicos de cada plataforma o comprobaciones de licencia. De ahí que intentemos extraer o desacoplar la mayor cantidad de funcionalidad posible de forma independiente. Gracias a técnicas como la Inversión de Control (IoC en inglés) podremos incrementar el código compartido.

Código compartido

Otra de sus ventajas es que cuenta con bastantes bibliotecas de clases de terceros equiparable a la del código nativo. Además de esto, nos da acceso total a la API estándar de iOS y Android, solo que lo hace a través de C#.

En resumen, Xamarin Studio (XS) te proporciona todas las herramientas disponibles para portar tus aplicaciones a iOS, Android y Windows Phone.  

Xamarin  es gratis y te da una versión Starter mucho mas completa que la que se tenia hace unos meses tenia limitaciones de en el tamaño de la aplicación, por lo que hacer aplicaciones con Xamarin.Forms no se podía hacer uso. ya que sobrepasaba el tamaño de la app, y si necesitabas realizar ese tipo de aplicación tenias que instalar una versión Business que se usaba por un periodo de prueba de 29 días. y bueno, en la siguiente imagen, los costos que tenia xamarin antes que lo adquiriera Microsoft y que actualmente ya no estan disponibles esos costos y versiones, actualmente solo se cuenta con la versión  Starter por lo que he visto en su pagina oficial de Xamarin.

Dentro de Xamarin podemos encontrar otra variante llamada Xamarin.Forms que te proporciona un conjunto de herramientas de interfaz de usuario que te permitirá crear fácilmente interfaces de usuario que podrás compartir en Android, iOS y Windows Phone. Estas interfaces de usuario se representan utilizando los controles nativos de la plataforma de destino, lo que permite que las aplicaciones de Xamarin.Forms mantengan el look and feel adecuado para cada plataforma.

Xamarin.Forms está escrito en C# y las apps desarrolladas con él pueden utilizar cualquiera de las APIs y algunas opciones como CoreMotion, Passkit y Storekit en iOS, NFC y Google Play Services en Android o Tiles en Window Phone. Esto significa que es posible crear aplicaciones donde una parte de su interfaz de usuario esté diseñada con Xamarin.Forms y otra parte con el kit de herramientas de interfaz de usuario nativa.

La arquitectura de las aplicaciones Xamarin.Forms es la misma que las de las aplicaciones multiplataforma tradicionales. El método más frecuente es utilizar bibliotecas portátiles o proyectos compartidos para alojar el código compartido y después crear aplicaciones específicas para cada plataforma que consuman el código compartido. A continuación puedes ver cómo es el enfoque tradicional de Xamarin y cómo sería el enfoque añadiéndole Xamarin.Forms

Xamarin forms + Xamarin

Hay dos técnicas para crear interfaces de usuario en Xamarin.Forms. Una de ellas es crearlas completamente con el código fuente usando la API proporcionada por Xamarin.Forms y otra es usar el Extensible Application Markup Language (XAML), un lenguaje declarativo de Microsoft que se utiliza para describir las interfaces de usuario. La propia interfaz de usuario se define en un archivo XML utilizando la sintaxis XAML, mientras que el comportamiento en tiempo de ejecución se define en un archivo separado de código subyacente.

Deja un comentario