SlideShare una empresa de Scribd logo
1 de 25
Desarrollo avanzado
de aplicaciones para
Windows Phone 7.5
Ivan R. Toledo Ivanovic
itoledo@birdie.cl | @itoledo
Temas a tratar








Tiles
Deep Application Linking (Secondary Tiles)
Lectura de Códigos de Barra
Cargar un recorrido en Bing Maps
Fast Application Switching
XNA + Sockets… SpaceSync

Windows Phone Microsoft Corporation.
Tiles
Sirven como íconos en pantalla inicio
Atributos
 Texto
 Imagen
 Cantidad
 Título posterior
 Contenido posterior
 Imagen posterior
 Pueden enlazar a distintas pantallas de la aplicación



3

Windows Phone Microsoft Corporation.
Tiles
Front

4

Back

Windows Phone Microsoft Corporation.
Live Tiles
Generar imagen en backend (php, asp)
 Refrescarla usando BackgroundTask
 ShellTileSchedule? No actualiza reverso
 Sólo para dispositivos con más de 256Mb de RAM!


5

Windows Phone Microsoft Corporation.
Funcionalidades agentes en Background
Permitido








6

Tiles
Toast
Location
Network
R/W ISO store
Sockets
Mayoría de APIs

Restringido






Display UI
XNA
Micrófono y Cámara
Sensores
Reproducir audio

(sólopuedeusarbackground audio APIs)

Windows Phone Microsoft Corporation.
Live Tiles (ii)
Detectar si un dispositivo tiene más de 256MB
 DeviceExtendedProperties.GetValue("ApplicationWork
ingSetLimit");
 Número mágico: 94371840L;
 Actualizar Tile primario para cambiar BackgroundImage
 ShellTile PrimaryTile = ShellTile.ActiveTiles.First();
 tile.BackBackgroundImage = new
Uri("http://xxx/n/birdie/tile.php");
 PrimaryTile.Update(tile);


7

Windows Phone Microsoft Corporation.
Live Tiles (iii)
Crear proyecto BackgroundAgent para actualización de
Tile primario
 Modificar OnInvoke() para cambiar
BackBackgroundImage
 Enlazar proyecto desde proyecto principal
 Crear PeriodicTask para invocar BackgroundTask


8

Windows Phone Microsoft Corporation.
Secondary Tiles
- Deep Application Linking
- Clase StandardTileData
- ShellTile.ActiveTiles
- URIs de destino

9

Windows Phone Microsoft Corporation.
Leer un código de barra







10

ZXing es lo más común dentro del Open Source
Ports para múltiples plataformas
Varios ports para WP7/Silverlight
No todos tienen live capture (posible desde WP7.5)
Stéphanie Hertrich … http://blogs.msdn.com/b/stephe/

Windows Phone Microsoft Corporation.
Leer un código de barra (ii)
WP7.ScanBarCode.BarCodeManager.StartScan(
// éxito
(b) => Dispatcher.BeginInvoke(() =>
{ … },
//error
(ex) => Dispatcher.BeginInvoke(() =>
{ … },
com.google.zxing.BarcodeFormat.ALL_1D);
11

Windows Phone Microsoft Corporation.
Un pequeño ejercicio con mapas







12

Añadir capa vectorial con recorrido
Consumir webservice con datos del recorrido
Parsear JSON de respuesta
Enviar mensaje desde ViewModel a página
Crear objetos necesarios en Bing Maps
 Layer
 Polyline
Windows Phone Microsoft Corporation.
Consumir webservice



WS muy simple con parámetros en HTTP GET
Lo consumimos desde el ViewModel

WebClient wc = new WebClient();
Uri uri = new
Uri("http://xxx/itinerario.php?servicio=" +
rec + “&guid=“ + Guid.NewGuid());
wc.DownloadStringCompleted += new
DownloadStringCompletedEventHandler(Downloa
dRecorridoCompletedEventHandler);
wc.DownloadStringAsync(uri, rec);
13

Windows Phone Microsoft Corporation.
Parsear JSON
Instalar librería JSON desde NuGET
 install-package newtonsoft.json
 Contenido de json es arrays de strings anidados


[[["PB241","VESPUCIO 1 / LOS
LIBERTADORES","-70.681349","33.364061"],["PB184","VESPUCIO 2 / LOS
LIBERTADORES","-70.680976","33.366831"], …]]
14

Windows Phone Microsoft Corporation.
Parsear JSON (ii)
List<List<List<string>>> res;
res =
JsonConvert.DeserializeObject<List<List<
List<string>>>>(e.Result);
List<List<string>> ida = res[0];

15

Windows Phone Microsoft Corporation.
Notificar pantalla desde ViewModel





16

Instalar MVVM Light
 install-package mvvmlight
Para enviar mensaje desde ViewModel:
 Messenger.Default.Send<RecorridoDescargad
oMessage>(new
RecorridoDescargadoMessage());
Para recibir mensaje desde pantalla:
 Messenger.Default.Register<RecorridoDesca
rgadoMessage>(this, (action) =>
ReceiveMessage(action));
Windows Phone Microsoft Corporation.
Crear objetos en Bing Maps


17

Añadir capa al mapa
 MapLayer polyLayer;
 polyLayer = new MapLayer();
 Map.Children.Add(polyLayer);

Windows Phone Microsoft Corporation.
Crear objetos en Bing Maps (ii)


18

Dibujar puntos del recorrido en la capa
 polyLayer.Children.Clear();
 MapPolyline line = new MapPolyline();
 line.Locations = new LocationCollection();
 line.Stroke = new
SolidColorBrush(Colors.Red);
 line.StrokeThickness = 3;
 foreach (Paradero p in
App.ViewModel.ParaderosRecorrido)
 line.Locations.Add(p.loc);
 polyLayer.Children.Add(line);
Windows Phone Microsoft Corporation.
Fast Application Switching
Aplicaciones recientemente utilizadas aparecen de
inmediato
 Aplicaciones permanecen en memoria
 Administrador de tareas
 Mientras las apps duermen…
 No reciben ciclos de CPU
 Se liberan los recursos


19

Windows Phone Microsoft Corporation.
Ciclo de vida en WP 7.5
Restaurar estado!
IsAppInstancePreserved
Estado preservado!
== false
IsAppInstancePreserved ==
true

ejecutando

Guardar estado!

activada

Tombstone
a la app
más antigua

Tombstoned

Resumiendo .. .
Fast App Resume

desactivada

durmiendo

Recursos liberados
Hilos y timers suspendidos
Windows Phone Microsoft Corporation.
Cómo implementar FAS?
Implementar serialización/deserialización de datos de la
app (ViewModels)
 IDataStorage
 Capturar eventos y guardar/restaurar datos de la app
 Application_Deactivated
 Application_Activated


21

Windows Phone Microsoft Corporation.
XNA + Sockets … SpaceSync
Objetivo: sincronizar dos o más teléfonos con la mayor
precisión posible para que muestren la misma imagen
animada
 NTP?
 Sólo para LANs por la baja precisión
 Cómo transmitir el tiempo rápida y facilmente, sin tener
que digitar números IP?


22

Windows Phone Microsoft Corporation.
Solución







23

Paquetes UDP por la rapidez
Utilizar UdpAnySourceMulticastClient para la
comunicación vía Wi-Fi (broadcast en grupo multicast)
Utilizar XNA para mostrar la imagen (modelo en 3D)
Dispositivo con ID 1 tiene la “hora oficial”
El resto pide la hora a cada segundo y se utiliza la hora
con menor latencia
Windows Phone Microsoft Corporation.
XNA en SpaceSync


Se carga el modelo 3D y el font de manera estándar



font =
this.contentManager.Load<SpriteFont>("gameFont");
myModel =
this.contentManager.Load<Model>("Model/p1_wedge");

Cada dispositivo tiene el viewport ajustado de acuerdo a
su ID
 Se procesan en gesture drag en OnUpdate, para
desplazar el modelo y enviarlo via broadcast
 La rotación del modelo se calcula de acuerdo a la hora


24

Windows Phone Microsoft Corporation.
Gracias!

25

Más contenido relacionado

Destacado

Linguagemoraleprticasdeleitura 120704125638-phpapp02
Linguagemoraleprticasdeleitura 120704125638-phpapp02Linguagemoraleprticasdeleitura 120704125638-phpapp02
Linguagemoraleprticasdeleitura 120704125638-phpapp02
Isabela Maggot
 
Revisão -Lesão renal aguda
Revisão -Lesão renal aguda Revisão -Lesão renal aguda
Revisão -Lesão renal aguda
janinemagalhaes
 
нові надходження листопад грудень 2013
нові надходження листопад   грудень 2013нові надходження листопад   грудень 2013
нові надходження листопад грудень 2013
johnnykramer
 
08.- El monestir de Santa Clara
08.- El monestir de Santa Clara08.- El monestir de Santa Clara
08.- El monestir de Santa Clara
xicota53
 
La meva conferencia els mobils
La meva conferencia els mobilsLa meva conferencia els mobils
La meva conferencia els mobils
Francesc Delgado
 
Vai acontecer entre_2012-2018 (3)
Vai acontecer entre_2012-2018 (3)Vai acontecer entre_2012-2018 (3)
Vai acontecer entre_2012-2018 (3)
Solpenso
 
Ensino Médio Integrado a Educação Profissional(1)
Ensino Médio Integrado a Educação Profissional(1)Ensino Médio Integrado a Educação Profissional(1)
Ensino Médio Integrado a Educação Profissional(1)
Lakshmi Lakshmi
 
Slidesegundoencontro 120702084109-phpapp02
Slidesegundoencontro 120702084109-phpapp02Slidesegundoencontro 120702084109-phpapp02
Slidesegundoencontro 120702084109-phpapp02
Isabela Maggot
 

Destacado (18)

Linguagemoraleprticasdeleitura 120704125638-phpapp02
Linguagemoraleprticasdeleitura 120704125638-phpapp02Linguagemoraleprticasdeleitura 120704125638-phpapp02
Linguagemoraleprticasdeleitura 120704125638-phpapp02
 
Open innovatie - een introductie
Open innovatie - een introductieOpen innovatie - een introductie
Open innovatie - een introductie
 
Merca1.ppt
Merca1.pptMerca1.ppt
Merca1.ppt
 
Geologi afrança
Geologi afrançaGeologi afrança
Geologi afrança
 
Revisão -Lesão renal aguda
Revisão -Lesão renal aguda Revisão -Lesão renal aguda
Revisão -Lesão renal aguda
 
Endo
EndoEndo
Endo
 
нові надходження листопад грудень 2013
нові надходження листопад   грудень 2013нові надходження листопад   грудень 2013
нові надходження листопад грудень 2013
 
08.- El monestir de Santa Clara
08.- El monestir de Santa Clara08.- El monestir de Santa Clara
08.- El monestir de Santa Clara
 
INTERNET II
INTERNET IIINTERNET II
INTERNET II
 
La meva conferencia els mobils
La meva conferencia els mobilsLa meva conferencia els mobils
La meva conferencia els mobils
 
Vai acontecer entre_2012-2018 (3)
Vai acontecer entre_2012-2018 (3)Vai acontecer entre_2012-2018 (3)
Vai acontecer entre_2012-2018 (3)
 
Ensino Médio Integrado a Educação Profissional(1)
Ensino Médio Integrado a Educação Profissional(1)Ensino Médio Integrado a Educação Profissional(1)
Ensino Médio Integrado a Educação Profissional(1)
 
Guia2aplicacion
Guia2aplicacionGuia2aplicacion
Guia2aplicacion
 
Daniela Gualdron Portela
Daniela Gualdron Portela Daniela Gualdron Portela
Daniela Gualdron Portela
 
Informática
InformáticaInformática
Informática
 
Slidesegundoencontro 120702084109-phpapp02
Slidesegundoencontro 120702084109-phpapp02Slidesegundoencontro 120702084109-phpapp02
Slidesegundoencontro 120702084109-phpapp02
 
Constitucion de bolsillo
Constitucion de bolsilloConstitucion de bolsillo
Constitucion de bolsillo
 
Life map
Life mapLife map
Life map
 

Similar a Desarrollo avanzado para Windows Phone

Cuáles son las tareas que debes finalizar antes de vender tu aplicación en el...
Cuáles son las tareas que debes finalizar antes de vender tu aplicación en el...Cuáles son las tareas que debes finalizar antes de vender tu aplicación en el...
Cuáles son las tareas que debes finalizar antes de vender tu aplicación en el...
Luis Ruben Malla
 
Windows Phone 8 en Campus Party
Windows Phone 8 en Campus PartyWindows Phone 8 en Campus Party
Windows Phone 8 en Campus Party
Sorey García
 
Pablo San Emeterio - How to protect your hot pics with WHF [RootedSatellite V...
Pablo San Emeterio - How to protect your hot pics with WHF [RootedSatellite V...Pablo San Emeterio - How to protect your hot pics with WHF [RootedSatellite V...
Pablo San Emeterio - How to protect your hot pics with WHF [RootedSatellite V...
RootedCON
 

Similar a Desarrollo avanzado para Windows Phone (20)

Novedades de Windows phone 8
Novedades de Windows phone 8 Novedades de Windows phone 8
Novedades de Windows phone 8
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Microservicios sobre MEAN Stack
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN Stack
 
Opensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN StackOpensouthcode: Microservicios sobre MEAN Stack
Opensouthcode: Microservicios sobre MEAN Stack
 
Cuáles son las tareas que debes finalizar antes de vender tu aplicación en el...
Cuáles son las tareas que debes finalizar antes de vender tu aplicación en el...Cuáles son las tareas que debes finalizar antes de vender tu aplicación en el...
Cuáles son las tareas que debes finalizar antes de vender tu aplicación en el...
 
Curso Iniciacion android
Curso Iniciacion androidCurso Iniciacion android
Curso Iniciacion android
 
Windows Phone 8 en Campus Party
Windows Phone 8 en Campus PartyWindows Phone 8 en Campus Party
Windows Phone 8 en Campus Party
 
Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8Desarrollo de Aplicaciones Metro en Windows 8
Desarrollo de Aplicaciones Metro en Windows 8
 
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
(25.03) RUN 09 - Sesiones Desarrollo - SI 2.0
 
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con XamarinPlain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
 
Intro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en OlotIntro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en Olot
 
Taller mobile by trustparency
Taller mobile by trustparencyTaller mobile by trustparency
Taller mobile by trustparency
 
Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOS
 
Why Azure is so MEAN?
Why Azure is so MEAN?Why Azure is so MEAN?
Why Azure is so MEAN?
 
Pablo San Emeterio - How to protect your hot pics with WHF [RootedSatellite V...
Pablo San Emeterio - How to protect your hot pics with WHF [RootedSatellite V...Pablo San Emeterio - How to protect your hot pics with WHF [RootedSatellite V...
Pablo San Emeterio - How to protect your hot pics with WHF [RootedSatellite V...
 
Pablo sanemeteriovalencia
Pablo sanemeteriovalenciaPablo sanemeteriovalencia
Pablo sanemeteriovalencia
 
Windows 10 Dev Readiness - Colombia
Windows 10 Dev Readiness - ColombiaWindows 10 Dev Readiness - Colombia
Windows 10 Dev Readiness - Colombia
 
.Net Conf Sevilla 2018
.Net Conf Sevilla 2018.Net Conf Sevilla 2018
.Net Conf Sevilla 2018
 
Arquitectura de la plataforma de desarrollo de windows phone 7
Arquitectura de la plataforma de desarrollo de windows phone 7Arquitectura de la plataforma de desarrollo de windows phone 7
Arquitectura de la plataforma de desarrollo de windows phone 7
 

Ú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
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
Marc Liust
 

Último (17)

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
 
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
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
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
 
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...
 
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
 
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
 
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
 
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
 
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
 
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
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
 
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
 
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
 

Desarrollo avanzado para Windows Phone

  • 1. Desarrollo avanzado de aplicaciones para Windows Phone 7.5 Ivan R. Toledo Ivanovic itoledo@birdie.cl | @itoledo
  • 2. Temas a tratar       Tiles Deep Application Linking (Secondary Tiles) Lectura de Códigos de Barra Cargar un recorrido en Bing Maps Fast Application Switching XNA + Sockets… SpaceSync Windows Phone Microsoft Corporation.
  • 3. Tiles Sirven como íconos en pantalla inicio Atributos  Texto  Imagen  Cantidad  Título posterior  Contenido posterior  Imagen posterior  Pueden enlazar a distintas pantallas de la aplicación   3 Windows Phone Microsoft Corporation.
  • 5. Live Tiles Generar imagen en backend (php, asp)  Refrescarla usando BackgroundTask  ShellTileSchedule? No actualiza reverso  Sólo para dispositivos con más de 256Mb de RAM!  5 Windows Phone Microsoft Corporation.
  • 6. Funcionalidades agentes en Background Permitido        6 Tiles Toast Location Network R/W ISO store Sockets Mayoría de APIs Restringido      Display UI XNA Micrófono y Cámara Sensores Reproducir audio (sólopuedeusarbackground audio APIs) Windows Phone Microsoft Corporation.
  • 7. Live Tiles (ii) Detectar si un dispositivo tiene más de 256MB  DeviceExtendedProperties.GetValue("ApplicationWork ingSetLimit");  Número mágico: 94371840L;  Actualizar Tile primario para cambiar BackgroundImage  ShellTile PrimaryTile = ShellTile.ActiveTiles.First();  tile.BackBackgroundImage = new Uri("http://xxx/n/birdie/tile.php");  PrimaryTile.Update(tile);  7 Windows Phone Microsoft Corporation.
  • 8. Live Tiles (iii) Crear proyecto BackgroundAgent para actualización de Tile primario  Modificar OnInvoke() para cambiar BackBackgroundImage  Enlazar proyecto desde proyecto principal  Crear PeriodicTask para invocar BackgroundTask  8 Windows Phone Microsoft Corporation.
  • 9. Secondary Tiles - Deep Application Linking - Clase StandardTileData - ShellTile.ActiveTiles - URIs de destino 9 Windows Phone Microsoft Corporation.
  • 10. Leer un código de barra      10 ZXing es lo más común dentro del Open Source Ports para múltiples plataformas Varios ports para WP7/Silverlight No todos tienen live capture (posible desde WP7.5) Stéphanie Hertrich … http://blogs.msdn.com/b/stephe/ Windows Phone Microsoft Corporation.
  • 11. Leer un código de barra (ii) WP7.ScanBarCode.BarCodeManager.StartScan( // éxito (b) => Dispatcher.BeginInvoke(() => { … }, //error (ex) => Dispatcher.BeginInvoke(() => { … }, com.google.zxing.BarcodeFormat.ALL_1D); 11 Windows Phone Microsoft Corporation.
  • 12. Un pequeño ejercicio con mapas      12 Añadir capa vectorial con recorrido Consumir webservice con datos del recorrido Parsear JSON de respuesta Enviar mensaje desde ViewModel a página Crear objetos necesarios en Bing Maps  Layer  Polyline Windows Phone Microsoft Corporation.
  • 13. Consumir webservice   WS muy simple con parámetros en HTTP GET Lo consumimos desde el ViewModel WebClient wc = new WebClient(); Uri uri = new Uri("http://xxx/itinerario.php?servicio=" + rec + “&guid=“ + Guid.NewGuid()); wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(Downloa dRecorridoCompletedEventHandler); wc.DownloadStringAsync(uri, rec); 13 Windows Phone Microsoft Corporation.
  • 14. Parsear JSON Instalar librería JSON desde NuGET  install-package newtonsoft.json  Contenido de json es arrays de strings anidados  [[["PB241","VESPUCIO 1 / LOS LIBERTADORES","-70.681349","33.364061"],["PB184","VESPUCIO 2 / LOS LIBERTADORES","-70.680976","33.366831"], …]] 14 Windows Phone Microsoft Corporation.
  • 15. Parsear JSON (ii) List<List<List<string>>> res; res = JsonConvert.DeserializeObject<List<List< List<string>>>>(e.Result); List<List<string>> ida = res[0]; 15 Windows Phone Microsoft Corporation.
  • 16. Notificar pantalla desde ViewModel    16 Instalar MVVM Light  install-package mvvmlight Para enviar mensaje desde ViewModel:  Messenger.Default.Send<RecorridoDescargad oMessage>(new RecorridoDescargadoMessage()); Para recibir mensaje desde pantalla:  Messenger.Default.Register<RecorridoDesca rgadoMessage>(this, (action) => ReceiveMessage(action)); Windows Phone Microsoft Corporation.
  • 17. Crear objetos en Bing Maps  17 Añadir capa al mapa  MapLayer polyLayer;  polyLayer = new MapLayer();  Map.Children.Add(polyLayer); Windows Phone Microsoft Corporation.
  • 18. Crear objetos en Bing Maps (ii)  18 Dibujar puntos del recorrido en la capa  polyLayer.Children.Clear();  MapPolyline line = new MapPolyline();  line.Locations = new LocationCollection();  line.Stroke = new SolidColorBrush(Colors.Red);  line.StrokeThickness = 3;  foreach (Paradero p in App.ViewModel.ParaderosRecorrido)  line.Locations.Add(p.loc);  polyLayer.Children.Add(line); Windows Phone Microsoft Corporation.
  • 19. Fast Application Switching Aplicaciones recientemente utilizadas aparecen de inmediato  Aplicaciones permanecen en memoria  Administrador de tareas  Mientras las apps duermen…  No reciben ciclos de CPU  Se liberan los recursos  19 Windows Phone Microsoft Corporation.
  • 20. Ciclo de vida en WP 7.5 Restaurar estado! IsAppInstancePreserved Estado preservado! == false IsAppInstancePreserved == true ejecutando Guardar estado! activada Tombstone a la app más antigua Tombstoned Resumiendo .. . Fast App Resume desactivada durmiendo Recursos liberados Hilos y timers suspendidos Windows Phone Microsoft Corporation.
  • 21. Cómo implementar FAS? Implementar serialización/deserialización de datos de la app (ViewModels)  IDataStorage  Capturar eventos y guardar/restaurar datos de la app  Application_Deactivated  Application_Activated  21 Windows Phone Microsoft Corporation.
  • 22. XNA + Sockets … SpaceSync Objetivo: sincronizar dos o más teléfonos con la mayor precisión posible para que muestren la misma imagen animada  NTP?  Sólo para LANs por la baja precisión  Cómo transmitir el tiempo rápida y facilmente, sin tener que digitar números IP?  22 Windows Phone Microsoft Corporation.
  • 23. Solución      23 Paquetes UDP por la rapidez Utilizar UdpAnySourceMulticastClient para la comunicación vía Wi-Fi (broadcast en grupo multicast) Utilizar XNA para mostrar la imagen (modelo en 3D) Dispositivo con ID 1 tiene la “hora oficial” El resto pide la hora a cada segundo y se utiliza la hora con menor latencia Windows Phone Microsoft Corporation.
  • 24. XNA en SpaceSync  Se carga el modelo 3D y el font de manera estándar   font = this.contentManager.Load<SpriteFont>("gameFont"); myModel = this.contentManager.Load<Model>("Model/p1_wedge"); Cada dispositivo tiene el viewport ajustado de acuerdo a su ID  Se procesan en gesture drag en OnUpdate, para desplazar el modelo y enviarlo via broadcast  La rotación del modelo se calcula de acuerdo a la hora  24 Windows Phone Microsoft Corporation.