Si quisiéramos crear una aplicación móvil para Android, IOS y Windows Phone tendríamos que  desarrollar la misma aplicación tres veces. Una para Android usando Java otra para IOS usando Objetive C y por último, otra para Windows Phone usando C#. ¿Qué podemos hacer para mejorar esto?

Utilizar Xamarin. Xamarin es una plataforma que nos permite crear aplicaciones nativas para iOS, Android y Windows Phone. Además, nos permite utilizar solo un lenguaje de programación, “C#”.

Las ventajas que encontramos al usar Xamarin son las siguientes:

  • Aplicaciones nativas
  • Compatibilidad con Visual Studio
  • Reutilización de código

Con Xamarin, tenemos la posibilidad de crear una Portable Class Library (PCL). Con una PCL, podemos crear código compartido en C# para reutilizar en todas las plataformas. En este código tendremos toda la lógica de negocio, la capa de acceso a datos y la capa de servicio.

Aun con todo esto, necesitaremos acceder a utilidades nativas para crear una interfaz de usuario específico para cada plataforma. Pero gracias a Xamarin Forms, podremos tener también una capa de interfaz común para diseñar nuestras interfaces multiplataforma.

Se pueden crear interfaces de usuario de dos formas. Usando la API proporcionada por Xamarin Forms o usando Extensible Application Markup Language (XAML).

A la hora de crear un proyecto con Xamarin Forms puedes elegir dos tipos:

  • Xamarin Forms Shared: se usan directivas de compilación if para utilizar dependiendo de las necesidades de la plataforma.
  • Xamarin Forms Portable: librería .NET compatible con distintas plataformas (PCL).

Al crear el proyecto nos saldrá una alerta, eso es porque no encuentra un MAC en la red y para poder probar la aplicación en iOS hace falta tener un MAC

La solución se compondrá de cuatro proyectos. La PCL y uno para cada plataforma.

En la PCL desarrollaríamos todo la lógica de negocios, la capa de acceso a datos y la capa de servicios. Y en los otros tres podríamos meter, por ejemplo, los recursos gráficos. Los recursos los debemos replicar en los tres proyectos.

La clase responsable de indicar cuál será la primera página a mostrar en todas las plataformas es “App.cs”.

Una vez creada la página con C# o con XAML, se debe inicializar Xamarin Forms  y proveer la página de contenido en todas las plataformas. En el caso de Android la clase se llama “MainActivity”, en iOS se llama “AppDelegate” y en Windows Phone, “MainPage”.

Xamarin incluye un Marketplace de controles algunos gratis y otros de pago.

En conclusión, en este post hemos visto cómo por medio de Xamarin Forms podemos construir aplicaciones móviles que reutilicen elementos de código común para generar aplicaciones nativas para cada plataforma

 

Félix Martínez Alvaro

Alumno de Microsoft MCSD

Centro Tajamar

Curso 2015-2016