novedades xamarin.forms 2

Download Novedades Xamarin.Forms 2

Post on 06-Apr-2017

739 views

Category:

Software

0 download

Embed Size (px)

TRANSCRIPT

PowerPoint Presentation

The future of apps4Yeray Julinjyeray@devsdna.com

4The future of apps@josueyeray

1

Make it fast, easy, and fun to create great mobile apps.

Xamarins Mission

2

Xamarin + Xamarin.FormsTraditional Xamarin ApproachWith Xamarin.Forms:More code-sharing, all native iOS C# UI Windows C# UIAndroid C# UI

Shared C# Backend

Shared UI CodeShared C# Backend

Xamarin recently introduced Xamarin.Forms a new library for cross platform user interface. We will touch up on this later, but this enables you to be highly productive, share code, but build out UI on each platform and access platform APIs.

With Xamarin.Forms you now have a nice Shared UI Code layer, but still access to platform APIsYou can start from native, pick a few screens, or start with forms, and replace with native later

3

Whats new in Xamarin Platform?Enhanced VS IntegrationXamarin.Forms 2.0iOS 9 & Android MPreviewTechnologies

4

Mejoras de integracin con iOS 9 y Android 6Material Design (AppCompat)Optimizacin del rendimientoXAML pre compiladoWindows 10 (UWP) PreviewNuevos gestosEfectos, templates

Xamarin.Forms 2.0

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!5

Ya estaba disponible en 1.4.3-pre1 en modo previewSe desactivo en 1.4.3-pre3 por problemas de renderizadoVuelve en 2.0 de forma final

En tiempo de compilacin, se realiza el parsing del XAML y se crean archivos compiladosMejora del rendimiento de carga de las pginasAnalisis del XAML a nivel sintctico.

Para depuracin puede interferir, por lo que es mejor desactivarlo y usarlo solo en modo release

XAMLC (Xaml Compilado)

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!6

Podemos establecer la compilacin:A nivel de ensamblado, para todas las pginas XAML:

A nivel de pgina:

XAMLC (Xaml Compilado)[assembly: XamlCompilation (XamlCompilationOptions.Compile)][XamlCompilation (XamlCompilationOptions.Compile)]public class MyCustomView : ContentView{ ... }

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!7

Soporte previo, no definitivo, para Windows 10 Universal AppsSe inicializa como cualquier otra plataforma.Usamos Xamarin.Forms.Platform.UWP para obtener una clase base de pgina

Problemas conocidos actualmente:Look/feel de algunos controles no es definitivo.Problemas y fallos en la navegacin.Problemas de alineamiento de texto.Sin soporte para mapas.Existen problemas para cargar tipos usando .NET native tool chain para compilar nuestra app.Es usable, pero no est listo para poner en produccin como app crtica, por el momento.

Soporte UWP (Windows 10)

10

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!8

Este gesto nos permite aadir funcionalidad de Zoom facilmente en nuestros controles

Aadimos el PinchGestureRecognizer a la coleccin de reconocedores y manejamos el evento PinchUpdated

Tres estados: Started, Running, Completed nos permiten adecuar nuestro cdigo.

Gesto Pinch

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!9

Ahora ListView tiene dos modos de funcionamiento:RetainElementRecycleElementEl modo tradicional es RetainElement, presente en todas las versiones de Xamarin.Forms

RecycleElement:solo funciona en iOS/Android. En Windows, aunque se especifique, se sigue usando el modo antiguo.Durante la virtualizacin, el contexto de cada celda se actualiza.Se realiza un inflate de cada DataTemplate por cada render nativo.

Retain/Recycle en ListView

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!10

Se recomienda usar RecycleElement si:El contexto de datos de cada celda define todas las propiedades de la vista.El tamao de la celda no cambia y su contenido es muy parecido.La celda tiene un bajo nmero de bindings.Se recomienda usar RetainElement si:Las celdas cambian frequentemente (tamao, elementos)Las celdas tienen muchos bindings (20 o ms)Si al probar RecycleElement, baja el rendimiento.

El futuro ser RecycleElement y se tiende a hacer RetainElement obsoleto, pero no hasta que RecycleElement cubra todos los casos posibles.

Retain/Recycle en ListView

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!11

Con Xamarin.Forms 2 se libera una nueva optimizacin de layout experimental.Impacta en los LayoutUpdates.

Para obtener el mejor resultado posible:Intentar no especificar VerticalOptions ni HorizontalOptions.Con StackLayout, solo tener un hijo como Expand.Evitar RelativeLayout siempre que se pueda.Evitar columnas y filas Auto en la Grid.En AbsoluteLayout evitar AutoSize si es posible.Siempre que se pueda, evitar usar wrapping multilinea en labels. Usar la opcin NoWrapOptimizacin de layout

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!12

EfectosPlantillasSelector de plantillasMs Xamarin.Forms 2.1 pre

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!13

Nos permiten modificar la apariencia nativa de un control sin necesidad de crear un CustomRender desde 0Podemos crear efectos de sombras, bordes o lo que necesitemos.Ahora, todo elemento en Xamarin.Forms, contiene una coleccin de efectos que se le pueden aplicar.Por ejemplo, podemos aadir un borde facilmente a un elemento:

Efectos

public class BorderEffect : PlatformEffect{ protected override void OnAttached () { Control.Layer.BorderColor = UIColor.Purple.CGColor; Control.Layer.BorderWidth = 2; }

protected override void OnDetached () { Control.Layer.BorderWidth = 0; }}

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!14

Tenemos que crear los efectos en cada proyecto de plataforma.Para que funcione, debemos marcar el ensamblado de cada plataforma con dos atributos:

Luego, para aadirlo al elemento en el proyecto compartido, usaremos la resolucin de efectos que nos provee la clase Effect:

Si no implementamos un efecto en alguna plataforma, Resolve devolver un valor no nulo, por lo que no pasar nada.Efectos

[assembly: ResolutionGroupName("DevsDNA")][assembly: ExportEffect(typeof(FocusEffect), "FocusEffect")]entryText.Effects.Add(Effect.Resolve("DevsDNA.FocusEffect"));

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!15

Se introduce el concepto de plantillas para los controles.Podemos cambiar el aspecto de un control, directamente en XAML y para todas las plataformas.Para que funcione, el control tiene que soportar templating.

En la versin actual se soporta para:ContentView TemplateViewContentPage TemplatePagePlantillas

AppCompat delivers visual beautify across all version of AndroidListView overhaul with amazing optimizations for images and cell recyclingSupport for iOS, Android, Windows Phone 8, Win RT Phone/Store 8.1, and Windows 10 UWPPull to refresh & Pinch gestures & more to come!16

Se incluye por primera vez el selector de plantillas.Podemos crear una clase que herede de la clase DataTemplateSelector y sobreescribir el mtodo OnSelectTemplate para devolver la plantilla que queramos en cada momento.Como parmetro de OnSelectTemplate, recibimos cada elemento de la lista.Debemos devolver un DataTemplate

Es importante que no creemos un nuevo DataTemplate por cada elemento, en su lugar, reusamos uno existente.Actualmente, no podemos