SlideShare une entreprise Scribd logo
1  sur  83
ONE SDK TO RULE
THEM ALL
Un único paquete, interfaces adaptativas,
nuevos controles, novedades en XAML,
herramientas, etc.
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
Javier Suárez
Mobile Team Lead Bravent
Microsoft MVP Windows Platform
Development
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
EL GRAN
VIAJE…
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
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
MI
TESORO…
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
Phone Small Tablet
2-in-1s
(Tablet or Laptop)
Desktops
& All-in-OnesPhablet Large Tablet
Classic
Laptop
Xbox IoTSurface Hub HoloLens
Windows 10
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
One Store +
One Dev Center
Reuse Existing
Code
One SDK +
Tooling
Adaptive
User Interface
Natural
User Inputs
One Universal Windows Platform
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
UNIVERSAL WINDOWS PLATFORM
• UN Sistema operativo
– Mismo core Windows para todos los
dispositivos
• UNA Plataforma de Apps
– Apps corren entre todas las familias de
dispositivos
• UN Dev Center
– Mismo flujo de publicación y dashboard
• UNA Store
– Monetización, negocio, educación
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
ES SIMILAR A LO CONOCIDO?
• ¿Existe un archivo de manifiesto?
• ¿Existe un Proyecto principal?
• ¿Existe un Proyecto Shared?
• ¿Tenemos directivsa #IF de
• compilación?
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
APP WINDOWS
• Un mismo binario
– Corre en cualquier dispositivo
– Ajustable por familia de dispositivo
Phone
Dispositivo
Xbox
Dispositivo
Desktop
Dispositivo
Core Windows
Universal Windows Platform
App Windows
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DEMO
Hel10 World!
Las Apps NO se destinan a Windows 10,
las Apps se destinan a familias de
dispositivos
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
EXTENSIONES DE
PLATAFORMA• APIs específicas por familia
– Capacidades específicas por familia
– Compatible entre dispositivos
Phone
Device
Xbox
Device
Desktop
Device
Windows Core
Universal Windows Platform
Windows App
Phone
extension
Xbox
extension
Desktop
extension
Las extensions no afectan a los binaries
de otras familias de dispositivos
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
EXTENSIONES POR PLATAFORMA
<ItemGroup>
<!-- Reference to the .Net Framework
and Windows SDK are automatic -->
<SDKReference Include="Windows Desktop,
Version=10.0.9910.0"/>
<SDKReference Include="Windows Mobile,
Version=10.0.0.1"/>
</ItemGroup>
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DEMO
Utilizando extensiones
La historia de las Apps Windows
adaptativas
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
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
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DISEÑO ADAPTATIVO
Phone (portrait)
Tablet (landscape) / Desktop
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DISEÑO ADAPTADO
Phone (portrait)
Tablet (landscape) / Desktop
Los usuarios adoran las Apps que son
geniales en cada uno de sus dispositivos
Mejoras en Visual States
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
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>
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
TIPOS DE TRIGGER
• MinWindowWidth
• MinWindowHeight
– “Cualquier cosa por encima de este valor”
– Los valores se especifican en píxeles
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DEMO
Visual State Triggers
Vistas por familias de dispositivos
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DEVICE FAMILIES
• En Windows 10, podemos distinguir los dispositivos de dos formas:
• Por resolución
• Por familia
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DEVICE FAMILIES
• Windows 10 ofrece distintas familias de dispositivos:
• Desktop
• Mobile
• Xbox
• IoT
• …
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DEVICE FAMILIES
• En algunas ocasiones, puede que el cambio de UI entre familias sea más
complejo que una simple reorganización basada en el tamaño
• Incluso, el tamaño nos puede llevar a equívocos.
• Por ejemplo:
• Lumia 1520 1080x1920
• Asus VivoTab 800x1280
• No solo es importante la resolución: pulgadas y familia también lo son.
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DEVICE FAMILIES
• En estos casos, podemos crear vistas XAML por familia
• Estas vistas no contienen code-behind
• Se cargan por convención de nombre automáticamente
• Podemos seguir usando Adaptative visual states.
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DEMO
Creando vistas por familias de dispositivo
Y CON MI
HACHA!
Nuevos controles XAML
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
Relative Panel es un control de Layout XAML. Posiciona los
elementos estableciendo relaciones entre ellos.
INTRODUCCIÓN AL PANEL
RELATIVE PANELControles de Layout en Windows XAML
Grid
Stack
Panel
Canvas
Scroll
Viewer
Border View Box
Wrap
Grid
Relative
Panel
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
RELATIVE PANEL
• Adaptativo
– Relativo al Panel
– Relativo a controles “hermanos”
• Simplifica nuestro XAML
– Simplifica el árbol visual
– Simplifica los estados visuales
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
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>
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
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" />
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
ALINEARSE CON
“HERMANOS”
<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>
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
ALINEARSE CON
“HERMANOS”
<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>
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
ALINEARSE CON
“HERMANOS”
<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>
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
ALINEARSE CON “HERMANOS”
<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>
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
OPCIONES DE POSICIONAMIENTO ENTRE “HERMANOS”
<Rectangle Height="100" Width="100" Fill="Red"
RelativePanel.Above="BlueRect"
RelativePanel.RightOf="BlueRect"
RelativePanel.Below="BlueRect"
RelativePanel.RightOf="BlueRect" />
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
OPCIONES DE POSICIONAMIENTO 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" />
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DEMO
RelativePanel
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
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
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
SPLITVIEW
ONE HAMBURGUER
TO RULE THEM ALL!
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
COMPORTAMIENTO
Your Windows App
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
Segoe MDL2 Assets
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
SPLITVIEW.PANE
<SplitView>
<SplitView.Pane>
<StackPanel>
<RadioButton />
<RadioButton />
</StackPanel>
</SplitView.Pane>
</SplitView>
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
SPLITVIEW.CONTENT
<SplitView>
<SplitView.Pane />
<SplitView.Content>
<Frame/>
</SplitView.Content>
</SplitView>
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
PROPIEDADES DEL SPLIVIEW
<SplitView
IsPaneOpen="False"
CompactPaneLength="150"
OpenPaneLength="50"
Placement="Right|Left"
PaneDisplayMode="CompactInline">
<SplitView.Pane />
<SplitView.Content />
</SplitView>
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
SPLITVIEW.PANEDISPLAYMOD
E
SplitView.IsPaneOpen
"True"
SplitView.IsPaneOpen
"False"
Inline
Overlay
Compact Inline
Compact Overlay
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
DEMO
SplitView
Novedades en controles
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
<SplitView DisplayMode="Inline|Overlay|CompactInline|CompactOverlay">
<SplitView.Pane>
<!-- Navigation Content Here -->
</SplitView.Pane>
<!-- Main Content Here -->
</SplitView>
SPLITVIEW
Panel de navegación adaptativo
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
SPLITVIEW
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
PIVOT
Mismo comportamiento en teléfono, Tabs en desktop
DEMODEMODEMO
Control Pivot
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
ESCRIBIR ES HUMANO
• Immediato
• Expresivo
• Personal
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
INKCANVAS
• Se puede configurar
para utilizar diferentes
Inputs (Pen, Touch,
Mouse, etc.)
• Se pueden modificar
atributos de dibujo
• Posibilidad de sintetizar
información
InkCanvas
InkPresenter
DEMODEMODEMO
Ink Canvas
Validando XAML!
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<SymbolIcon Symbol="{Binding Symbol}"/>
<TextBlock Text="{Binding Name}"/>
<Button Click="Button_ClickHandler"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<ListView>
<ListView.ItemTemplate>
<DataTemplate
x:DataType="local:FreeBookCategory">
<StackPanel>
<SymbolIcon Symbol="{x:Bind
Symbol}"/>
<TextBlock Text="{x:Bind Name}"/>
<Button Click="{x:Bind Click}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
MEJORAS EN RENDIMIENTO
Se resuelve en tiempo de compilación y produce errores!
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
Links: Windows Performance Analyzer, EventSource
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
CONSUMO DE MEMORIA
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
USANDO BINDINGS
COMPILADOS• Reemplazamos {Binding …} por {x:Bind …}
• x:Bind esta fuertemente tipado
– El context es la página o control de usuario
• Mode=OneTime es el modo por defecto
DEMODEMODEMO
X:Bind
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
• Duck Typing – mismo nombre de propiedad en diferentes objetos
– Text=“{Binding Age}” funciona con objetos perro y persona
– x:Bind Mitigation: Usa una clase base o interfaz
• Dictionary graphs
– {Binding} puede funcionar con JSON y otros diccionarios de objetos no tipados
– {x:Bind} No funciona sin información de tipado
– Probablemente se podrían hacer suficientes Catings para hacer que funcione, pero la experiencia sería pobre
• Creación de bindings programáticamente
– {x:Bind} no tiene la capacidad de añadir / quitar bindings en runtime
• Use in a style
– {x:Bind} no se puede usar en un estilo para setters etc
– Si podemos usarlo en un DataTemplate definido en el style
¿CUÁNDO USAMOS BINDINGS
“CÁSICOS”?
Herramientas
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
VISUAL STUDIO
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
VISUAL STUDIO
DEMODEMODEMO
Visual Tree Inspector
BRIDGES
Las tecnologías “tradicionales” de
Microsoft no son la única forma de crear
Apps Windows
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
Windows 10
Sitema Operativo
Bridges
Win32
desktop
Web
hosted
Java
Android
Obj.C
iOS
Universal Windows Platform
WWAC++
& CX
.Net
lenguajes
HTML
DirectX
XAML
C++
.Net
lenguajes
MFCWFWPF
.Net
runtime
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
HABLEMOS DE BRIDGES
• Objective-C
– Código iOS que se puede reutilizar en App Windows
• Android
– Código Android reutilizado en App Windows para funcionar en Windows Phone
• Web
– Wrap webs para funcionar en Windows
• Win32
– Classic Windows Apps (CWA) se pueden empaquetar como un Appx
Los Bridges permiten llevar más Apps a la
plataforma Windows
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
¿PREGUNTAS y RESPUESTAS?
Dudas?
P&R
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
GRACIAS a TODOS
Por vuestro tiempo!
Javier Suárez
Microsoft MVP Windows Platform Development
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
ONE SDK TO RULE THEM ALL
TLPINNOVA
.
.
ONE SDK TO RULE THEM ALL
Un único paquete, interfaces adaptativas, nuevos controles, novedades en XAML, herramientas, etc.

Contenu connexe

Tendances

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 XamarinJavier Suárez Ruiz
 
Windows 10 Developer Readiness. Interfaces Adaptativas
Windows 10 Developer Readiness. Interfaces AdaptativasWindows 10 Developer Readiness. Interfaces Adaptativas
Windows 10 Developer Readiness. Interfaces AdaptativasJavier Suárez Ruiz
 
Novedades en Visual Studio Online
Novedades en Visual Studio OnlineNovedades en Visual Studio Online
Novedades en Visual Studio OnlineJavier Suárez Ruiz
 
Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One Javier Suárez Ruiz
 
Reconnect(); Sevilla - Introducción a Xamarin 4
Reconnect(); Sevilla - Introducción a Xamarin 4Reconnect(); Sevilla - Introducción a Xamarin 4
Reconnect(); Sevilla - Introducción a Xamarin 4Javier Suárez Ruiz
 
Integración Continua con Apps Xamarin
Integración Continua con Apps XamarinIntegración Continua con Apps Xamarin
Integración Continua con Apps XamarinJavier Suárez Ruiz
 
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 AzureJavier Suárez Ruiz
 
Universal Windows Platform Bridges
Universal Windows Platform BridgesUniversal Windows Platform Bridges
Universal Windows Platform BridgesJavier Suárez Ruiz
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSJavier Suárez Ruiz
 
Introducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossIntroducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossJavier Suárez Ruiz
 
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 UniversalesJavier Suárez Ruiz
 
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.FormsJavier Suárez Ruiz
 

Tendances (20)

Novedades de Xamarin 4
Novedades de Xamarin 4Novedades de Xamarin 4
Novedades de Xamarin 4
 
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
 
Windows 10 Developer Readiness. Interfaces Adaptativas
Windows 10 Developer Readiness. Interfaces AdaptativasWindows 10 Developer Readiness. Interfaces Adaptativas
Windows 10 Developer Readiness. Interfaces Adaptativas
 
Reconnect(); Sevilla - Keynote
Reconnect(); Sevilla - KeynoteReconnect(); Sevilla - Keynote
Reconnect(); Sevilla - Keynote
 
Novedades en Visual Studio Online
Novedades en Visual Studio OnlineNovedades en Visual Studio Online
Novedades en Visual Studio Online
 
Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One Tus aplicaciones en pantalla grande con Xbox One
Tus aplicaciones en pantalla grande con Xbox One
 
Introducción a Xamarin
Introducción a XamarinIntroducción a Xamarin
Introducción a Xamarin
 
Reconnect(); Sevilla - Introducción a Xamarin 4
Reconnect(); Sevilla - Introducción a Xamarin 4Reconnect(); Sevilla - Introducción a Xamarin 4
Reconnect(); Sevilla - Introducción a Xamarin 4
 
Integración Continua con Apps Xamarin
Integración Continua con Apps XamarinIntegración Continua con Apps Xamarin
Integración Continua con Apps 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
 
Universal Windows Platform Bridges
Universal Windows Platform BridgesUniversal Windows Platform Bridges
Universal Windows Platform Bridges
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOS
 
Extendiendo Xamarin.Forms
Extendiendo Xamarin.FormsExtendiendo Xamarin.Forms
Extendiendo Xamarin.Forms
 
Desktop App Converter
Desktop App ConverterDesktop App Converter
Desktop App Converter
 
Servicios Xamarin
Servicios XamarinServicios Xamarin
Servicios Xamarin
 
Introducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossIntroducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCross
 
Xamarin REvolve 2016
Xamarin REvolve 2016Xamarin REvolve 2016
Xamarin REvolve 2016
 
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
 
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
 

Similaire à 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 10Javier Suárez Ruiz
 
Herramientas de desarrollo de android
Herramientas de desarrollo de androidHerramientas de desarrollo de android
Herramientas de desarrollo de androidJaqueline Luna
 
02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7tGabo Mizhel
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilJosé Antonio Sandoval Acosta
 
Introducción a las Apps Universales
Introducción a las Apps UniversalesIntroducción a las Apps Universales
Introducción a las Apps UniversalesJavier Suárez Ruiz
 
Desarrollo De Aplicacion De Silverlight De Principio A Fin
Desarrollo De Aplicacion De Silverlight De Principio A FinDesarrollo De Aplicacion De Silverlight De Principio A Fin
Desarrollo De Aplicacion De Silverlight De Principio A Finvideos
 
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...José Antonio Sandoval Acosta
 
Introducción a las Aplicaciones Universales
Introducción a las Aplicaciones UniversalesIntroducción a las Aplicaciones Universales
Introducción a las Aplicaciones UniversalesJavier Suárez Ruiz
 
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...Luis Fernando Aguas Bucheli
 
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Luis Beltran
 

Similaire à Windows 10: One SDK to rule them all (20)

Introducción a Windows 10
Introducción a Windows 10Introducción a Windows 10
Introducción a Windows 10
 
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
 
Windows 10 universal apps
Windows 10 universal appsWindows 10 universal apps
Windows 10 universal apps
 
Introducción a Windows 10
Introducción a Windows 10Introducción a Windows 10
Introducción a Windows 10
 
Windows 10 Dev Readiness - Colombia
Windows 10 Dev Readiness - ColombiaWindows 10 Dev Readiness - Colombia
Windows 10 Dev Readiness - Colombia
 
Herramientas de desarrollo de android
Herramientas de desarrollo de androidHerramientas de desarrollo de android
Herramientas de desarrollo de android
 
02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t02 5 o8a-10231485-2-7t
02 5 o8a-10231485-2-7t
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
 
Vuelven los "Pelochos"
Vuelven los "Pelochos"Vuelven los "Pelochos"
Vuelven los "Pelochos"
 
Introducción a las Apps Universales
Introducción a las Apps UniversalesIntroducción a las Apps Universales
Introducción a las Apps Universales
 
Vbnetclass
VbnetclassVbnetclass
Vbnetclass
 
Introduccion android
Introduccion androidIntroduccion android
Introduccion android
 
Desarrollo De Aplicacion De Silverlight De Principio A Fin
Desarrollo De Aplicacion De Silverlight De Principio A FinDesarrollo De Aplicacion De Silverlight De Principio A Fin
Desarrollo De Aplicacion De Silverlight De Principio A Fin
 
Introducción a los "Pelochos"
Introducción a los "Pelochos"Introducción a los "Pelochos"
Introducción a los "Pelochos"
 
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...
Bases de Datos para Dispositivos Móviles - Unidad I Introducción a la Progra...
 
VMware Horizon View 6.x
VMware Horizon View 6.xVMware Horizon View 6.x
VMware Horizon View 6.x
 
Introducción a las Aplicaciones Universales
Introducción a las Aplicaciones UniversalesIntroducción a las Aplicaciones Universales
Introducción a las Aplicaciones Universales
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
 
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
 

Plus de Javier Suárez Ruiz

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 ToolkitJavier Suárez Ruiz
 
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.FormsJavier Suárez Ruiz
 
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....Javier Suárez Ruiz
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersJavier Suárez Ruiz
 
Creando controles para Xamarin.Forms
Creando controles para Xamarin.FormsCreando controles para Xamarin.Forms
Creando controles para Xamarin.FormsJavier Suárez Ruiz
 
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.FormsJavier Suárez Ruiz
 
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.FormsJavier Suárez Ruiz
 
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.FormsJavier Suárez Ruiz
 
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 ShellJavier Suárez Ruiz
 
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.FormsJavier Suárez Ruiz
 
OpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinOpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinJavier Suárez Ruiz
 
DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!DotNet2018: Xamarin.Forms Everywhere!
DotNet2018: Xamarin.Forms Everywhere!Javier Suárez Ruiz
 
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 desarrolloJavier Suárez Ruiz
 
Aumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinAumento de productividad, herramientas Xamarin
Aumento de productividad, herramientas XamarinJavier Suárez Ruiz
 

Plus 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
 

Dernier

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Dernier (15)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

Windows 10: One SDK to rule them all

  • 1. ONE SDK TO RULE THEM ALL Un único paquete, interfaces adaptativas, nuevos controles, novedades en XAML, herramientas, etc.
  • 2. ONE SDK TO RULE THEM ALL TLPINNOVA . . Javier Suárez Mobile Team Lead Bravent Microsoft MVP Windows Platform Development • Blog: http://geeks.ms/blogs/jsuarez • Email: javiersuarezruiz@hotmail.com • Twitter: @jsuarezruiz
  • 4. ONE SDK TO RULE THEM ALL TLPINNOVA . . 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
  • 6. ONE SDK TO RULE THEM ALL TLPINNOVA . . Phone Small Tablet 2-in-1s (Tablet or Laptop) Desktops & All-in-OnesPhablet Large Tablet Classic Laptop Xbox IoTSurface Hub HoloLens Windows 10
  • 7. ONE SDK TO RULE THEM ALL TLPINNOVA . . One Store + One Dev Center Reuse Existing Code One SDK + Tooling Adaptive User Interface Natural User Inputs One Universal Windows Platform
  • 8. ONE SDK TO RULE THEM ALL TLPINNOVA . . UNIVERSAL WINDOWS PLATFORM • UN Sistema operativo – Mismo core Windows para todos los dispositivos • UNA Plataforma de Apps – Apps corren entre todas las familias de dispositivos • UN Dev Center – Mismo flujo de publicación y dashboard • UNA Store – Monetización, negocio, educación
  • 9. ONE SDK TO RULE THEM ALL TLPINNOVA . . ES SIMILAR A LO CONOCIDO? • ¿Existe un archivo de manifiesto? • ¿Existe un Proyecto principal? • ¿Existe un Proyecto Shared? • ¿Tenemos directivsa #IF de • compilación?
  • 10. ONE SDK TO RULE THEM ALL TLPINNOVA . . APP WINDOWS • Un mismo binario – Corre en cualquier dispositivo – Ajustable por familia de dispositivo Phone Dispositivo Xbox Dispositivo Desktop Dispositivo Core Windows Universal Windows Platform App Windows
  • 11. ONE SDK TO RULE THEM ALL TLPINNOVA . . DEMO Hel10 World!
  • 12. Las Apps NO se destinan a Windows 10, las Apps se destinan a familias de dispositivos
  • 13. ONE SDK TO RULE THEM ALL TLPINNOVA . . EXTENSIONES DE PLATAFORMA• APIs específicas por familia – Capacidades específicas por familia – Compatible entre dispositivos Phone Device Xbox Device Desktop Device Windows Core Universal Windows Platform Windows App Phone extension Xbox extension Desktop extension
  • 14. Las extensions no afectan a los binaries de otras familias de dispositivos
  • 15. ONE SDK TO RULE THEM ALL TLPINNOVA . . EXTENSIONES POR PLATAFORMA <ItemGroup> <!-- Reference to the .Net Framework and Windows SDK are automatic --> <SDKReference Include="Windows Desktop, Version=10.0.9910.0"/> <SDKReference Include="Windows Mobile, Version=10.0.0.1"/> </ItemGroup>
  • 16. ONE SDK TO RULE THEM ALL TLPINNOVA . . DEMO Utilizando extensiones
  • 17. La historia de las Apps Windows adaptativas
  • 18. ONE SDK TO RULE THEM ALL TLPINNOVA . . 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
  • 19. ONE SDK TO RULE THEM ALL TLPINNOVA . . DISEÑO ADAPTATIVO Phone (portrait) Tablet (landscape) / Desktop
  • 20. ONE SDK TO RULE THEM ALL TLPINNOVA . . DISEÑO ADAPTADO Phone (portrait) Tablet (landscape) / Desktop
  • 21. Los usuarios adoran las Apps que son geniales en cada uno de sus dispositivos
  • 23. ONE SDK TO RULE THEM ALL TLPINNOVA . . 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>
  • 24. ONE SDK TO RULE THEM ALL TLPINNOVA . . TIPOS DE TRIGGER • MinWindowWidth • MinWindowHeight – “Cualquier cosa por encima de este valor” – Los valores se especifican en píxeles
  • 25. ONE SDK TO RULE THEM ALL TLPINNOVA . . DEMO Visual State Triggers
  • 26. Vistas por familias de dispositivos
  • 27. ONE SDK TO RULE THEM ALL TLPINNOVA . . DEVICE FAMILIES • En Windows 10, podemos distinguir los dispositivos de dos formas: • Por resolución • Por familia
  • 28. ONE SDK TO RULE THEM ALL TLPINNOVA . . DEVICE FAMILIES • Windows 10 ofrece distintas familias de dispositivos: • Desktop • Mobile • Xbox • IoT • …
  • 29. ONE SDK TO RULE THEM ALL TLPINNOVA . . DEVICE FAMILIES • En algunas ocasiones, puede que el cambio de UI entre familias sea más complejo que una simple reorganización basada en el tamaño • Incluso, el tamaño nos puede llevar a equívocos. • Por ejemplo: • Lumia 1520 1080x1920 • Asus VivoTab 800x1280 • No solo es importante la resolución: pulgadas y familia también lo son.
  • 30. ONE SDK TO RULE THEM ALL TLPINNOVA . . DEVICE FAMILIES • En estos casos, podemos crear vistas XAML por familia • Estas vistas no contienen code-behind • Se cargan por convención de nombre automáticamente • Podemos seguir usando Adaptative visual states.
  • 31. ONE SDK TO RULE THEM ALL TLPINNOVA . . DEMO Creando vistas por familias de dispositivo
  • 34. ONE SDK TO RULE THEM ALL TLPINNOVA . . Relative Panel es un control de Layout XAML. Posiciona los elementos estableciendo relaciones entre ellos. INTRODUCCIÓN AL PANEL RELATIVE PANELControles de Layout en Windows XAML Grid Stack Panel Canvas Scroll Viewer Border View Box Wrap Grid Relative Panel
  • 35. ONE SDK TO RULE THEM ALL TLPINNOVA . . RELATIVE PANEL • Adaptativo – Relativo al Panel – Relativo a controles “hermanos” • Simplifica nuestro XAML – Simplifica el árbol visual – Simplifica los estados visuales
  • 36. ONE SDK TO RULE THEM ALL TLPINNOVA . . 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>
  • 37. ONE SDK TO RULE THEM ALL TLPINNOVA . . 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" />
  • 38. ONE SDK TO RULE THEM ALL TLPINNOVA . . ALINEARSE CON “HERMANOS” <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>
  • 39. ONE SDK TO RULE THEM ALL TLPINNOVA . . ALINEARSE CON “HERMANOS” <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>
  • 40. ONE SDK TO RULE THEM ALL TLPINNOVA . . ALINEARSE CON “HERMANOS” <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>
  • 41. ONE SDK TO RULE THEM ALL TLPINNOVA . . ALINEARSE CON “HERMANOS” <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>
  • 42. ONE SDK TO RULE THEM ALL TLPINNOVA . . OPCIONES DE POSICIONAMIENTO ENTRE “HERMANOS” <Rectangle Height="100" Width="100" Fill="Red" RelativePanel.Above="BlueRect" RelativePanel.RightOf="BlueRect" RelativePanel.Below="BlueRect" RelativePanel.RightOf="BlueRect" />
  • 43. ONE SDK TO RULE THEM ALL TLPINNOVA . . OPCIONES DE POSICIONAMIENTO 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" />
  • 44. ONE SDK TO RULE THEM ALL TLPINNOVA . . DEMO RelativePanel
  • 45. ONE SDK TO RULE THEM ALL TLPINNOVA . . SIMPLIFICANDO EL ÁRBOL VISUAL<Grid> <StackPanel> <StackPanel> <TextBlock /> <TextBlock /> </StackPanel> <StackPanel> <TextBlock /> <TextBlock /> </StackPanel> </StackPanel> </Grid> <RelativePanel> <TextBlock /> <TextBlock /> <TextBlock /> <TextBlock /> </RelativePanel >
  • 46. El control Relative Panel es una de las claves para tus estrategias a la hora de adaptar la UI
  • 48. ONE SDK TO RULE THEM ALL TLPINNOVA . . SPLITVIEW
  • 50. ONE SDK TO RULE THEM ALL TLPINNOVA . . COMPORTAMIENTO Your Windows App
  • 51. ONE SDK TO RULE THEM ALL TLPINNOVA . . Segoe MDL2 Assets
  • 52. ONE SDK TO RULE THEM ALL TLPINNOVA . . SPLITVIEW.PANE <SplitView> <SplitView.Pane> <StackPanel> <RadioButton /> <RadioButton /> </StackPanel> </SplitView.Pane> </SplitView>
  • 53. ONE SDK TO RULE THEM ALL TLPINNOVA . . SPLITVIEW.CONTENT <SplitView> <SplitView.Pane /> <SplitView.Content> <Frame/> </SplitView.Content> </SplitView>
  • 54. ONE SDK TO RULE THEM ALL TLPINNOVA . . PROPIEDADES DEL SPLIVIEW <SplitView IsPaneOpen="False" CompactPaneLength="150" OpenPaneLength="50" Placement="Right|Left" PaneDisplayMode="CompactInline"> <SplitView.Pane /> <SplitView.Content /> </SplitView>
  • 55. ONE SDK TO RULE THEM ALL TLPINNOVA . . SPLITVIEW.PANEDISPLAYMOD E SplitView.IsPaneOpen "True" SplitView.IsPaneOpen "False" Inline Overlay Compact Inline Compact Overlay
  • 56. ONE SDK TO RULE THEM ALL TLPINNOVA . . DEMO SplitView
  • 58. ONE SDK TO RULE THEM ALL TLPINNOVA . . <SplitView DisplayMode="Inline|Overlay|CompactInline|CompactOverlay"> <SplitView.Pane> <!-- Navigation Content Here --> </SplitView.Pane> <!-- Main Content Here --> </SplitView> SPLITVIEW Panel de navegación adaptativo
  • 59. ONE SDK TO RULE THEM ALL TLPINNOVA . . SPLITVIEW
  • 60. ONE SDK TO RULE THEM ALL TLPINNOVA . . PIVOT Mismo comportamiento en teléfono, Tabs en desktop
  • 62. ONE SDK TO RULE THEM ALL TLPINNOVA . . ESCRIBIR ES HUMANO • Immediato • Expresivo • Personal
  • 63. ONE SDK TO RULE THEM ALL TLPINNOVA . . INKCANVAS • Se puede configurar para utilizar diferentes Inputs (Pen, Touch, Mouse, etc.) • Se pueden modificar atributos de dibujo • Posibilidad de sintetizar información InkCanvas InkPresenter
  • 66. ONE SDK TO RULE THEM ALL TLPINNOVA . . <ListView> <ListView.ItemTemplate> <DataTemplate> <StackPanel> <SymbolIcon Symbol="{Binding Symbol}"/> <TextBlock Text="{Binding Name}"/> <Button Click="Button_ClickHandler"/> </StackPanel> </DataTemplate> </ListView.ItemTemplate> </ListView> <ListView> <ListView.ItemTemplate> <DataTemplate x:DataType="local:FreeBookCategory"> <StackPanel> <SymbolIcon Symbol="{x:Bind Symbol}"/> <TextBlock Text="{x:Bind Name}"/> <Button Click="{x:Bind Click}"/> </StackPanel> </DataTemplate> </ListView.ItemTemplate> </ListView> MEJORAS EN RENDIMIENTO Se resuelve en tiempo de compilación y produce errores!
  • 67. ONE SDK TO RULE THEM ALL TLPINNOVA . . Links: Windows Performance Analyzer, EventSource
  • 68. ONE SDK TO RULE THEM ALL TLPINNOVA . . CONSUMO DE MEMORIA
  • 69. ONE SDK TO RULE THEM ALL TLPINNOVA . . USANDO BINDINGS COMPILADOS• Reemplazamos {Binding …} por {x:Bind …} • x:Bind esta fuertemente tipado – El context es la página o control de usuario • Mode=OneTime es el modo por defecto
  • 71. ONE SDK TO RULE THEM ALL TLPINNOVA . . • Duck Typing – mismo nombre de propiedad en diferentes objetos – Text=“{Binding Age}” funciona con objetos perro y persona – x:Bind Mitigation: Usa una clase base o interfaz • Dictionary graphs – {Binding} puede funcionar con JSON y otros diccionarios de objetos no tipados – {x:Bind} No funciona sin información de tipado – Probablemente se podrían hacer suficientes Catings para hacer que funcione, pero la experiencia sería pobre • Creación de bindings programáticamente – {x:Bind} no tiene la capacidad de añadir / quitar bindings en runtime • Use in a style – {x:Bind} no se puede usar en un estilo para setters etc – Si podemos usarlo en un DataTemplate definido en el style ¿CUÁNDO USAMOS BINDINGS “CÁSICOS”?
  • 73. ONE SDK TO RULE THEM ALL TLPINNOVA . . VISUAL STUDIO
  • 74. ONE SDK TO RULE THEM ALL TLPINNOVA . . VISUAL STUDIO
  • 77. Las tecnologías “tradicionales” de Microsoft no son la única forma de crear Apps Windows
  • 78. ONE SDK TO RULE THEM ALL TLPINNOVA . . Windows 10 Sitema Operativo Bridges Win32 desktop Web hosted Java Android Obj.C iOS Universal Windows Platform WWAC++ & CX .Net lenguajes HTML DirectX XAML C++ .Net lenguajes MFCWFWPF .Net runtime
  • 79. ONE SDK TO RULE THEM ALL TLPINNOVA . . HABLEMOS DE BRIDGES • Objective-C – Código iOS que se puede reutilizar en App Windows • Android – Código Android reutilizado en App Windows para funcionar en Windows Phone • Web – Wrap webs para funcionar en Windows • Win32 – Classic Windows Apps (CWA) se pueden empaquetar como un Appx
  • 80. Los Bridges permiten llevar más Apps a la plataforma Windows
  • 81. ONE SDK TO RULE THEM ALL TLPINNOVA . . ¿PREGUNTAS y RESPUESTAS? Dudas? P&R
  • 82. ONE SDK TO RULE THEM ALL TLPINNOVA . . GRACIAS a TODOS Por vuestro tiempo! Javier Suárez Microsoft MVP Windows Platform Development • Blog: http://geeks.ms/blogs/jsuarez • Email: javiersuarezruiz@hotmail.com • Twitter: @jsuarezruiz
  • 83. ONE SDK TO RULE THEM ALL TLPINNOVA . . ONE SDK TO RULE THEM ALL Un único paquete, interfaces adaptativas, nuevos controles, novedades en XAML, herramientas, etc.

Notes de l'éditeur

  1. Here’s an example of an app that used adaptive controls on: a Phone -- [click to build slide] a Tablet in portrait -- [click to build slide] and a PC in landscape The same elements are present across all three, but the layout has adapted. – [click to build slide] For example, we can see the command bar across all three screens: On the phone, space is limited and the command pbar is collapsed to a menu icon on the left to show the commands and a search icon on the right. On the tablet, there is enough room to show the commands along with a search icon And on the PC, the coamand bart has enough space to adapt to show all the commands plus a full search box [next slide]
  2. Adaptive controls are great, but we know there will be cases where the app designer wants to do something more custom or more tailored than the adaptive controls will allow. This desire might be motivated by hardware differences. For example, an app that will run on an Xbox might want to create some customizations for navigation using a game controller. Or it might be motivated by screen size and usability. A designer might want to position a menu at the bottom of a phone screen to make it more usable with a single hand. For these cases, we enable developers to create what we call a tailored user experience. In this case, the code is the same, but the developer creates custom XAML to deliver the desired design on the right device or in the right set of conditions. Tailored design goes beyond Adaptive UX Developers can create custom experiences for certain devices The code is the same, but custom XAML can deliver the experience a developer wants