SlideShare una empresa de Scribd logo
1 de 56
Windows 10 Developer
Readiness – Spain
- Powered by MVPs
Javier Suárez
Josué Yeray
Rafa Serna
Interfaces adaptativas
en Windows 10
Windows 10 Developer Readlines
Spain
Windows 10 Developer
Readiness – Spain
Javier Suárez Ruiz
Microsoft MVP Windows Platform
Development
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
Windows 10 Developer
Readiness – Spain
Agenda
Comenzamos
1. El viaje de la convergencia
2.Universal App Platform
Mejoras en estados visuales
1. Estrategias para interfaces adaptativas
2.XAML Views por dispositivo
3.El control Relative Panel
4.Adaptive Triggers
Vistas por familias de
dispositivos
Comenzamos!
Windows 10 Developer
Readiness – Spain
Mayor facilidad para
estar al día
Plataforma de Apps
y Core unificado
El viaje de la convergencia
Windows 10
Convergencia a
nivel de kernel
Convergencia en
el modelo de
App
Windows 10 Developer
Readiness – Spain
Universal Windows Platform
Plataforma de Desarrollo
unificada
Un único paquete
Código adaptativo
XboxIoT
Universal
Windows Platform
Core APIs
La historia de las Apps Windows
adaptativas
Windows 10 Developer
Readiness – Spain
Opciones de diseño para adaptar la
interfaz
Estrategias de diseño
Layouts flexibles con tamaños relativos
Vistas XAML por dispositivo
Archivos XAML separados con código compartido
Estados visuales XAML
Utilizados para escalar y gestionar orientaciones
Windows 10 Developer
Readiness – Spain
Windows 10 Developer
Readiness – Spain
Los usuarios adoran las Apps que
son geniales en cada uno de sus
dispositivos
¿Qué tenemos “gratis”?
Windows 10 Developer
Readiness – Spain
Mejoras en Visual States
Windows 10 Developer
Readiness – Spain
Visual State setters & triggers
Setters permite establecer propiedades simples
La mayoría de propiedades no necesitan animación
Triggers declarados cuando se aplica un estado
No necesitamos gestionar eventos en el code-behind
<VisualState x:Name="wideState">
<VisualState.Setters>
<Setter Target="myPanel.Orientation" Value="Horizontal" />
</VisualState.Setters>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600"/>
</VisualState.StateTriggers>
</VisualState>
Windows 10 Developer
Readiness – Spain
Tipos de trigger
MinWindowWidth
MinWindowHeight
“Cualquier cosa por encima de este valor”
Los valores se especifican en píxeles
DEMO
Visual State Triggers
3:50
Windows 10 Developer
Readiness – Spain
…cuando algo en la ViewModel cambia
…cuando cambia algun valor
…dependiendo del tamaño de la pantalla
Bien, entonces…
¿Visual State Triggers Custom?
Windows 10 Developer
Readiness – Spain
public class InputTypeTrigger : StateTriggerBase
{
private FrameworkElement _targetElement;
private PointerDeviceType _lastPointerType, _triggerPointerType;
public FrameworkElement TargetElement
{
get { return _targetElement; }
set
{
_targetElement = value;
_targetElement.AddHandler(FrameworkElement.PointerPressedEvent, new
PointerEventHandler(_targetElement_PointerPressed), true);
Custom Trigger
Windows 10 Developer
Readiness – Spain
xmlns:triggers="using:StravaMobile.UAP.Triggers"
<VisualStateGroup x:Name="InputTypeStates">
<VisualState>
<VisualState.StateTriggers>
<triggers:InputTypeTrigger TargetElement="{x:Bind ActivityList}"
PointerType="Touch" />
<triggers:InputTypeTrigger TargetElement="{x:Bind ActivityList}"
PointerType="Pen" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="GoToTopButton.Visibility" Value="Visible" />
Uso de Custom Trigger
Windows 10 Developer
Readiness – Spain
La lógica es custom
Se pueden combiner varios Triggers
Se pueden utilizer otras opciones dentro del Trigger
como x:Defer
https://github.com/Microsoft/Windows-universal-
samples/tree/master/xaml_statetriggers
Crear Custom Triggers
DEMO
Custom Triggers
3:50
Nuevos controles XAML
Windows 10 Developer
Readiness – Spain
Relative Panel es un control de Layout XAML. Posiciona
los elementos estableciendo relaciones entre ellos.
Introducción al panel Relative Panel
Controles de Layout en Windows XAML
Grid
Stack
Panel
Canvas
Scroll
Viewer
Border View Box
Wrap
Grid
Relative
Panel
Windows 10 Developer
Readiness – Spain
Relative Panel
Adaptativo
Relativo al Panel
Relativo a controles “hermanos”
Simplifica nuestro XAML
Simplifica el árbol visual
Simplifica los estados visuales
Windows 10 Developer
Readiness – Spain
Alineación con el Panel
<RelativePanel>
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.AlignHorizontalCenterWithPanel="True"
RelativePanel.AlignVerticalCenterWithPanel="True" />
<Rectangle x:Name="BlueRect"
Height="100" Width="200" Fill="Blue" />
</RelativePanel>
Windows 10 Developer
Readiness – Spain
Opciones de posición con respecto al Panel
<Rectangle Height="100" Width="100" Fill="Red"
RelativePanel.AlignLeftWithPanel="True" (default)
RelativePanel.AlignRightWithPanel="True"
RelativePanel.AlignTopWithPanel="True" (default)
RelativePanel.AlignBottomWithPanel="True"
RelativePanel.CenterInPanelHorizontally="True"
RelativePanel.CenterInPanelVertically="True" />
Windows 10 Developer
Readiness – Spain
Alinearse con “hermanos” (derecha)
<RelativePanel>
<Rectangle x:Name="BlueRect"
Height="100" Width="100" Fill="Blue" />
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.RightOf="BlueRect"
RelativePanel.AlignVerticalCenterWith="BlueRect" />
</RelativePanel>
Windows 10 Developer
Readiness – Spain
Alinearse con “hermanos” (encima,
derecha)
<RelativePanel>
<Rectangle x:Name="BlueRect"
Height="100" Width="100" Fill="Blue" />
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.Below="BlueRect"
RelativePanel.AlignRightWith="BlueRect" />
</RelativePanel>
Windows 10 Developer
Readiness – Spain
Alinearse con “hermanos” (debajo,
centro)
<RelativePanel>
<Rectangle x:Name="BlueRect"
Height="100" Width="100" Fill="Blue" />
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.Below="BlueRect"
RelativePanel.AlignHorizontalCenterWith="BlueRect" />
</RelativePanel>
Windows 10 Developer
Readiness – Spain
Alinearse con “hermanos” (debajo, izquierda)
<RelativePanel>
<Rectangle x:Name="BlueRect"
Height="100" Width="100" Fill="Blue" />
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.Below="BlueRect"
RelativePanel.AlignLeftWith="BlueRect" />
</RelativePanel>
Windows 10 Developer
Readiness – Spain
Opciones de posicionamiento entre “hermanos”
<Rectangle Height="100" Width="100" Fill="Red"
RelativePanel.Above="BlueRect"
RelativePanel.RightOf="BlueRect"
RelativePanel.Below="BlueRect"
RelativePanel.RightOf="BlueRect" />
Windows 10 Developer
Readiness – Spain
Opciones de alineación entre “hermanos”
<Rectangle Height="100" Width="100" Fill="Red"
RelativePanel.AlignTopWith="BlueRect"
RelativePanel.AlignRightWith="BlueRect"
RelativePanel.AlignBottomWith="BlueRect"
RelativePanel.AlignLeftWith="BlueRect"
RelativePanel.AlignHorizontalCenterWith="BlueRect"
RelativePanel.AlignVerticalCenterWith="BlueRect" />
DEMODEMODEMO
Relative Panel
Windows 10 Developer
Readiness – Spain
Simplificando el árbol visual
<Grid>
<StackPanel>
<StackPanel>
<TextBlock />
<TextBlock />
</StackPanel>
<StackPanel>
<TextBlock />
<TextBlock />
</StackPanel>
</StackPanel>
</Grid>
<RelativePanel>
<TextBlock />
<TextBlock />
<TextBlock />
<TextBlock />
</RelativePanel >
El control Relative Panel es una de
las claves para tus estrategias a la
hora de adaptar la UI
El control SplitView
Windows 10 Developer
Readiness – Spain
SplitView
Windows 10 Developer
Readiness – Spain
Comportamiento
Your Windows App
Windows 10 Developer
Readiness – Spain
Segoe MDL2 Assets
Windows 10 Developer
Readiness – Spain
SplitView.Pane
<SplitView>
<SplitView.Pane>
<StackPanel>
<RadioButton />
<RadioButton />
</StackPanel>
</SplitView.Pane>
</SplitView>
Windows 10 Developer
Readiness – Spain
SplitView.Content
<SplitView>
<SplitView.Pane />
<SplitView.Content>
<Frame/>
</SplitView.Content>
</SplitView>
Windows 10 Developer
Readiness – Spain
Propiedades del SplitView
<SplitView
IsPaneOpen="False"
CompactPaneLength="150"
OpenPaneLength="50"
Placement="Right|Left"
PaneDisplayMode="CompactInline">
<SplitView.Pane />
<SplitView.Content />
</SplitView>
Windows 10 Developer
Readiness – Spain
SplitView.PaneDisplayMode
SplitView.IsPaneOpen
"True"
SplitView.IsPaneOpen
"False"
Inline
Overlay
Compact Inline
Compact Overlay
DEMODEMO
SplitView
Windows 10 Developer
Readiness – Spain
¿Qué pasa si…?
SplitView vs. Pivot
Comandos en la
parte superior VS
inferior
Vistas por familia de dispositivo
Windows 10 Developer
Readiness – Spain
Cuando ApiInformation no es
suficiente
Utilizamos familias de dispositivos como
Xbox y Surface Hub
Adapta la experiencia de usuario
Windows 10 Developer
Readiness – Spain
Debemos determinar escenarios donde sea necesario
Creamos vistas específicas en estos casos
Cargamos la vista adecuada en consecuencia
Adapta tu vista
//Get the diagonal size of the integrated display
var dsc = new DisplaySizeHelper.DisplaySizeClass();
double _actualSizeInInches = dsc.GetDisplaySizeInInches();
//Guidance: If the diagonal size is <= 7" use the OneHanded optimized view
if ( _actualSizeInInches >0 && _actualSizeInInches <= ONEHANDEDSIZE)
{
rootFrame.Navigate(typeof(MainPage_OneHanded), e.Arguments);
}
else
{
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
DEMODEMODEMO
Vistas por familia de
dispositivo
P & R
Windows 10 Developer
Readiness – Spain
Introducción de “Template 10”
Nueva plantilla en blanco
Incluye archivos y carpetas para guiar en las convenciones
Similar a la plantilla MVC
Add-on para resolver problemas habituales
Resuelve el 90% de casos
El código resuelve el 90& de usos de caso
Windows 10
La plantilla esta disponible en GitHub y aun en desarrollo
Contribuye la Template10
http://aka.ms/template10
Windows 10 Developer
Readiness – Spain
Conclusiones
El fin del viaje de la convergencia
Un paquete, una Store, etc.
Mejoras en estados visuales
Propiedades simples y Triggers disponibles
Vistas por familia de dispositivo
Cuando la complejidad de adaptar layout a multiples familias de dispositivos es elevada, podemos crear vistas
específicas por familia de dispositivo.
RelativePanel
Nuevo Panel que permite posicionar elementos con relaciones entre ellos.
Visita la web del programa de MVPs para acceder a las grabaciones!
http://aka.ms/Win10MVP
Permaneced atentos para más eventos
MVP globales!
Visítanos en http://mvp.microsoft.com

Más contenido relacionado

La actualidad más candente

Windows 10: One SDK to rule them all
Windows 10: One SDK to rule them allWindows 10: One SDK to rule them all
Windows 10: One SDK to rule them all
Javier Suárez Ruiz
 
Introducción al desarrollo de Apps en Windows 10
Introducción al desarrollo de Apps en  Windows 10Introducción al desarrollo de Apps en  Windows 10
Introducción al desarrollo de Apps en Windows 10
Javier Suárez Ruiz
 
Introducción a las Apps Universales
Introducción a las Apps UniversalesIntroducción a las Apps Universales
Introducción a las Apps Universales
Javier Suárez Ruiz
 

La actualidad más candente (20)

Interfaces Adaptativas en Windows 10
Interfaces Adaptativas en Windows 10Interfaces Adaptativas en Windows 10
Interfaces Adaptativas en Windows 10
 
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...
Crear Apps móviles multiplataforma con Xamarin compartiendo la mayor cantidad...
 
Introducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossIntroducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCross
 
Windows 10: One SDK to rule them all
Windows 10: One SDK to rule them allWindows 10: One SDK to rule them all
Windows 10: One SDK to rule them all
 
Introducción al desarrollo de Apps en Windows 10
Introducción al desarrollo de Apps en  Windows 10Introducción al desarrollo de Apps en  Windows 10
Introducción al desarrollo de Apps en Windows 10
 
Universal Windows Platform Bridges
Universal Windows Platform BridgesUniversal Windows Platform Bridges
Universal Windows Platform Bridges
 
Windows 10 universal apps
Windows 10 universal appsWindows 10 universal apps
Windows 10 universal apps
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOS
 
Desktop App Converter
Desktop App ConverterDesktop App Converter
Desktop App Converter
 
Novedades en Visual Studio Online
Novedades en Visual Studio OnlineNovedades en Visual Studio Online
Novedades en Visual Studio Online
 
Reconnect(); Sevilla - Keynote
Reconnect(); Sevilla - KeynoteReconnect(); Sevilla - Keynote
Reconnect(); Sevilla - Keynote
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAML
 
Xamarin y Microsoft Azure
Xamarin y Microsoft AzureXamarin y Microsoft Azure
Xamarin y Microsoft Azure
 
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.FormsdotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
 
Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
Codemotion 2015: UI Tests, Test Cloud y CI con Apps XamarinCodemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
 
Herramientas para el desarrollo de Apps Universales
Herramientas para el desarrollo de Apps UniversalesHerramientas para el desarrollo de Apps Universales
Herramientas para el desarrollo de Apps Universales
 
Introducción a las Apps Universales
Introducción a las Apps UniversalesIntroducción a las Apps Universales
Introducción a las Apps Universales
 
Desarrollo para Microsoft Band con Xamarin
Desarrollo para Microsoft Band con XamarinDesarrollo para Microsoft Band con Xamarin
Desarrollo para Microsoft Band con Xamarin
 
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Xamarin Dev Days Málaga 2017 - Apps conectadas con AzureXamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 

Destacado

Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con XamarinCrear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Javier Suárez Ruiz
 

Destacado (6)

Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con XamarinCrear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
 
Regreso al futuro, la proposición indecente de Microsoft
Regreso al futuro, la proposición indecente de MicrosoftRegreso al futuro, la proposición indecente de Microsoft
Regreso al futuro, la proposición indecente de Microsoft
 
Taller Windows 10 TLP Innova
Taller Windows 10 TLP InnovaTaller Windows 10 TLP Innova
Taller Windows 10 TLP Innova
 
Extendiendo Xamarin.Forms
Extendiendo Xamarin.FormsExtendiendo Xamarin.Forms
Extendiendo Xamarin.Forms
 
Microsoft Tech Summit - Taller Xamarin
Microsoft Tech Summit - Taller XamarinMicrosoft Tech Summit - Taller Xamarin
Microsoft Tech Summit - Taller Xamarin
 
Creando Aplicaciones UWP para Xbox One
Creando Aplicaciones UWP para Xbox OneCreando Aplicaciones UWP para Xbox One
Creando Aplicaciones UWP para Xbox One
 

Similar a Windows 10 Developer Readiness. Interfaces Adaptativas

Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
Nilson Gongora
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
ERWIN AGUILAR
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
Leo31146695
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
Carlitos Sosa
 
Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con AndroidTutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
Luis Ernesto Castillo Alfaro
 
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
glorii piickolii
 

Similar a Windows 10 Developer Readiness. Interfaces Adaptativas (20)

Introducción a Windows 10
Introducción a Windows 10Introducción a Windows 10
Introducción a Windows 10
 
MobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a AndroidMobileCONGalicia Introducción a Android
MobileCONGalicia Introducción a Android
 
Android bootcamp 101 v2.0
Android bootcamp 101 v2.0Android bootcamp 101 v2.0
Android bootcamp 101 v2.0
 
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Guía Android
Guía AndroidGuía Android
Guía Android
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Mdw guia-android
Mdw guia-androidMdw guia-android
Mdw guia-android
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
 
Windows 10 Dev Readiness - Colombia
Windows 10 Dev Readiness - ColombiaWindows 10 Dev Readiness - Colombia
Windows 10 Dev Readiness - Colombia
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
Preguntasviri
PreguntasviriPreguntasviri
Preguntasviri
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Android
AndroidAndroid
Android
 
Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con AndroidTutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
Tutorial Nro. 2 de Desarollo de Aplicaciones Móviles con Android
 
Asp.net
Asp.netAsp.net
Asp.net
 
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicasASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
 
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
1. introduccion a_android__conceptos_basicos__entorno_de_desarrollo_eclipse
 

Más de Javier Suárez Ruiz

Más de Javier Suárez Ruiz (20)

Cape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community ToolkitCape Town MS Developer User Group: Xamarin Community Toolkit
Cape Town MS Developer User Group: Xamarin Community Toolkit
 
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsTech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
 
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI Handlers
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.Forms
 
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsMonkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
 
Crear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.FormsCrear interfaces de usuario atractivas con Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.Forms
 
#XamarinUIJuly Summary
#XamarinUIJuly Summary#XamarinUIJuly Summary
#XamarinUIJuly Summary
 
DotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.FormsDotNet 2019: Optimizando Apps con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.Forms
 
Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018
 
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms ShellMonkey Conf 2018: Conociendo Xamarin.Forms Shell
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
 
.Net Conf Sevilla 2018
.Net Conf Sevilla 2018.Net Conf Sevilla 2018
.Net Conf Sevilla 2018
 
Analizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.FormsAnalizando interfaces de usuario avanzadas con Xamarin.Forms
Analizando interfaces de usuario avanzadas con Xamarin.Forms
 
OpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinOpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller Xamarin
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!
 
Novedades Xamarin 3.0 Preview
Novedades Xamarin 3.0 PreviewNovedades Xamarin 3.0 Preview
Novedades Xamarin 3.0 Preview
 
Desarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloDesarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrollo
 
Introducción a Xamarin.Forms
Introducción a Xamarin.FormsIntroducción a Xamarin.Forms
Introducción a Xamarin.Forms
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 
Aumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinAumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas Xamarin
 

Último

Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
Yanitza28
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
Marc Liust
 

Último (18)

Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 

Windows 10 Developer Readiness. Interfaces Adaptativas

  • 1. Windows 10 Developer Readiness – Spain - Powered by MVPs Javier Suárez Josué Yeray Rafa Serna
  • 2. Interfaces adaptativas en Windows 10 Windows 10 Developer Readlines Spain
  • 3. Windows 10 Developer Readiness – Spain Javier Suárez Ruiz Microsoft MVP Windows Platform Development • Blog: http://geeks.ms/blogs/jsuarez • Email: javiersuarezruiz@hotmail.com • Twitter: @jsuarezruiz
  • 4. Windows 10 Developer Readiness – Spain Agenda Comenzamos 1. El viaje de la convergencia 2.Universal App Platform Mejoras en estados visuales 1. Estrategias para interfaces adaptativas 2.XAML Views por dispositivo 3.El control Relative Panel 4.Adaptive Triggers Vistas por familias de dispositivos
  • 6. Windows 10 Developer Readiness – Spain Mayor facilidad para estar al día Plataforma de Apps y Core unificado El viaje de la convergencia Windows 10 Convergencia a nivel de kernel Convergencia en el modelo de App
  • 7. Windows 10 Developer Readiness – Spain Universal Windows Platform Plataforma de Desarrollo unificada Un único paquete Código adaptativo XboxIoT Universal Windows Platform Core APIs
  • 8. La historia de las Apps Windows adaptativas
  • 9. Windows 10 Developer Readiness – Spain Opciones de diseño para adaptar la interfaz Estrategias de diseño Layouts flexibles con tamaños relativos Vistas XAML por dispositivo Archivos XAML separados con código compartido Estados visuales XAML Utilizados para escalar y gestionar orientaciones
  • 12. Los usuarios adoran las Apps que son geniales en cada uno de sus dispositivos
  • 16. Windows 10 Developer Readiness – Spain Visual State setters & triggers Setters permite establecer propiedades simples La mayoría de propiedades no necesitan animación Triggers declarados cuando se aplica un estado No necesitamos gestionar eventos en el code-behind <VisualState x:Name="wideState"> <VisualState.Setters> <Setter Target="myPanel.Orientation" Value="Horizontal" /> </VisualState.Setters> <VisualState.StateTriggers> <AdaptiveTrigger MinWindowWidth="600"/> </VisualState.StateTriggers> </VisualState>
  • 17. Windows 10 Developer Readiness – Spain Tipos de trigger MinWindowWidth MinWindowHeight “Cualquier cosa por encima de este valor” Los valores se especifican en píxeles
  • 19. Windows 10 Developer Readiness – Spain …cuando algo en la ViewModel cambia …cuando cambia algun valor …dependiendo del tamaño de la pantalla Bien, entonces… ¿Visual State Triggers Custom?
  • 20. Windows 10 Developer Readiness – Spain public class InputTypeTrigger : StateTriggerBase { private FrameworkElement _targetElement; private PointerDeviceType _lastPointerType, _triggerPointerType; public FrameworkElement TargetElement { get { return _targetElement; } set { _targetElement = value; _targetElement.AddHandler(FrameworkElement.PointerPressedEvent, new PointerEventHandler(_targetElement_PointerPressed), true); Custom Trigger
  • 21. Windows 10 Developer Readiness – Spain xmlns:triggers="using:StravaMobile.UAP.Triggers" <VisualStateGroup x:Name="InputTypeStates"> <VisualState> <VisualState.StateTriggers> <triggers:InputTypeTrigger TargetElement="{x:Bind ActivityList}" PointerType="Touch" /> <triggers:InputTypeTrigger TargetElement="{x:Bind ActivityList}" PointerType="Pen" /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="GoToTopButton.Visibility" Value="Visible" /> Uso de Custom Trigger
  • 22. Windows 10 Developer Readiness – Spain La lógica es custom Se pueden combiner varios Triggers Se pueden utilizer otras opciones dentro del Trigger como x:Defer https://github.com/Microsoft/Windows-universal- samples/tree/master/xaml_statetriggers Crear Custom Triggers
  • 25. Windows 10 Developer Readiness – Spain Relative Panel es un control de Layout XAML. Posiciona los elementos estableciendo relaciones entre ellos. Introducción al panel Relative Panel Controles de Layout en Windows XAML Grid Stack Panel Canvas Scroll Viewer Border View Box Wrap Grid Relative Panel
  • 26. Windows 10 Developer Readiness – Spain Relative Panel Adaptativo Relativo al Panel Relativo a controles “hermanos” Simplifica nuestro XAML Simplifica el árbol visual Simplifica los estados visuales
  • 27. Windows 10 Developer Readiness – Spain Alineación con el Panel <RelativePanel> <Rectangle x:Name="RedRect" Height="100" Width="100" Fill="Red" RelativePanel.AlignHorizontalCenterWithPanel="True" RelativePanel.AlignVerticalCenterWithPanel="True" /> <Rectangle x:Name="BlueRect" Height="100" Width="200" Fill="Blue" /> </RelativePanel>
  • 28. Windows 10 Developer Readiness – Spain Opciones de posición con respecto al Panel <Rectangle Height="100" Width="100" Fill="Red" RelativePanel.AlignLeftWithPanel="True" (default) RelativePanel.AlignRightWithPanel="True" RelativePanel.AlignTopWithPanel="True" (default) RelativePanel.AlignBottomWithPanel="True" RelativePanel.CenterInPanelHorizontally="True" RelativePanel.CenterInPanelVertically="True" />
  • 29. Windows 10 Developer Readiness – Spain Alinearse con “hermanos” (derecha) <RelativePanel> <Rectangle x:Name="BlueRect" Height="100" Width="100" Fill="Blue" /> <Rectangle x:Name="RedRect" Height="100" Width="100" Fill="Red" RelativePanel.RightOf="BlueRect" RelativePanel.AlignVerticalCenterWith="BlueRect" /> </RelativePanel>
  • 30. Windows 10 Developer Readiness – Spain Alinearse con “hermanos” (encima, derecha) <RelativePanel> <Rectangle x:Name="BlueRect" Height="100" Width="100" Fill="Blue" /> <Rectangle x:Name="RedRect" Height="100" Width="100" Fill="Red" RelativePanel.Below="BlueRect" RelativePanel.AlignRightWith="BlueRect" /> </RelativePanel>
  • 31. Windows 10 Developer Readiness – Spain Alinearse con “hermanos” (debajo, centro) <RelativePanel> <Rectangle x:Name="BlueRect" Height="100" Width="100" Fill="Blue" /> <Rectangle x:Name="RedRect" Height="100" Width="100" Fill="Red" RelativePanel.Below="BlueRect" RelativePanel.AlignHorizontalCenterWith="BlueRect" /> </RelativePanel>
  • 32. Windows 10 Developer Readiness – Spain Alinearse con “hermanos” (debajo, izquierda) <RelativePanel> <Rectangle x:Name="BlueRect" Height="100" Width="100" Fill="Blue" /> <Rectangle x:Name="RedRect" Height="100" Width="100" Fill="Red" RelativePanel.Below="BlueRect" RelativePanel.AlignLeftWith="BlueRect" /> </RelativePanel>
  • 33. Windows 10 Developer Readiness – Spain Opciones de posicionamiento entre “hermanos” <Rectangle Height="100" Width="100" Fill="Red" RelativePanel.Above="BlueRect" RelativePanel.RightOf="BlueRect" RelativePanel.Below="BlueRect" RelativePanel.RightOf="BlueRect" />
  • 34. Windows 10 Developer Readiness – Spain Opciones de alineación entre “hermanos” <Rectangle Height="100" Width="100" Fill="Red" RelativePanel.AlignTopWith="BlueRect" RelativePanel.AlignRightWith="BlueRect" RelativePanel.AlignBottomWith="BlueRect" RelativePanel.AlignLeftWith="BlueRect" RelativePanel.AlignHorizontalCenterWith="BlueRect" RelativePanel.AlignVerticalCenterWith="BlueRect" />
  • 36. Windows 10 Developer Readiness – Spain Simplificando el árbol visual <Grid> <StackPanel> <StackPanel> <TextBlock /> <TextBlock /> </StackPanel> <StackPanel> <TextBlock /> <TextBlock /> </StackPanel> </StackPanel> </Grid> <RelativePanel> <TextBlock /> <TextBlock /> <TextBlock /> <TextBlock /> </RelativePanel >
  • 37. El control Relative Panel es una de las claves para tus estrategias a la hora de adaptar la UI
  • 39. Windows 10 Developer Readiness – Spain SplitView
  • 40. Windows 10 Developer Readiness – Spain Comportamiento Your Windows App
  • 41. Windows 10 Developer Readiness – Spain Segoe MDL2 Assets
  • 42. Windows 10 Developer Readiness – Spain SplitView.Pane <SplitView> <SplitView.Pane> <StackPanel> <RadioButton /> <RadioButton /> </StackPanel> </SplitView.Pane> </SplitView>
  • 43. Windows 10 Developer Readiness – Spain SplitView.Content <SplitView> <SplitView.Pane /> <SplitView.Content> <Frame/> </SplitView.Content> </SplitView>
  • 44. Windows 10 Developer Readiness – Spain Propiedades del SplitView <SplitView IsPaneOpen="False" CompactPaneLength="150" OpenPaneLength="50" Placement="Right|Left" PaneDisplayMode="CompactInline"> <SplitView.Pane /> <SplitView.Content /> </SplitView>
  • 45. Windows 10 Developer Readiness – Spain SplitView.PaneDisplayMode SplitView.IsPaneOpen "True" SplitView.IsPaneOpen "False" Inline Overlay Compact Inline Compact Overlay
  • 47. Windows 10 Developer Readiness – Spain ¿Qué pasa si…? SplitView vs. Pivot Comandos en la parte superior VS inferior
  • 48. Vistas por familia de dispositivo
  • 49. Windows 10 Developer Readiness – Spain Cuando ApiInformation no es suficiente Utilizamos familias de dispositivos como Xbox y Surface Hub Adapta la experiencia de usuario
  • 50. Windows 10 Developer Readiness – Spain Debemos determinar escenarios donde sea necesario Creamos vistas específicas en estos casos Cargamos la vista adecuada en consecuencia Adapta tu vista //Get the diagonal size of the integrated display var dsc = new DisplaySizeHelper.DisplaySizeClass(); double _actualSizeInInches = dsc.GetDisplaySizeInInches(); //Guidance: If the diagonal size is <= 7" use the OneHanded optimized view if ( _actualSizeInInches >0 && _actualSizeInInches <= ONEHANDEDSIZE) { rootFrame.Navigate(typeof(MainPage_OneHanded), e.Arguments); } else { rootFrame.Navigate(typeof(MainPage), e.Arguments); }
  • 52. P & R
  • 53. Windows 10 Developer Readiness – Spain Introducción de “Template 10” Nueva plantilla en blanco Incluye archivos y carpetas para guiar en las convenciones Similar a la plantilla MVC Add-on para resolver problemas habituales Resuelve el 90% de casos El código resuelve el 90& de usos de caso Windows 10 La plantilla esta disponible en GitHub y aun en desarrollo
  • 55. Windows 10 Developer Readiness – Spain Conclusiones El fin del viaje de la convergencia Un paquete, una Store, etc. Mejoras en estados visuales Propiedades simples y Triggers disponibles Vistas por familia de dispositivo Cuando la complejidad de adaptar layout a multiples familias de dispositivos es elevada, podemos crear vistas específicas por familia de dispositivo. RelativePanel Nuevo Panel que permite posicionar elementos con relaciones entre ellos. Visita la web del programa de MVPs para acceder a las grabaciones! http://aka.ms/Win10MVP
  • 56. Permaneced atentos para más eventos MVP globales! Visítanos en http://mvp.microsoft.com