[Xamarin.Forms] Soporte a UWP

Windows 8Universal Windows Platform

Windows 10 ha llegado como la culminación en el viaje hacia la convergencia en el desarrollo entre plataformas Windows. Ahora hablamos de Apps Universales escritas una única vez con un código común tanto para la lógica de negocio como para la interfaz de usuario. Además, generamos un único paquete que mantendrá una interfaz consistente y familiar para el usuario pero adaptada a cada plataforma.

Windows 10

Windows 10

Podemos crear apps que funcionen en todo tipo de dispositivos como teléfonos, tabletas, portátiles, dispositivos IoT, Surface Hub e incluso HoloLens. Para ello tenemos las vías utilizadas hasta este momento, es decir, utilizando C# y XAML (o VB, C++, etc).

Xamarin.Forms 2.0

Con la llegada de Xamarin 4 han aterrizado una gran cantidad de diversas novedades entre las que destaca la versión 2.0 de Xamarin Forms. Entre las novedades principales contamos con:

  • Soporte a UWP.
  • Compilación de XAML (XAMLC).
  • Optimización en Layouts.
  • Optimización de listados. Incluidas nuevas estrategias de cacheo.
  • Corrección de bugs.

Añadiendo UWP a App Xamarin.Forms

Vamos a crear un proyecto Xamarin.Forms y le añadiremos soporte a UWP. Necesitaremos:

  • Visual Studio 2015
  • Windows 10
  • Xamarin.Forms 2.0

Creamos un nuevo proyecto Xamarin.Forms:

Nueva App Xamarin.Forms

Nueva App Xamarin.Forms

Sobre la solución hacemos clic derecho y seleccionamos la opción añadir nuevo proyecto. Dentro de la categoría Universal elegimos la plantilla en blanco.

Nueva Aplicación Universal

Nueva Aplicación Universal

Tras añadir el nuevo proyecto, continuaremos añadiéndolo el paquete NuGet de Xamarin.Forms 2.0 necesario.

Añadimos la referencia a la PCL.

Tenemos las referencias a la PCL y a Xamarin.Forms, ahora debemos realizar pequeñas modificaciones en código para inicializar Xamarin Forms y la aplicación. En el método OnLaunched de App.xaml.cs utilizaremos el método Init para inicializar Xamarin.Forms:

Xamarin.Forms.Forms.Init (e);

En las vista principal, MainPage.xaml modificamos el tipo de la página de Page a WindowsPage utilizando el namespace Xamarin.Forms.Platform.UWP.

xmlns:forms="using:Xamarin.Forms.Platform.UWP"

Por último, añadimos una llamada al método LoadApplication en el contructor de la vista principal, MainPage.xaml.cs para inicializar la aplicación.

LoadApplication(new UWP.App());

Tenéis el código fuente disponible e GitHub:

Ver GitHub

Recordad que podéis dejar cualquier comentario, sugerencia o duda en los comentarios.

Limitaciones

El soporte es bastante elevado pero no es aún completo. Existen una serie de limitaciones conocidas:

  • El aspecto de algunas páginas o elementos no esta cerrado.
  • Existe algún posible error en navegación.
  • No hay soporte aún a mapas.

Más información

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s