47

119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Embed Size (px)

Citation preview

Page 1: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press
Page 2: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press
Page 3: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Desarrollo en Windows 8 y

Windows Phone 8 con XAML y C#

Josué Yeray Julián Ferreiro

Rafael Serna Medina

Ibón Landa Martín

Page 4: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

DESARROLLO EN WINDOWS 8 Y WINDOWS PHONE 8 CON XAML Y C#

No está permitida la reproducción total o parcial de este libro, ni su tratamiento informático, ni la transmisión de ninguna forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia, por registro u otros métodos, sin el permiso previo y por escrito de los titulares del Copyright.

Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra.

DERECHOS RESERVADOS © 2013, respecto a la primera edición en español, por Krasis Consulting, S. L.

www.Krasis.com

ISBN: 978-84-939659-6-9

CREATIVIDAD Diseño cubierta: Pablo Iglesias Francisco

Frutas cubierta: Las cuatro frutas elegidas (Naranja, mandarina, limón y lima) son cítricos del género Citrus que pertenecen a la familia de las Rutáceas. Esta familia comprende más de 1.600 especies. El género botánico Citrus es el más importante del grupo, y consta de unas 20 especies con frutos comestibles todos ellos muy abundantes en vitamina C, flavonoides y aceites esenciales. El naranjo dulce es el más cultivado de todos los cítricos, siendo la especie más importante del género Citrus. Tras ella le siguen en importancia sus parientes más próximos: mandarinos, limoneros, pomelos, limeros y kumquats.

Page 5: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Agradecimientos

“Escribir un libro es un sacrificio, no solo para quien lo redacta. Quiero agradecer

a mi mujer Hilda y a mis hijos Roberto, Laura y Sofia, la paciencia infinita que han

tenido conmigo, con mis largos días ausente tras el teclado. También quiero agradecer a mi padre Amable, mi madre Estrella y mi abuela Josefa, las tres figuras que hicieron

de mi lo que soy hoy en día. A todos, gracias con el corazón.” Josué Yeray Julián

“Cuando hace ya unos cuantos meses, Yeray y yo decidimos escribir este libro, jamás me hubiera imaginado que fuera a ser una de las tareas más costosas de todo cuanto

he realizado hasta el momento. Todo el tiempo que he dedicado en su escritura, se lo he tenido que robar al sueño y por supuesto a mi familia. Por esa razón, solo puedo

agradecer a mi mujer Susana y a mi hija Celia, su inmensa paciencia al verle un día sí

y otro también pegado al portátil, sin dedicarlas en los últimos meses el tiempo que ambas se merecen. Gracias por vuestro apoyo constante y por creer tanto en mí.”

Rafael Serna

“A mi hija Laia, que sin lugar a dudas es lo mejor que me ha pasado”

Ibón Landa

Page 6: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

v

Contenido

AGRADECIMIENTOS ................................................................................................ iii

CONTENIDO .............................................................................................................. iv

AUTORES .................................................................................................................. xiii

PRÓLOGO JOSÉ BONNIN - MICROSOFT ........................................................... xv

PRÓLOGO ÓSCAR GUTIÉRREZ - NOKIA ......................................................... xvii

CAPÍTULO 1: WINDOWS 8 Y WINDOWS PHONE 8 ...................................... 19

1.- Estructura del libro ................................................................................................................... 19 1.1.- Objetivos .......................................................................................................................... 19 1.2.- Estructura ........................................................................................................................ 20

1.2.1.- Desarrollo para Windows 8 y Windows Phone 8. ....................................... 20 1.2.2.- Patrones y buenas prácticas. ............................................................................... 20 1.2.3.- Desarrollando para Windows 8 y Windows Phone 8. ................................ 21

2.- Microsoft Design Style ............................................................................................................. 21 3.- Conociendo Windows 8 ......................................................................................................... 23

3.1.- Windows 8 y el hardware ........................................................................................... 23 3.1.1.- Sistema multitouch ................................................................................................ 24 3.1.2.- Soporte para NFC ................................................................................................. 24 3.1.3.- Sensores ................................................................................................................... 24 3.1.4.- Otras características ............................................................................................. 25

3.2.- Windows 8 y el software............................................................................................. 25 3.2.1.- Plataforma de desarrollo ...................................................................................... 25

4.- Conociendo Windows Phone 8 ............................................................................................ 27 4.1.- Windows Phone 8 y el hardware ............................................................................. 27

4.1.1.- Multiresolución de pantalla.................................................................................. 28 4.1.2.- NFC ........................................................................................................................... 28

4.2.- Windows Phone 8 y el software................................................................................ 28 4.2.1.- Cambio en los frameworks de desarrollo ....................................................... 29 4.2.2.- Otras mejoras ......................................................................................................... 30

5.- Herramientas de desarrollo .................................................................................................... 30 5.1.- Herramientas para Windows 8 .................................................................................. 30

5.1.1.- Visual Studio Express para Windows 8 ............................................................ 32 5.1.2.- Microsoft Blend para Visual Studio ................................................................... 33 5.1.3.- Simulador de Windows 8 .................................................................................... 34 5.1.4.- Windows App Certification Kit ......................................................................... 36

5.2.- Herramientas para Windows Phone 8 ..................................................................... 37 5.2.1.- Visual Studio Express para Windows Phone 8............................................... 39

Page 7: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

vi Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

5.2.2.- Blend para Visual Studio 2012 ............................................................................ 42 5.2.3.- Emulador de Windows Phone 8 ........................................................................ 43 5.2.4.- Application Deployment Tool ............................................................................ 44 5.2.5.- Windows Phone Developer Registration ........................................................ 44 5.2.6.- Isolated Storage Explorer .................................................................................... 45 5.2.7.- Simulation Dashboard para Windows Phone ................................................. 45 5.2.8.- Windows Phone Application Analysis .............................................................. 47 5.2.9.- Windows Phone Store Test Kit ......................................................................... 48

CAPÍTULO 2: MVVM ................................................................................................ 49

1.- Introducción ................................................................................................................................ 49 2.- Enlace a datos ............................................................................................................................. 51 3.- ViewModel................................................................................................................................... 53 4.- Notificación de cambios .......................................................................................................... 56

4.1.- ViewModel Base ............................................................................................................. 58 5.- Converters .................................................................................................................................. 59 6.- Comandos ................................................................................................................................... 64

6.1.- CanExecuteChanged ..................................................................................................... 67 6.2.- DelegateCommand ........................................................................................................ 70

6.2.1.- Lazy<T>.................................................................................................................... 73 7.- ViewModel Locator................................................................................................................... 74 8.- Nomenclatura y organización ................................................................................................. 76

8.1.- Nomenclatura ................................................................................................................. 77 8.2.- Organización ................................................................................................................... 77

CAPÍTULO 3: MVVM AVANZADO........................................................................ 79

1.- Introducción ................................................................................................................................ 79 2.- Inyección de dependencias (DI) ............................................................................................. 79

2.1.- Unity .................................................................................................................................. 81 2.1.1.- Tiempo de vida de una instancia ........................................................................ 84 2.1.2.- Registro de tipos .................................................................................................... 86

2.2.- MicroIoC .......................................................................................................................... 87 2.2.1.- MetroIoC para Windows 8 ................................................................................. 87 2.2.2.- MicroIoC para Windows Phone 8 .................................................................... 89

2.3.- Autofac ............................................................................................................................. 91 2.3.1.- Tiempo de vida de instancia ................................................................................ 93 2.3.2.- Registro de tipos .................................................................................................... 95

2.4.- ¿Qué contendor escoger?............................................................................................ 95 2.5.- ¿Cuándo usar inyección de dependencias? .............................................................. 96

3.- Servicios ....................................................................................................................................... 96 3.1.- Principios y buenas prácticas .................................................................................... 101

3.1.1.- Principio de responsabilidad única ................................................................... 102 3.1.2.- Uso de interfaces ................................................................................................. 102 3.1.3.- Principio de segregación de interfaces ........................................................... 103

Page 8: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Contenido vii

4.- Frameworks para MVVM ....................................................................................................... 103 4.1.- MVVMLight .................................................................................................................... 104 4.2.- ¿Cuándo debo usar un framework? ........................................................................ 110

5.- Pruebas unitarias ...................................................................................................................... 110 5.1.- Qué son y qué no son ................................................................................................ 111 5.2.- Mocks y Stubs ............................................................................................................... 112

5.2.1.- Mocks ...................................................................................................................... 113 5.2.2.- Stubs ........................................................................................................................ 113

5.3.- Pruebas unitarias en Windows 8 ............................................................................. 113 5.4.- Pruebas unitarias en Windows Phone 8 ................................................................ 120

CAPÍTULO 4: XAML ...............................................................................................123

1.- Introducción .............................................................................................................................. 123 2.- XAML ......................................................................................................................................... 123 3.- Interfaz de usuario en Windows 8 ...................................................................................... 126

3.1.- Composición de la pantalla ....................................................................................... 126 3.1.1.- Marco ...................................................................................................................... 126 3.1.2.- Página ...................................................................................................................... 127 3.1.3.- Elementos .............................................................................................................. 129

4.- Interfaz de usuario en Windows Phone 8 ......................................................................... 130 4.1.- Composición de pantalla ............................................................................................ 130

4.1.1.- Marco ...................................................................................................................... 130 4.1.2.- Página ...................................................................................................................... 131 4.1.3.- Elementos .............................................................................................................. 133

5.- Elementos de layout................................................................................................................ 134 5.1.- Canvas............................................................................................................................. 134

5.1.1.- ViewBox ................................................................................................................. 136 5.2.- StackPanel ...................................................................................................................... 136 5.3.- Grid ................................................................................................................................. 138

5.3.1.- Absoluto, auto y asterisco ................................................................................. 141 5.4.- VariableSizedWrapGrid.............................................................................................. 145

6.- Personalizando nuestra interfaz ........................................................................................... 148 6.1.- Recursos......................................................................................................................... 148

6.1.1.- Diccionarios de recursos en Windows 8 ...................................................... 150 6.1.2.- Diccionarios de recursos en Windows Phone 8 ......................................... 152

6.2.- Estilos .............................................................................................................................. 153 6.2.1.- Blend ....................................................................................................................... 157

6.3.- Plantillas .......................................................................................................................... 161 6.3.1.- Blend ....................................................................................................................... 167

CAPÍTULO 5: INTERFAZ DE USUARIO ............................................................171

1.- Introducción .............................................................................................................................. 171 2.- Interfaz de usuario en Windows Store .............................................................................. 171

2.1.- Conceptos preliminares ............................................................................................. 172 2.1.1.- Grid System ........................................................................................................... 172 2.1.2.- Tipografía ............................................................................................................... 173

Page 9: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

viii Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

2.2.- Modos de Visualización .............................................................................................. 173 2.3.- Navegación .................................................................................................................... 179 2.4.- GridView ........................................................................................................................ 185

2.4.1.- Zoom Semántico .................................................................................................. 193 2.5.- FlipView .......................................................................................................................... 198 2.6.- ApplicationBar .............................................................................................................. 201 2.7.- Localización ................................................................................................................... 206

3.- Interfaz de usuario en Windows Phone 8 ......................................................................... 210 3.1.- Resoluciones ................................................................................................................. 210 3.2.- Orientación ................................................................................................................... 213 3.3.- Navegación .................................................................................................................... 215 3.4.- Panorama ....................................................................................................................... 222

3.4.1.- Recomendaciones de uso .................................................................................. 224 3.4.2.- Usando el elemento Panorama ........................................................................ 225

3.5.- Pivot ................................................................................................................................ 227 3.5.1.- Recomendaciones de uso .................................................................................. 229 3.5.2.- Usando el elemento Pivot.................................................................................. 229

3.6.- ApplicationBar .............................................................................................................. 231 3.7.- SystemTray .................................................................................................................... 237 3.8.- Localización ................................................................................................................... 238

CAPÍTULO 6: CICLO DE VIDA DE APLICACIONES ......................................247

1.- Introducción .............................................................................................................................. 247 2.- Ciclo de vida en Windows Store ........................................................................................ 247

2.1.- Activación de la aplicación ......................................................................................... 249 2.2.- Suspensión de la aplicación........................................................................................ 253 2.3.- Visibilidad de aplicación .............................................................................................. 255 2.4.- Tareas en segundo plano ........................................................................................... 256

3.- Ciclo de vida en Windows Phone 8 ................................................................................... 256 3.1.- Detección de actividad ............................................................................................... 262 3.2.- Inicio, suspensión y activación .................................................................................. 263

CAPÍTULO 7: ACCESO AL SISTEMA .................................................................265

1.- Introducción .............................................................................................................................. 265 2.- Windows Store ........................................................................................................................ 266

2.1.- Configuración de contratos o extensiones ........................................................... 267 2.2.- Account Picture Provider .......................................................................................... 268 2.3.- AutoPlay y File Type Association ............................................................................ 271

2.3.1.- Autoplay Content ................................................................................................ 271 2.3.2.- Autoplay Device ................................................................................................... 276

2.4.- Background Tasks ........................................................................................................ 277 2.4.1.- Limitaciones ........................................................................................................... 280

2.5.- Contact Picker .............................................................................................................. 281 2.5.1.- Seleccionando contactos .................................................................................... 283

2.6.- Search ............................................................................................................................. 285 2.7.- Settings ........................................................................................................................... 288

Page 10: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Contenido ix

2.8.- Share ............................................................................................................................... 292 2.8.1.- Share Source ......................................................................................................... 293 2.8.2.- Share Target .......................................................................................................... 295

3.- Windows Phone 8 ................................................................................................................... 298 3.1.- Lanzadores ..................................................................................................................... 298

3.1.1.- MapsTask................................................................................................................ 299 3.1.2.- MapsDirectionsTask ............................................................................................ 300 3.1.3.- MapDownloaderTask .......................................................................................... 301 3.1.4.- MapUpdaterTask .................................................................................................. 302 3.1.5.- SaveAppointmentTask ........................................................................................ 302 3.1.6.- ShareMediaTask.................................................................................................... 304

3.2.- Selectores ...................................................................................................................... 305 3.2.1.- AddWalletItemTask ............................................................................................ 306 3.2.2.- PhotoChooserTask ............................................................................................. 308

3.3.- Lenses ............................................................................................................................. 309 3.4.- Cámara ........................................................................................................................... 311 3.5.- Extensibilidad de búsquedas ...................................................................................... 314 3.6.- Comunicación entre aplicaciones ............................................................................ 317

3.6.1.- Asociación de archivos ....................................................................................... 318 3.6.2.- Asociación de esquemas URI ............................................................................ 321

3.7.- Voz 323 3.7.1.- Comandos de voz ................................................................................................ 323 3.7.2.- Voz a texto ............................................................................................................ 326 3.7.3.- Texto a voz............................................................................................................ 327

CAPÍTULO 8: TILES Y NOTIFICACIONES .......................................................329

1.- Tiles ............................................................................................................................................. 329 1.1.- Tiles en Windows 8 .................................................................................................... 330

1.1.1.- Cambios en los tiles de la aplicación............................................................... 332 1.1.2.- Combinación de tipos de tile ............................................................................ 336 1.1.3.- Gestión de las notificaciones de tiles .............................................................. 338 1.1.4.- Programación de notificaciones de tiles ....................................................... 338 1.1.5.- Badges ..................................................................................................................... 341

1.2.- Tiles en Windows Phone 8 ....................................................................................... 343 1.2.1.- Templates de tiles Windows Phone 8 ............................................................ 344 1.2.2.- Manejo de tiles en ejecución ............................................................................. 347

1.3.- Tiles Secundarios ......................................................................................................... 349 1.3.1.- Tiles secundarios en Windows 8 ..................................................................... 350 1.3.2.- Actualización de tiles secundarios en Windows 8 ...................................... 354 1.3.3.- Tiles secundarios en Windows Phone 8 ........................................................ 355

2.- Notificaciones ........................................................................................................................... 358 2.1.- Notificaciones en Windows 8 .................................................................................. 358 2.2.- Notificaciones en Windows Phone 8 ..................................................................... 363

3.- Pantalla de bloqueo ................................................................................................................. 364 3.1.- Notificaciones en la pantalla de bloqueo en Windows 8 .................................. 365 3.2.- Notificaciones en la pantalla de bloqueo de Windows Phone 8 ..................... 368

4.- Notificaciones push ................................................................................................................. 371

Page 11: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

x Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

4.1.- Microsoft Push Notification Services ...................................................................... 372 4.2.- Notificaciones Push en Windows Store Apps ..................................................... 373

4.2.1.- Servicio de backend para el envío de notificaciones ................................... 375 4.3.- Notificaciones push en Windows Phone Apps .................................................... 381

4.3.1.- Servicio de backend para el envío de notificaciones ................................... 387

CAPÍTULO 9: SENSORES ......................................................................................395

1.- Introducción .............................................................................................................................. 395 2.- GPS .............................................................................................................................................. 396

2.1.- Dispatcher en Windows Phone 8 ........................................................................... 402 2.2.- GPS en segundo plano en Windows Phone 8 ...................................................... 403

2.2.1.- Consideraciones de rendimiento ..................................................................... 406 2.3.- Mapas .............................................................................................................................. 406

2.3.1.- Bing Maps para aplicaciones Windows Store ............................................... 407 2.3.2.- Maps para aplicaciones Windows Phone 8 ................................................... 410

3.- Microsoft.Devices vs Windows.Devices ........................................................................... 413 4.- Acelerómetro ........................................................................................................................... 414 5.- Brújula......................................................................................................................................... 418 6.- Giroscopio................................................................................................................................. 421 7.- Otros sensores ........................................................................................................................ 423

7.1.- Inclinómetro .................................................................................................................. 423 7.2.- Orientación ................................................................................................................... 423 7.3.- Luminosidad .................................................................................................................. 423

8.- Compartir código .................................................................................................................... 424 8.1.- Componentes WinRT ................................................................................................ 424 8.2.- Portable Class Libraries ............................................................................................. 424 8.3.- Enlace de archivos ....................................................................................................... 424 8.4.- ¿Qué usamos entonces? ............................................................................................ 425 8.5.- Un ejemplo práctico: GPS compartido .................................................................. 425

CAPÍTULO 10: N.F.C. Y BLUETOOTH ..............................................................433

1.- ¿Qué es NFC?........................................................................................................................... 433 1.1.- Funcionamiento. ........................................................................................................... 433 1.2.- Usos de la tecnología NFC........................................................................................ 435 1.3.- Tapping ........................................................................................................................... 436

2.- Como usar nfc .......................................................................................................................... 437 2.1.- Comunicación entre aplicaciones ............................................................................ 437 2.2.- Envío de mensajes ........................................................................................................ 440

2.2.1.- Parada del envío de mensajes ........................................................................... 444 2.3.- Subscripción a mensajes ............................................................................................. 444

2.3.1.- Parada de la subscripción ................................................................................... 446 3.- ¿Que es bluetooth? ................................................................................................................. 446

3.1.- Funcionamiento ............................................................................................................ 446 3.2.- Usos de la tecnología Bluetooth .............................................................................. 447

4.- Como usar bluetooth ............................................................................................................. 447 4.1.- Comunicación aplicación con aplicación ................................................................ 448

Page 12: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Contenido xi

4.1.1.- Detección de conexión ...................................................................................... 449 4.2.- Comunicación aplicación a dispositivo ................................................................... 450

CAPÍTULO 11: COMUNICACIONES ..................................................................453

1.- Introducción .............................................................................................................................. 453 2.- WCF ........................................................................................................................................... 453

2.1.- EndPoints ....................................................................................................................... 454 2.2.- WCF en aplicaciones Windows Store ................................................................... 455 2.3.- WCF en aplicaciones Windows Phone 8 .............................................................. 457

3.- OData ......................................................................................................................................... 459 4.- RSS & Atom .............................................................................................................................. 462

4.1.- HttpWebRequest......................................................................................................... 462

CAPÍTULO 12: WINDOWS AZURE ....................................................................467

1.- Introducción .............................................................................................................................. 467 2.- Cloud Computing .................................................................................................................... 468 3.- Windows Azure ....................................................................................................................... 471

3.1.- Beneficios de Windows Azure ................................................................................. 472 4.- Virtual Machines ....................................................................................................................... 473 5.- Web Sites .................................................................................................................................. 479 6.- Cloud Services .......................................................................................................................... 486

6.1.- La configuración ........................................................................................................... 490 6.2.- Entorno de simulación ................................................................................................ 493 6.3.- Desplegar una aplicación en Windows Azure ...................................................... 494

7.- Windows Azure Storage ....................................................................................................... 498 7.1.- Windows Azure Table ............................................................................................... 498 7.2.- Windows Azure Blobs ............................................................................................... 499 7.3.- Windows Azure Queues ........................................................................................... 499 7.4.- Windows Azure Drive ............................................................................................... 499 7.5.- Crear un servicio de almacenamiento .................................................................... 500

8.- SQL Database ........................................................................................................................... 500 8.1.- Aprovisionamiento ...................................................................................................... 501 8.2.- Mi primera base de datos SQL Database .............................................................. 502

9.- Mobile Services ........................................................................................................................ 505 10.- Conclusión ............................................................................................................................. 515

APÉNDICE A: PUBLICACIÓN DE NUESTRAS APLICACIONES .................517

1.- introducción .............................................................................................................................. 517 2.- Publicación en la windows store ......................................................................................... 517

2.1.- Creación de una cuenta de desarrollador. ............................................................ 518 2.2.- Creación de la aplicación en la Store. .................................................................... 520 2.3.- Preparación de nuestras aplicaciones. .................................................................... 522 2.4.- Envío de las aplicaciones a la Store. ........................................................................ 526 2.5.- Seguimiento de nuestras aplicaciones ..................................................................... 530

Page 13: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

xii Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

3.- publicación en windows phone store ................................................................................. 531 3.1.- Creación de una cuenta de desarrollador. ............................................................ 531 3.2.- Preparación de nuestras aplicaciones para publicar............................................ 532 3.3.- Creación y envío de la aplicación en la Store ....................................................... 535

ÍNDICE ANALÍTICO ...............................................................................................539

Page 14: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Autores

Josué Yeray Julián Tiene más de 10 años de experiencia trabajando con

tecnologías Microsoft. Actualmente está centrado en Windows

Phone y Windows 8, enfocado en el desarrollo de aplicaciones de

movilidad. Mantiene un blog en la comunidad geeks.ms y colabora

activamente con los grupos de usuarios españoles, dando charlas

allí donde le dejan. Ha sido reconocido con los galardones Nokia

Developer Champion y Microsoft MVP en la categoría de

Windows Phone development. Trabaja en Plain Concepts.

Rafael Serna Jefe de producto en SDM Programas, programador de

nacimiento e inquieto informáticamente hablando hasta el extremo.

Trabaja desde hace ya más de 12 años desarrollando aplicaciones

de gestión para la pequeña y mediana empresa, con tecnologías

Microsoft. Fan y evangelista aficionado de Windows Phone, junto

a Josue Yeray realiza un podcast sobre desarrollo para esta

plataforma, llamado WP Controla. Participa como speaker en

eventos de desarrollo y es habitual del grupo de usuarios Nuberos

.NET de Cantabria.

Ibón Landa:

Lleva más de 10 años dedicado al desarrollo de software, con el

que ha tenido la oportunidad de trabajar en diferentes entornos y

tecnologías. Participa de forma activa en la comunidad,

escribiendo su blog, manteniendo un portal sobre Windows Azure

y colaborando con Microsoft y grupos de usuarios en eventos de

formación, talleres y giras de producto. Ha sido reconocido con el

galardón de Microsoft MVP en la categoría de Windows Azure.

Trabaja en Plain Concepts.

Page 15: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Prólogo José Bonnin - Microsoft

En tan solo un mes desde la comercialización oficial de Windows 8 hemos visto

cómo se han vendido 40 millones de licencias, superando a su predecesor Windows 7

en términos de actualizaciones. Windows está viviendo un momento de expansión a

otras plataformas en las que tradicionalmente no tenía presencia, como son los

dispositivos con arquitectura ARM. Además nos encontramos ya en la segunda

generación de dispositivos con Windows Phone los cuales, gracias al OS Windows

Phone 8, comparten el mismo Kernel con Windows 8.

Todo esto hace que la llegada de Windows 8 suponga una oportunidad de negocio

excepcional para los desarrolladores, puesto que no hay que olvidar que todos los

dispositivos con esta versión de Windows incorporan la nueva Windows Store, la cual

permite distribuir y comercializar apps para más de 200 mercados y 100 idiomas.

Josue Yeray, Rafa Serna e Ibón Landa nos van a adentrar a través de este libro en el

desarrollo de apps, tanto para Windows 8 como para Windows Phone, de manera que

podamos aprender a aprovechar al máximo las capacidades de ambas plataformas. Este

libro no se limita a ser una simple referencia de funcionalidades, sino que los autores

han dedicado tiempo a compartir su experiencia personal con Windows 8 y Windows

Phone, al tiempo que nos describen cómo implementar las apps haciendo uso de

tecnologías emergentes como NFC y buenas prácticas de desarrollo. Entre ellas

encontraremos cómo implementar patrones de diseño tales como MVVM que nos

facilitará, entre otras cosas, poder compartir código entre ambas plataformas de manera

que podamos rentabilizar al máximo nuestro tiempo.

Al finalizar el libro, el lector estará en grado de poder desarrollar, publicar y

comercializar sus apps a través de la Windows Store tanto para Windows 8 como para

Windows Phone.

Jose Bonnin

Technical Evangelist Manager. Microsoft Ibérica.

Page 16: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Prólogo Óscar Gutiérrez - Nokia

Querido lector,

Cuando Yeray me ofreció el poder escribir un prólogo de su segundo libro, mi respuesta

fue sin dudarlo “¡por supuesto! ¡Será un placer!”. Me entusiasmó tanto la idea que las ideas

empezaron a agolparse en mi mente sin poder detenerlas, peleándose unas con otras por ser

las primeras que sean reflejadas en estas líneas que ahora lees recién impresas. Días

después me encuentro aquí sentado delante de mi ordenador, mirando fijamente una página

de Word en blanco con el reto de plasmar y sintetizar en unas pocas líneas todo aquello que

me gustaría trasmitir sobre el autor y el excelente libro que tienes entre tus manos.

Sin darme cuenta me estoy enfrentando al reto que personas como Yeray convierten en

un arte día a día, con una facilidad innata para aglutinar en unas pocas frases, en unas pocas

palabras, en unos pocos métodos, todo el conocimiento adquirido tras largos años de experiencia de una forma clara, sencilla y entendible por los lectores, los oyentes o los

desarrolladores.

Siempre recordaré la primera vez que pude ver a Yeray en acción. Fue en un evento de

desarrolladores en el que participamos juntos en una Universidad de Madrid y en el que él

impartió una sesión magistral sobre Windows Phone 7. Lo primero que me sorprendió en su

charla fue la conexión total con la audiencia y el entusiasmo en cada uno de sus gestos, pero

su valor diferenciador fue, sin lugar a dudas, la capacidad de sintetizar conceptos complejos

y transmitirlos a los oyentes de forma que resulten tan obvios como una simple suma.

Más de un año después, y con un gran número de charlas compartidas, puedo asegurar

que Yeray, junto a su inseparable compañero de podcasts Rafa Serna, e Ibón Landa, son las

personas ideales para mostrarte a lo largo de este apasionante libro una de las mayores

revoluciones de software de los últimos tiempos, Windows Phone 8 y Windows 8. La combinación de Windows 8 y Windows Phone 8 se ha convertido en la tecnología

software más avanzada existente para móviles, tablets y PC. Este increíble software

proporciona funcionalidades nunca vistas hasta el momento y, por primera vez en la

historia, permite a los móviles compartir el mismo corazón software (“Shared Windows

Core”) que un ordenador, ofreciendo finalmente a los desarrolladores el anhelado desarrollo

multi-dispositivo: móvil, tablet y ordenador.

Tanto si tienes experiencia en desarrollos con Windows o Windows Phone 7, como si

eres nuevo en la plataforma, te recomiendo que busques un sitio cómodo, relajes tu mente y

enciendas tu ordenador para disfrutar de la lectura de este libro y, casi sin darte cuenta,

aprendas a desarrollar aplicaciones con las tecnologías más novedosas de una forma

sencilla gracias a sus múltiples ejemplos creados para ti. Y como diría un auténtico Yeray…¡que la fuerza te acompañe!

Oscar Gutiérrez Isiegas

Developer Relations Manager. Nokia Spain

Page 17: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

19

CAPÍTULO

1.- ESTRUCTURA DEL LIBRO

En ese capítulo comenzaremos por definir la estructura general del libro. A

continuación hablaremos tanto de las nuevas características de Windows 8 y de

Windows Phone 8, como de las herramientas de desarrollo que Microsoft pone a

nuestro alcance para desarrollar aplicaciones para ambas plataformas. Asimismo

daremos un repaso al nuevo paradigma Microsoft Design Style.

1.1.- Objetivos

A continuación expondremos cuáles son los objetivos de este libro.

En primer lugar, veremos las nuevas y renovadas herramientas que tenemos a

nuestra disposición para desarrollar aplicaciones Windows Store para Windows 8, y

aplicaciones Windows Phone 8. Una vez conocidas y revisadas estas herramientas se

sentarán las bases necesarias para desarrollar aplicaciones de calidad para estos dos

entornos. ¡Qué mejor manera que empezar que viendo los conocimientos necesarios

para poder implementar el patrón MVVM!, además de otras buenas prácticas para

desarrollar nuestros proyectos. Entre otras veremos el patrón Model View ViewModel,

la inyección de dependencias, qué son y para qué sirven los test unitarios, etc…

Para afianzar los conocimientos adquiridos sobre buenas prácticas en el desarrollo

de software, nos pondremos manos a la obra descubriendo y desarrollando las nuevas características que se incorporan en el paradigma del desarrollo de las aplicaciones

Windows Store.

Windows 8 y Windows

Phone 8

1

Page 18: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

20 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

En definitiva, este libro trata de cubrir dos grandes áreas, a saber: por un lado, ver

cómo desarrollar para Windows 8 y Windows Phone 8 de forma casi simultánea; para

ello haremos uso de patrones de diseño y buenas prácticas en el desarrollo de software.

En segundo lugar repasaremos de forma concisa las nuevas características, elementos,

reglas y prácticas necesarias para desarrollar aplicaciones profesionales para ambas

plataformas.

Como el lector puede observar, este libro va dirigido a cualquier desarrollador, con

independencia de su nivel o experiencia. Por un lado, un desarrollador novel aprenderá

cuáles son las mejores prácticas en el desarrollo de software, y un desarrollador más

avanzado conocerá cuáles son las novedades que incorporan los nuevos sistemas

Windows 8 y Windows Phone 8, pudiendo además revisar sus conocimientos de

patrones y buenas prácticas.

1.2.- Estructura

Como ya hemos comentado previamente, el libro se estructura en tres bloques:

1.2.1.- Desarrollo para Windows 8 y Windows Phone 8.

En esta parte, que comprende únicamente el primer capítulo, veremos cuáles son las

nuevas herramientas para poder llevar a cabo nuestros desarrollos, cuáles han cambiado

y se han actualizado, y qué es el nuevo paradigma de las aplicaciones Windows Store.

1.2.2.- Patrones y buenas prácticas.

En los tiempos que corren y con objeto de alcanzar un nivel de calidad adecuado en

los desarrollos a realizar, se hace imperativo el uso de buenas prácticas a la hora de

desarrollar software. Asimismo, el uso de patrones de diseño es fundamental para

poder hacer desarrollos que usen una tecnología común a varias plataformas,

permitiendo así ser implementados en diferentes sistemas con un coste en la realización

asumible.

Cada vez son más los sistemas objeto de nuestros desarrollos, más las diferentes

plataformas a las que los desarrolladores nos debemos enfrentar. Y son estas

directrices, el uso de patrones y la aplicación de buenas prácticas las que nos pueden

ayudar a salir vencedores de la batalla. De lo contrario el coste, no solo económico sino

mental, puede llegar a ser inasumible. Dedicaremos a este bloque los capítulos 2 y 3 de

este libro.

Page 19: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 21

1.2.3.- Desarrollando para Windows 8 y Windows Phone 8.

En nuestro último bloque, que ocupará la mayor parte del libro, revisaremos las

nuevas funcionalidades que nos ofrece el desarrollo para Windows 8 y Windows Phone

8. Aparte de repasar estas características, las abordaremos de manera conjunta, usando

los conocimientos previos para poder desarrollar aplicaciones que tengan una lógica

común y un desarrollo paralelo para cada una de las plataformas. Veremos temas como

el NFC, los sensores, la cámara, el geo-posicionamiento, etc…

En este bloque, que comienza con el capítulo 4, se verá en profundidad el sistema

XAML usado en WinRT y WinPRT.

2.- MICROSOFT DESIGN STYLE

Aunque este no es un libro dedicado a explicar el nuevo rumbo que ha decidido

tomar Microsoft a la hora de diseñar todo su entorno, consideramos importante explicar

al lector qué es el estilo Metro y de dónde ha surgido.

El 15 de febrero de 2010, en Barcelona, durante la celebración del “Mobile Word Congress”, Steve Ballmer y Joe Belfiore presentaron Windows Phone 7, fue la

primera vez en la que pudimos disfrutar y descubrir el Microsoft Design Style. En

aquel momento fue presentado con el nombre de Metro en un único producto de

Microsoft.

Aunque realmente ya ha sido usado en productos como Windows Media Center o el

tristemente denostado reproductor Zune, es Windows Phone el que lo expone al 100%

y el que realmente lo lleva a la máxima expresión. (Figura 1)

Figura 1.- Síntesis del concepto metro

¿Por qué hablamos de estilo Metro?, ¿no era Microsoft Design Style?

Efectivamente, en las primeras presentaciones realizadas por Microsoft sobre el estilo propio de su sistema Windows Phone 7, así como en mucha de la información de la

compañía hasta mediados del año 2012, se escogió Metro como nombre para

Page 20: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

22 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

denominar a la nueva tipología global de las interfaces de usuario de todos sus

productos.

Pero tal y como ya hemos comentado, Metro ha pasado a denominarse Microsoft

Design Style, o en algunos casos Windows UI Style. Posiblemente el motivo haya sido

el intentar esquivar alguna que otra demanda a causa de la citada denominación.

Pero, ¿qué es realmente? Microsoft Design Style está basado en los principios de

diseño de la escuela Suiza y las especificaciones usadas por la escuela germana

Staatliches Bauhaus o simplemente Bauhaus.

Estos principios, junto al diseño visual de la cartelería usada comúnmente en los

lugares públicos y de tránsito de personas (Figura 2), llevan a los equipos de diseño de

Microsoft a crear un nuevo lenguaje visual o de diseño basado en tres pilares básicos:

1. Tipografía. Clara y concisa, pero también funcional usada con inteligencia

para crear una jerarquía visual basada en el peso y la posición de la misma.

2. Movmiento. Tan importante es el diseño como el movimiento. Las

animaciones sirven para crear un contexto que dota de vida a toda la interfaz.

3. Contenido. Se convierte en el elemento principal, se elimina todo elemento

de distracción extra que pudiera tener nuestra interfaz. El contenido se convierte en el foco.

Figura 2.- Paneles informativos de señalización

Como hemos comentado antes, Microsoft, tras la salida de Windows Phone 7 y la

buena acogida por casi todos los sectores de su nueva interfaz, convierte a Microsoft

Design Style en su guía de estilo. Dicha guía está siendo adoptada por todos los

productos y servicios de la compañía, con lo que, la siguiente revisión de su sistema operativo principal no iba a ser una excepción.

Page 21: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 23

3.- CONOCIENDO WINDOWS 8

El 1 de junio de 2011, durante la celebración del “Taipei Computex”, Microsoft

enseña al mundo lo que será la nueva versión del sistema operativo Windows,

concretamente la versión 8.

Mike Angiulo, encargado de realizar dicha presentación, muestra en qué consiste el

nuevo Windows, destacando sobremanera su pantalla de inicio (Figura 3), totalmente

enfocada a Microsoft Design Style. El 26 de Octubre de 2012, 1 año y 118 días

después, el sistema operativo ve la luz definitivamente dando lugar a un cambio muy

significativo en la forma de realizar aplicaciones para los entornos Windows, ya que

Windows 8 y su versión de servidores Windows Server 2012 no son sólo un cambio a

nivel de interfaz de usuario.

Figura 3.- Nueva pantalla de inicio de Windows 8

3.1.- Windows 8 y el hardware

Hasta la fecha, el sistema operativo de Microsoft era un sistema operativo dirigido

única y exclusivamente a entornos de ejecución en procesadores x86, tanto en sus

versiones de 32bits como en 64bits.

A partir de la aparición de Windows 8 esa limitación queda eliminada, pudiendo

correr el nuevo sistema operativo bajo procesadores ARM. Esta característica convierte

a Windows 8 en un sistema totalmente capaz de correr en dispositivos Tablet, con lo

que las oportunidades de desarrollo se incrementen de forma exponencial.

No debemos olvidar que la ejecución de Windows 8 en los sistemas ARM tiene una

serie de limitaciones, siendo la ejecución en exclusiva de aplicaciones Windows Store, quizás, una de las más significativas.

Page 22: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

24 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Nota: Windows RT, el nombre de la versión de Windows 8 que se ejecuta en

ARM, dispone de escritorio, pero no todas las aplicaciones se pueden ejecutar en

él, y no es compatible con las aplicaciones compiladas para procesadores Intel.

3.1.1.- Sistema multitouch

Windows 7 ya comenzó a incorporar funciones para que el sistema se relacionara de

forma correcta con pantallas táctiles y gestos táctiles realizados por el usuario sobre el

dispositivo. Pero es Windows 8 el que explota definitivamente esta faceta,

principalmente debido al uso que se hará del mismo sobre tabletas.

En Windows 8 los gestos que podemos realizar en pantallas táctiles no son un

añadido que está para “cumplir”. El sistema usa estos gestos de forma totalmente

integrada para las operaciones básicas del mismo. Gestos como deslizar desde la

derecha para mostrar la barra de charms, deslizar desde la izquierda para intercambiar

la aplicación activa, deslizar desde abajo para mostrar la barra de aplicación, o deslizar

desde arriba sobre un elemento para seleccionarlo. Todos estos gestos harán que usar

Windows 8 sobre una pantalla táctil sea algo natural y muy intuitivo.

3.1.2.- Soporte para NFC

NFC, siglas de su definición en inglés (Near Field Communication), es un sistema

de comunicación inalámbrica entre dispositivos que se encuentran cerca.

Windows 8 incorpora soporte nativo para esta tecnología, convirtiéndose así en el

primer sistema operativo de escritorio que posee esta característica. Pero más allá de

simplemente soportarlo, también -como veremos en el capítulo 10- nos ofrece una API

para poder hacer uso tanto de NFC como de Bluetooth de forma sencilla desde nuestras

propias aplicaciones.

3.1.3.- Sensores

Debido principalmente a su adaptación para la ejecución en tabletas, Windows 8

integra en su sistema el soporte nativo para seis sensores:

Magnetómetro.

Giroscopio.

Acelerómetro.

Sensor de inclinación.

Page 23: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 25

Sensor de iluminación.

Sensor de Orientación

También incorpora la gestión y la supervisión del aGPS o sistema de GPS asistido,

el cual puede geo posicionar el aparato a través de las coordenadas de las celdas o

antenas de telefonía móvil a las cuales se conecta: siempre y cuando el dispositivo se

conecte a una red.

Como en el caso de NFC y Bluetooth, dispondremos de APIs que nos permitirán

acceder a todos estos sensores.

3.1.4.- Otras características

Windows 8 incorpora soporte para otras características de hardware como son:

control de Bluetooth 4.0 + LE, control de sensores de luz de ambiente, control nativo

de dispositivos USB 3.0 o el Windows Display Driver Model (WDDM) versión 1.2,

modelo encargado de toda la gestión gráfica del sistema.

3.2.- Windows 8 y el software

Si muchas son las nuevas incorporaciones que Windows 8 añade y soporta de forma

nativa en lo que a hardware se refiere, no se queda atrás en relación al software, siendo

el nuevo modelo de programación, Windows Runtime o WinRT, el que constituye el

centro de atención.

3.2.1.- Plataforma de desarrollo

A partir de ahora dispondremos de dos plataformas de desarrollo totalmente

independientes. Por un lado, podremos seguir desarrollando aplicaciones para

escritorio como hasta ahora. Estas aplicaciones podrán estar hechas en el lenguaje y la

tecnología que deseemos, podrán ser nativas o interpretadas y, como siempre, dichas

aplicaciones manejarán de una forma u otra al kernel del sistema.

Pero ahora Windows 8 nos trae un nuevo sistema de desarrollo, WinRT. Este nuevo

sistema nos proporciona un conjunto de APIs para acceder al kernel del sistema. Sobre

estas APIs disponemos de cuatro modelos de desarrollo de aplicaciones:

Desarrollo sobre código nativo en C++, con una interfaz gráfica basada en XAML.

Desarrollo sobre código manejado en .NET con C# o VB.Net, con una

interfaz gráfica basada en XAML.

Page 24: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

26 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Desarrollo sobre JavaScript, con una interfaz gráfica creada a base de

HTML5 y CSS.

Desarrollo sobre código nativo C++ o código manejado usando DirectX en la parte visual del desarrollo.

En la figura 4 se muestra claramente la separación de estos dos paradigmas y el

detalle de cada una de las opciones y lenguajes que podemos utilizar.

Figura 4.- Esquema de la plataforma de desarrollo en Windows 8

Con respecto a estos dos caminos existen varias cosas importantes a tener en cuenta.

Las aplicaciones Windows Store podrán ser ejecutadas sin ningún tipo de

modificación, tanto en dispositivos x86 como en dispositivos ARM. Sin embargo, las

aplicaciones de escritorio no estarán disponibles en ARM, es decir, las aplicaciones

Windows Store constituyen la forma de desarrollo para tabletas con Windows 8, ya

sean ARM o Intel.

Nota: Todos los ejemplos y las explicaciones contenidas en este libro hacen

referencia al desarrollo de aplicaciones Windows Store con C# y XAML.

El atento lector ya se habrá dado cuenta de un pequeño detalle: continuamente

estamos hablando del término Microsoft Design Style, y de aplicaciones Windows

Store. Aclaremos estos conceptos: Cuando hablamos de interfaz Microsoft Design Style nos referimos a aquellas aplicaciones que siguen un patrón de diseño definido

bajo los estándares que Microsoft ha creado a tal efecto. Cuando nos referimos a

Page 25: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 27

aplicaciones Windows Store, aludimos a aquellas aplicaciones que están basadas en

WinRT.

Un término no tiene por qué estar junto al otro. Una aplicación de escritorio puede

seguir la guía de diseño Microsoft Design Style, aunque no esté desarrollada en

WinRT. No obstante, Microsoft quiere que consigamos ligar ambos conceptos y nos

proporcionará las herramientas necesarias para ello.

4.- CONOCIENDO WINDOWS PHONE 8

Seguimos con las fechas, y es que el 20 de Junio de 2012, Joe Belfiore en un

evento celebrado en San Francisco, presentó al mundo la nueva versión del sistema

operativo móvil de Microsoft; lo que hasta el momento se conocía como Apollo, pasó

formalmente a llamarse Windows Phone 8.

Una de las principales modificaciones que incorpora dicha actualización es la

adopción del núcleo del sistema de Windows 8. A partir de este momento Windows

Core (nombre como se le denomina actualmente) constituye las tripas de nuestro

sistema móvil, dejando así de lado al utilizado hasta ese momento, el cual era conocido

como Windows CE.

Una de las mayores ventajas que aporta el uso de un núcleo común es que la

integración entre ambos sistemas es muy extensa. La API de desarrollo, a partir de este

momento, es un subsistema de WinRT, conocido como WinPRT, compartiendo entre

ambos mundos muchas de las instrucciones. Pero Windows Phone seguirá

diferenciándose en algunos puntos, los cuales iremos explicando y desarrollando a lo

largo de los siguientes capítulos de este libro.

4.1.- Windows Phone 8 y el hardware

Si en Windows 8 hacíamos hincapié en las modificaciones incorporadas

relacionadas con hardware, no son pocas las que nos encontramos en la nueva versión

del sistema operativo móvil. La más destacada de todas quizás sea la posibilidad de

soportar procesadores multi-núcleo. Concretamente, la primera generación de

Smartphones que montan Windows Phone 8 posee un procesador Qualcomm

Snapdragon S4 Plus (Qualcomm MSM8960). Dicho procesador ha sido elegido por

Microsoft para ser el que suministre soporte de doble núcleo a los primeros

dispositivos.

Aparte del esperado soporte para multinúcleo, Windows Phone 8 incorpora soporte

para tarjetas de expansión MicroSD. Todos los dispositivos, a partir de ahora, podrán

montar una ranura de expansión en donde podremos almacenar nuestra información y

conseguir, de esta forma, una capacidad de almacenaje mayor. Una de las “pequeñas”

limitaciones del sistema es la imposibilidad de realizar la instalación de cualquier aplicación dentro de las tarjetas de expansión. Es decir, dichas tarjetas servirán de

almacenamiento complementario a cualquier aplicación y al sistema, pero no al

almacenamiento principal de la aplicación.

Page 26: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

28 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

4.1.1.- Multiresolución de pantalla

A partir de Windows Phone 8 el sistema podrá ser montado en dispositivos con tres

tipos diferentes de resolución de pantalla. Aparte de la resolución soportada hasta la

versión 7.5 del sistema operativo, resolución WVGA de 800x480 puntos de pantalla

con una relación de aspecto1 de 15:9, se incorporan dos más. Por un lado, una

resolución denominada 720p o HD sobre 1280x720 puntos de pantalla con una relación

de aspecto de 16:9 y otra WXGA, también conocida como 720p+, de 1280x768 puntos

de pantalla con un relación de aspecto de 15:9 y una resolución de 720p.

Windows Phone 8 rompe con la rigidez que hasta el momento ha imperado en los

sistemas móviles, en lo que a resoluciones de pantalla se refiere. Mientras que en

nuestro dispositivo de escritorio podíamos fijar una resolución u otra en función de

nuestras preferencias, esto nunca había sido posible en ningún dispositivo móvil. El

nuevo sistema no es muy prolífico en cuanto a resoluciones diferentes se refiere,

debido principalmente a la necesidad de retro compatibilidad con las aplicaciones

antiguas de Windows Phone 7 y a su utilización de gráficos con mapas de bits

estáticos. Sin embargo, gracias al uso de gráficos vectoriales se puede adaptar a

múltiples resoluciones diferentes sin pérdida de calidad en cualquiera de ellos.

4.1.2.- NFC

De la misma forma que Windows 8 incorpora soporte nativo para este sistema de

comunicación, lo hace también Windows Phone 8.

A pesar de que Windows Phone 7 ya poseía soporte para esta tecnología

inalámbrica, es ahora cuando realmente podremos utilizarla, ya que antes no había

dispositivos que la implementaran. Es con Windows Phone 8 cuando el uso de esta

tecnología realmente despega, ya que el propio sistema incorpora una aplicación

concebida para hacer uso intensivo de la misma: la aplicación Wallet Hub.

Al igual que en WinRT, WinPRT incorpora APIs específicas para el control de

NFC y Bluetooth en nuestras aplicaciones, algo imposible en Windows Phone 7.X.

4.2.- Windows Phone 8 y el software

La novedad más espectacular y sorprendente en relación al software es, quizás, la

nueva pantalla de inicio o start screen del sistema operativo (Figura 5). Una de las

características más innovadoras de Windows Phone 7 fue, sin duda, su interfaz de

usuario los Live Tiles (“bloques vivos” según su traducción literal al español) usados

para mostrar la información y las aplicaciones. Pues bien, Windows Phone 8 amplía

ese concepto de Live Tile añadiendo la posibilidad de definir tres tamaños diferentes a

1 Relación de aspecto o aspect ratio en inglés, es la proporción de una imagen (o

pantalla) existente entre su ancho y su altura. Se calcula dividiendo el ancho entre la altura de la imagen visible en pantalla.

Page 27: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 29

nuestros “bloques”. Partiendo del tamaño estándar visto hasta el momento, conocido

como tamaño medio o medium size, es añadido el tamaño pequeño, cuya medida es una

cuarta parte de la correspondiente al tamaño medio. El tercer tamaño es el tamaño

grande o large size, que tiene la misma altura que el tamaño medio pero mide el doble

en horizontal.

4.2.1.- Cambio en los frameworks de desarrollo

Hasta el momento, para Windows Phone solo existían dos tipos de frameworks de

desarrollo: Los desarrollos bajo Microsoft Silverlight o los desarrollos bajo la

tecnología de XNA. En ambos se podían utilizar los mismos lenguajes de

programación, C# o VB.Net. En Windows Phone 8 estos frameworks desaparecen.

Para desarrollar aplicaciones usaremos WinRT, tanto en C# con en VB.Net, en lo

referente a Silverlight. En cuanto a XNA utilizaremos C++ nativo y DirectX para el

desarrollo de aplicaciones que hagan un uso intensivo de gráficos.

Esta nueva característica, junto al soporte para nuevos procesadores gráficos, hace

de Windows Phone 8 una plataforma muy versátil a la hora de desarrollar juegos sobre

DirectX y compartir código y experiencia de usuario con su homónimo en Windows 8.

Figura 5.- Nueva Start Screen en Windows 8

Page 28: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

30 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

4.2.2.- Otras mejoras

Windows Phone 8 dispone de un soporte para multitarea mejorado, principalmente

para aplicaciones que tienen relación con la geo-localización y con las comunicaciones,

ya que el sistema posee también la posibilidad de integrar aplicaciones de voIP de

terceros sobre el sistema general de llamadas del teléfono.

Con la incorporación de Internet Explorer 10 y un motor de renderizado de páginas

web igual al que tiene la versión de escritorio, se consigue una gran mejora en la

visualización de código JavaScript (Si quisiéramos cuantificar dicha mejora, podríamos

afirmar que se ve “4 veces mejor”). Si a esto le añadimos soporte para, al menos, el

doble de funciones de HTML5 respecto a IE9, Windows Phone 8 se convierte en el

mejor y más rápido visualizador móvil de web.

5.- HERRAMIENTAS DE DESARROLLO

Aunque disponemos del hermano mayor en cuanto a herramientas de desarrollo se

refiere, Microsoft Visual Studio 2012, en este capítulo veremos cuáles son las

herramientas de desarrollo que de forma independiente y gratuita tenemos, las llamadas

versiones Express de ambos mundos.

Nota: Los ejemplos de este libro están desarrollados bajo las versiones

Express de las herramientas de desarrollo, salvo cuando se trate de ejemplos que

comprenden ambas tecnologías. En este caso utilizaremos la versión “de pago”

de Visual Studio 2012 ya que dichas versiones express solo se pueden usar para

desarrollar en la plataforma correspondiente.

5.1.- Herramientas para Windows 8

Dentro del centro de desarrollo de aplicaciones Windows Store2 para Windows 8

podemos descargarnos las herramientas y el SDK necesario para comenzar a

desarrollar aplicaciones. (Figura 6)

2 Se puede visitar en http://msdn.microsoft.com/es-es/windows/apps

Page 29: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 31

Figura 6.- Centro de desarrollo

Una vez descargadas las herramientas de desarrollo, el proceso de instalación es

muy sencillo, aunque algo tedioso. Hacer la instalación completa, así como la descarga

e instalación de complementos a dichas herramientas, aunque se realizará de forma

totalmente automática, lleva bastante tiempo.

Junto con Visual Studio 2012 Express para Windows 8 y el SDK de desarrollo, se

instala Blend para Visual Studio, que es la herramienta de diseño para nuestros ficheros

XAML; un simulador del sistema y el Windows App Certification Kit.

Figura 7.- Instalación de Visual Studio Express

Page 30: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

32 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

5.1.1.- Visual Studio Express para Windows 8

Una vez instaladas todas las herramientas tendremos a nuestra disposición todo lo

necesario para desarrollar aplicaciones Windows Store para Windows 8, siendo Visual

Studio la herramienta principal. En la pantalla de inicio de Visual Studio podremos

seleccionar un proyecto de inicio tal y como se muestra en la figura 9, pero antes de

comenzar deberemos de obtener una licencia de desarrollador para crear nuestras

aplicaciones (Figura 8).

Figura 8.- Obtención de licencia de desarrollo

Dicha licencia permite desarrollar y probar aplicaciones Windows Store antes de

que la tienda de Microsoft las certifique, concepto del que hablaremos mas adelante.

Las licencias de desarrollador son gratuitas y se pueden obtener tantas como se

precisen, simplemente registrándonos con nuestro Windows Live ID. La licencia se

proporciona por equipo.

Figura 9.- Nuevo proyecto en Visual Studio Express para Windows 8

Page 31: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 33

Dentro de los proyectos de los que disponemos para crear nuestra aplicación

destacan cuatro grupos de plantillas: aplicaciones desarrolladas con JavaScript,

aplicaciones en Visual Basic .Net, aplicaciones realizadas en C# y por último

aplicaciones en código nativo con C++.

Realmente, todas las plantillas de proyectos que se nos muestran se podrían dividir

en cuatro grupos:

Proyectos de aplicación. Desde un proyecto en blanco hasta proyectos con

lógica ya implementada los cuales pueden servirnos de ejemplo para

comenzar a desarrollar nuestras aplicaciones. Por ejemplo, los proyectos

de Grid App (varias páginas con navegación entre grupos de elementos),

Split App (dos páginas con elementos agrupados y navegación entre ellas),

Aplicación de diseño fijo (sólo disponible en plantillas JavaScript, sirve

para realizar una aplicación que escala un diseño con relación de aspecto

fija) y Aplicación de navegación (sólo disponible en plantillas JavaScript,

puede utilizarse como base para una aplicación con controles predefinidos para la navegación)

Windows Runtime Component. Proyecto de componentes que puede

crearse en cualquier lenguaje exceptuando los proyectos JavaScript.

Class Library. Proyecto de biblioteca de clases en los lenguajes Visual

Basic .Net y C#. Para proyectos en C++, en vez de biblioteca de clases, si

creamos un proyecto Static Library podremos hacer en él una biblioteca

estática nativa.

Unit Test Library. No disponible en los proyectos de JavaScript.

Constituye un proyecto para contener pruebas unitarias. Las usaremos para probar tanto nuestras aplicaciones como nuestras librerías de clases.

En el lenguaje nativo C++ disponemos de dos tipos de plantillas de proyectos más,

la plantilla de Direct2D que usa XAML y la plantilla de Direct3D.

5.1.2.- Microsoft Blend para Visual Studio

Dentro de la suite de aplicaciones y complementos que se instalan al descargar el

SDK para desarrollar aplicaciones para Windows 8, un complemento excepcional para

crear interfaces de usuario en leguaje XAML es Blend (Figura 10).

Cabe destacar la eliminación en el nombre del producto de la palabra Expression.

Blend ha formado parte de la suite Expression de Microsoft desde sus orígenes,

constituyendo ésta la versión 5.0 de la misma. Sin embargo, en lugar de llamarse Microsoft Expression Blend 5.0, se denomina simplemente Blend para Visual Studio

2012. Aunque esta versión es totalmente funcional, sólo nos instala y muestra plantillas

para desarrollar aplicaciones Windows Store para Windows 8.

Page 32: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

34 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Figura 10.- Blend para Visual Studio 2012

5.1.3.- Simulador de Windows 8

Otra parte de las herramientas instaladas es un completo simulador en formato

Tablet con Windows 8 (Figura 11).

Figura 11.- Pantalla de inicio mostrada en el simulador

Page 33: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 35

Como explicaremos más adelante, para probar nuestras aplicaciones las

desplegaremos directamente sobre nuestro sistema, o bien, podremos testearlas bajo

este simulador. Esta opción nos dará una experiencia y visión más completa de todas

las características que se encuentran en un dispositivo que incorpora Windows 8. Por

otro lado, sería bastante complejo, por no decir imposible, comprobar estados como el

giro de la pantalla en un ordenador de escritorio o el multitouch sin una pantalla táctil.

En la parte derecha del simulador se muestran las herramientas que son:

Emuladores gestuales.

Los primeros botones de nuestro simulador nos proporcionan la experiencia necesaria

para emular comportamientos táctiles en la pantalla.

El modo mouse es el modo normal, sin emulación alguna; es la opción en la cual

simularemos el control del dispositivo con un ratón.

Modo táctil básico. Emulamos la interacción táctil con un solo dedo, es decir,

permite realizar los eventos de tapping, dragging y swiping.

Modo de emulación táctil para zoom. Imitaremos los gestos de ampliación de

zoom y de reducción3 de zoom con dos dedos.

Emulación de gestos de rotación. Gestos realizados con dos dedos para emular la

rotación de los mismos: un dedo lo dejamos quieto mientras giramos el otro.

Simulación de rotación del dispositivo.

Estos dos botones nos permiten realizar y simular el giro del dispositivo

90º tanto en el sentido de las agujas del reloj como en sentido opuesto.

Cambio en el tamaño de pantalla y la resolución

Mediante el siguiente botón podremos ajustar el tamaño de la pantalla de

nuestro simulador, así como la resolución de pantalla del mismo. Actualmente el

simulador nos ofrece las combinaciones mostradas en la figura 12

3 Comúnmente se denomina zoom al gesto de aumentar la ampliación y pinch (pellizcar)

al gesto de reducir zoom.

Page 34: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

36 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Figura12.- Diferentes resoluciones posibles en el simulador

Localización

También es posible gestionar la localización del dispositivo para su posterior uso

como coordenada de posición. Para ello indicaremos los datos longitud y latitud

en grados, altitud en metros y la precisión de los datos de longitud y latitud en

metros.

Gestión de ScreenShots4

Mediante estos dos botones se maneja la captura de screenshots de la

pantalla de nuestro simulador. Mientras que el primero de ellos

simplemente toma dichos screenshots, el segundo botón nos permite configurar el

destino de los ficheros generados y acceder directamente a la carpeta que los contiene.

Nota: En todo momento estamos hablando de simulador y no de emulador, ya

que realmente el sistema genera una sesión de terminal server5 contra nuestro

propio equipo añadiéndonos las características citadas anteriormente. En ningún

momento se emula nada, sino que es un sistema completo.

5.1.4.- Windows App Certification Kit

Toda aplicación Windows Store desarrollada para ser instalada en equipos de

terceros, antes de estar disponible en la Store, deberá ser certificada por Microsoft.

Pues bien, esta herramienta nos ayudará a tener un conocimiento previo de qué es lo

que está bien y lo qué no, en nuestra aplicación. Así, ahorraremos tiempo en el proceso

4 Captura de pantalla literal de lo que aparece en nuestro simulador. 5 Terminal Services o Servicios de Escritorio Remoto, es un componente que permite

acceder a la gestión remota de un equipo mediante el protocolo RDP.

Page 35: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 37

de certificación y enviaremos las aplicaciones listas y dispuestas para superar dicho

requisito.

Lo primero que solicita el App Certification Kit es que indiquemos qué aplicación

queremos someter a las pruebas pertinentes. Una vez seleccionada, el Certification Kit

lanzará repetidas veces nuestra aplicación, la cerrará e interactuará con ella de forma

totalmente automatizada. Es muy importante que una vez haya empezado el proceso

nosotros no hagamos ninguna modificación en la aplicación ya que podría dar lugar a

falsos errores. Pasado un tiempo nos mostrará el resultado del test, Passed si es

correcto o Failed si es incorrecto, y nos dará la posibilidad de grabar los resultados en

un fichero XML y de visualizarlos en una página web (véase Figura 13)

El Windows App Certification Kit, no sólo valida aplicaciones Windows Store para

su envío a la Store, sino que también es útil para saber si las aplicaciones de escritorio

cumplen los requerimientos de Microsoft, aunque éstas no pueden ser enviadas a la

Store.

Figura 13.- Resultados del kit de certificación

5.2.- Herramientas para Windows Phone 8

Al igual que disponemos de un centro de desarrollo para aplicaciones Windows

Store, existe una página web6 en donde podemos descargarnos todo el material y el

SDK necesario para desarrollar aplicaciones Windows Phone 8.

6 Se puede visitar en http://dev.windowsphone.com

Page 36: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

38 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Figura 14.- Página principal del Dev Center

Dicha web es la continuación en el tiempo de la usada para el desarrollo de

aplicaciones de Windows Phone 7, el App Hub de Microsoft. Ahora es conocida como

Dev Center de Windows Phone. En la Figura 14 se muestra la página principal de dicha

web.

Igual que ocurría con el SDK de Windows 8, éste no es únicamente la versión para

Windows Phone 8 de Visual Studio 2012, sino que además incorpora muchas más

herramientas para ayudarnos a hacer desarrollos en esta nueva plataforma. Entre las

herramientas complementarias se encuentra las siguientes:

Blend para Visual Studio 2012 con las plantillas de Windows Phone 8.

Emulador de Windows Phone.

Application Deployment Tool.

Windows Phone Developer Registration.

Isolated Storage Explorer.

Simulation Dashboard para Windows Phone.

Windows Phone Application Analysis.

Windows Phone Store Test Kit.

Se trata de un conjunto de aplicaciones y herramientas bastante extenso.

Page 37: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 39

5.2.1.- Visual Studio Express para Windows Phone 8

Figura 15.- Instalación del SDK de Windows Phone 8

Igual que para la versión de Windows 8, la descarga e instalación de la herramienta

de Visual Studio Express para Windows Phone 8 y sus complementos (Figura 15), es

sencilla y transparente. Una vez instalada disponemos de una serie de nuevas plantillas,

separadas en dos grandes grupos, para crear nuestras aplicaciones para Windows Phone

8.

Por un lado las plantillas disponibles (Figura 16) para los lenguajes C# y VB.Net:

Figura 16.- Pantalla de selección de nuevo proyecto

Page 38: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

40 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Windows Phone App. Es la plantilla base para toda aplicación Windows

Phone e incluye: una página por defecto con los estilos de Windows Phone,

archivos de imagen para la pantalla de inicio e iconos, tanto para la

aplicación como para los tiles en sus diferentes tamaños. Todo ello dentro

de la carpeta “Assets”, pudiendo ser sustituido por los nuestros si lo deseamos y listo para ejecutar con solo pulsar F5.

Windows Phone Databound Application. Esta plantilla es exactamente

igual a la plantilla base anterior, pero con el añadido de que en la página

creada tenemos: una listbox con una plantilla de datos simple, una carpeta

“SampleData” con datos de ejemplo y una carpeta “ViewModels” con clases MVVM listas para ser usadas.

Windows Phone Class Library. Se trata de un proyecto para generar una

librería de clases que podamos consumir desde una aplicación Windows Phone.

Windows Phone Panorama Application. Al igual que la plantilla base se

trata de un proyecto Windows Phone estándar, pero se ha sustituido el

contenido por defecto por un control Panorama. Este control permite tener

elementos que ocupen más que el ancho de la pantalla y poder movernos

por ellos simplemente desplazándonos de derecha a izquierda, en una rueda

sin fin. Asimismo combina también los elementos incluidos en la plantilla

Databound Application, como son los SampleDatas y las clases de MVVM, en la carpeta “ViewModels”.

Windows Phone Pivot Application. Similar al proyecto Panorama

Application, pero en este caso sustituyendo el contenido por defecto por un

control Pivot. Este control se comporta de forma parecida a un control de

pestañas, tenemos secciones que ocupan la pantalla y podemos navegar por

ellas pulsando sobre el título superior o, simplemente, desplazándonos con gestos de derecha a izquierda o viceversa.

Windows Phone XAML and Direct3D Application. Nuevo tipo de

proyecto que aparece en Windows Phone 8. Con él podremos crear una

aplicación de código manejado (C# o VB.Net) que interaccione con código

nativo. Nos permite hacer, de forma fácil y rápida, una interfaz de usuario

creada totalmente en WinRT (con C# o VB.Net) con gráficos en 3D de alta

calidad generados usando DirectX. Esta plantilla viene a sustituir a la

anterior que se denominaba “Silverlight and XNA Application” en donde

podríamos hacer exactamente lo mismo pero con código Silverlight y

código XNA.

Windows Phone XAML and XNA Application. Tipo de proyecto similar al

comentado anteriormente. Podremos combinar código manejado (C# o

VB.Net) junto con la renderización de gráficos utilizando el framework

Page 39: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 41

XNA. Este tipo de proyecto en principio tiene la función de estar aquí por

compatibilidad con código anterior. El framework XNA solo está

disponible para desarrollar aplicaciones en la versión 7.1 del sistema y Microsoft no seguirá dándole soporte.

Windows Phone HTML5 Application. Este tipo de proyecto también es

nuevo y aparece por primera vez en Windows Phone 8. Básicamente nos

otorga la facilidad de crear una aplicación que utiliza contenido HTML,

creando una página XAML con un navegador web y un archivo html de

ejemplo listo para mostrar.

Windows Phone Audio Playback Agent. Plantilla de proyecto para crear un agente que se ejecuta en segundo plano para reproducir música.

Windows Phone Audio Streaming Agent. Plantilla de proyecto similar al

anterior, salvo que ahora reproduciremos la música por medio de streaming

sin necesidad de que aquélla se encuentre directamente en el teléfono.

Windows Phone Scheduled Task Agent. Esto tipo de proyecto nos permite

ejecutar tareas de propósito general en el teléfono en segundo plano sin

necesidad de una interfaz de usuario.

No es el cometido de este libro explicar cómo desarrollar aplicaciones para la

versión anterior de Windows Phone, Windows Phone 7.17. Sin embargo, sí deberíamos

saber identificar de forma rápida qué plantillas son únicas y exclusivas para hacer

desarrollos en dicha versión. Todas las plantillas explicadas hasta el momento son

aptas para ambas versiones, a excepción de la plantilla de “Windows Phone XAML

and Direct3D Application” que sólo está disponible para Windows Phone 8. A la hora

de crear un nuevo proyecto y seleccionar la plantilla adecuada, nos aparecerá un

selector (Figura 17) en donde indicaremos sobre qué versión del sistema deseamos

trabajar, Windows Phone 7.1 o Windows Phone 8.

Figura 17.- Selector de Framework de destino

7 La versión de producto 7.5 de Windows Phone es la versión 7.1 de desarrollo.

Page 40: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

42 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

Asimismo existen plantillas que sólo permiten realizar aplicaciones para Windows

Phone 7.1. Todas ellas están contenidas en la sección de XNA Game Studio 4.0 y la

plantilla Windows Phone Silverlight and XNA Application.

A principio de este epígrafe dijimos que agrupábamos las plantillas o tipos de

aplicaciones en dos grandes grupos. El primer grupo, formado por las plantillas para

C# y VB.Net, es al que nos hemos estado refiriendo hasta ahora. El segundo grupo está

formado por las plantillas para desarrollo de aplicaciones de código nativo,

aplicaciones desarrolladas en C++. Dentro de estas aplicaciones disponemos de las

siguientes plantillas:

Windows Phone Direct3D App. Aplicación base para poder crear un

proyecto que usa DirectX desarrollado en código nativo. Al igual que el

proyecto base de aplicaciones para código manejado, se incluyen en el

mismo diferentes elementos para facilitarnos el trabajo de desarrollo, como

son los iconos de la aplicación dentro de la carpeta “Assets”, y demás

elementos comunes a una aplicación 3D.

Windows Phone Runtime Component. Este tipo de plantilla nos permite

crear componentes propios con código nativo. Podremos posteriormente

utilizar estos controles y componentes en aplicaciones tanto de código

nativo como de código manejado. Sería la plantilla análoga para C++ a una Windows Phone Class Library en C# o VB.Net

Empty Dinamic Link Library. Con esta plantilla disponemos de la

posibilidad de crear una biblioteca de enlace dinámico, más conocida como

DLL en sus siglas en inglés. Con ella generamos archivos de código

ejecutable que podremos cargar a demanda en otra aplicación de Windows

Phone.

Empty Static Library. Al igual que podemos generar una DLL, también

podremos generar un proyecto de biblioteca estática o LIB en sus siglas en

inglés, la cual podremos usar para compilarlas junto a otra aplicación de

Windows Phone.

Nota: Debemos destacar que estas plantillas sólo están disponibles para la

versión 8 de Windows Phone.

5.2.2.- Blend para Visual Studio 2012 No nos extenderemos mucho en este punto ya que la aplicación que instala el SDK

de Windows Phone 8 es exactamente la misma que instala el SDK de Windows 8;

salvo en las plantillas que tenemos a nuestra disposición: obviamente en este caso

Page 41: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 43

tendremos acceso a las plantillas específicas para Windows Phone 8 anteriormente

descritas.

5.2.3.- Emulador de Windows Phone 8

Junto con nuestras herramientas de desarrollo se entrega también un completo

emulador del sistema operativo Windows Phone 8. Contamos con las mismas

herramientas adicionales que ya teníamos en la versión anterior del sistema, a saber: el

emulador de GPS, la emulación del acelerómetro, la posibilidad de adaptar la

visualización a modo landscape o portrait y la posibilidad de capturar screenshots de

la pantalla.

Pero, en este caso, existen dos grandes diferencias con respecto a la anterior versión

del emulador. La primera de ellas es la disponibilidad de un sistema completo. El

emulador de la versión 7.1 disponía de una funcionalidad muy limitada en cuanto a

aplicaciones preinstaladas del sistema que podíamos encontrar en un teléfono físico.

Ahora, con Windows Phone 8, el emulador es completo, o casi (Figura 18). Ahora

disponemos de todas las aplicaciones del sistema que nos encontraremos en cualquier

terminal pudiendo así probar una experiencia mucho más real y completa.

Figura 18.- Start Screen de Windows Phone 8 vista en el emulador

Page 42: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

44 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

La segunda característica diferenciadora a destacar es el entorno de ejecución. En

este caso, el emulador está alojado en un entorno virtualizado bajo Hyper-V, tecnología

de virtualización de Windows 8. Por ello, para ejecutar el emulador deberemos

disponer de un equipo con soporte por hardware para esta característica. Los requisitos

mínimos para la ejecución del emulador de Windows Phone 8 son Windows 8 de 64

bits y soporte para virtualización por hardware. Un punto muy importante, antes de

acometer la instalación de las herramientas, será el tener las herramientas de Hyper-V

instaladas en nuestro sistema Windows 8.

El nuevo emulador de Windows Phone 8 nos ofrece una serie de atajos de teclado

que nos permitirán realizar diferentes acciones, tales como bloquear la pantalla, iniciar

la cámara, buscar, subir y bajar volumen… podemos ver estos atajos de teclado en la

siguiente tabla 1.1

Tabla 1.- Atajos de teclado del emulador de Windows Phone 8.

Tecla Acción

F1 Botón Atrás.

F1 (presionado varios segundos) Panel de aplicaciones iniciadas.

F2 Ir a la pantalla de inicio.

F3 Abrir Bing search.

F7 Cámara.

F9/F10 Bajar/Subir volumen.

F12 Apagar/Encender pantalla.

5.2.4.- Application Deployment Tool

Esta herramienta nos permitirá desplegar aplicaciones en formato XAP al emulador

o a un dispositivo desbloqueado para desarrollo. De esta forma podremos probar las

aplicaciones fuera del entorno de Visual Studio.

5.2.5.- Windows Phone Developer Registration

Gracias a esta herramienta podremos registrar un dispositivo físico Windows Phone

con nuestra cuenta de desarrolladores de Windows Phone Store. De esta forma este

dispositivo quedará desbloqueado para desarrollo y podremos depurar y desplegar

aplicaciones en él.

Para el correcto funcionamiento de la herramienta deberemos tener el dispositivo

conectado al PC, sincronizado con el software Zune y la pantalla inicial de Windows

Phone; si el dispositivo está apagado o con el bloqueo de pantalla fallará. No es necesario que la cuenta del LiveID del dispositivo sea la misma que usamos

en la Windows Phone Store, además debemos recordar que el límite de dispositivos

desbloqueados es de cinco por cada cuenta de la Store.

Page 43: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 45

5.2.6.- Isolated Storage Explorer

El Isolated Storage Explorer es una herramienta de línea de comandos que nos

permitirá listar, copiar, y remplazar ficheros y directorios del almacenamiento aislado

de nuestras aplicaciones desplegadas, tanto en nuestro emulador, como en un

dispositivo desbloqueado y registrado para desarrollo.

La herramienta, ISETool.exe se encuentra en la ruta:

Program Files\Microsoft SDKs\Windows Phone\v8.0\Tools\IsolatedStorageExplorerTool

para sistemas de 64 bits o dentro de

Program Files (x86)\Microsoft SDKs\WindowsPhone\v8.0\Tools\IsolatedStorageExplorerTool

para sistemas de 32bits.

Como ejemplo, la sintaxis de la herramienta es la que se muestra en el código.

ISETool.exe <ts|rs|dir[:device-folder]> <xd|de> <Product GUID>

[<desktop-path>]

5.2.7.- Simulation Dashboard para Windows Phone

Una aplicación móvil es especialmente vulnerable a los comportamientos

inesperados de los usuarios, a las limitaciones de los dispositivos y redes en las que se

ejecuta, a la ubicación en donde está siendo utilizado, y a muchas posibles

interrupciones que se producen en un dispositivo móvil. El nuevo complemento

incluido en este SDK, el Simulation Dashboard (Figura 19), nos da la opción de validar

de antemano el comportamiento de nuestra aplicación en un entorno aparentemente

real. Podemos acceder al Simulation Dashboard desde Visual Studio, en el menú

Herramientas > Simulation Dashboard.

Con el Simulation Dashboard podremos emular básicamente tres aspectos muy

importantes a la hora de comprobar el funcionamiento de una aplicación en un entorno

real.

Simulación de señal de red. Podremos simular la disponibilidad de red de

datos, tanto para redes de telefonía móvil en 2G, 3G o 4G (conocido

también como LTE), como para redes WiFi, o la no disponibilidad de red

alguna. También como apreciamos en la figura, podremos simular, siempre y cuando seleccionemos un tipo de red, qué disponibilidad de señal

tenemos (una calidad de señal buena, regular o mala). Esta característica

Page 44: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

46 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

afectará a la velocidad de descarga y carga de datos8, a la latencia de la red9

y a la tasa de pérdida de datos10, dependiendo del tipo de red seleccionada en cada momento.

Simulación de bloqueo. Con esta opción podremos simular la activación o

la desactivación de la pantalla de bloqueo de nuestro terminal. Nos servirá

para probar si nuestra aplicación responde de la forma esperada a los

estados de comportamiento de una aplicación Windows Phone. También

podemos usarla, si por ejemplo disponemos de un desarrollo que gestiona

los servicios de localización en segundo plano, para ver si éstos funcionan con la pantalla de bloqueo activada.

Simulación de interrupción. Podremos simular la activación de un

recordatorio en el teléfono para probar cómo se comporta nuestra

aplicación cuando es interrumpida o parcialmente obscurecida11.

Figura 19.- Simulation Dashboard

8 Velocidad de carga (upload) y descarga (download) de datos por la red. 9 Latencia unidireccional o retraso, mide cuánto tiempo tarda un paquete de datos en

alcanzar su destino. 10 La tasa de pérdida se expresa con un valor entre 0 y 1. Una tasa de pérdida por

ejemplo de 0,02 significa que se pierde el 2% de los paquetes enviados o recibidos. 11 Obscurecido u Obscured, en inglés, es uno de los eventos que pueden ser disparados

por el sistema.

Page 45: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

Windows 8 y Windows Phone 8 47

5.2.8.- Windows Phone Application Analysis

La Windows Phone Application Analysis es una herramienta de monitorización y

generación de perfiles (monitoring and profiling) que nos permitirá evaluar, y por

consiguiente mejorar, la calidad y el rendimiento de nuestras aplicaciones.

Capturaremos las medidas y rendimientos de nuestra aplicación en el ejercicio de sus

funciones.

Cada vez que ejecutamos esta herramienta se crea un archivo en la carpeta del

proyecto que contiene la información con los resultados de cada evaluación. Cuando

seleccionamos dicho fichero el contenido del mismo se muestra dentro de Visual

Studio y los resultados se presentan en una serie de tablas y gráficos que contienen

información adicional. (Figura 20)

Windows Phone Application Analysis nos indica entre otros conceptos el uso de la

CPU, el uso de la memoria, el frame rate de nuestra aplicación, etc.

Los gráficos y datos suministrados por esta herramienta son tan extensos, y las

conclusiones que podemos sacar de ellos tan variopintas, que para su interpretación

haría falta un libro entero dedicado en exclusiva a su análisis. Por lo tanto, en esta

sección simplemente presentamos la herramienta y animamos de forma encarecida al

lector a que indague dentro de la misma.

Figura 20.- Resultados en formato gráfico obtenidos de un análisis.

Page 46: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press

48 Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#

5.2.9.- Windows Phone Store Test Kit

Dentro de Visual Studio 2012 Express para Windows Phone, en el menú de

Proyecto, disponemos de la opción de lanzar el Windows Phone Store Test Kit. Esta

herramienta proporciona un conjunto de pruebas automatizadas y manuales que nos

ayudarán a preparar nuestras aplicaciones para que superen la certificación pertinente

para estar disponibles en el Store de Windows Phone. (Figura 1.21)

Figura 21.- Parte del Store Test Kit

Dentro del Kit de test hay de tres secciones. En la primera de ellas indicamos qué

imágenes vamos a utilizar para su uso futuro en el Windows Phone Store, imágenes de

tiles y screenshots, e indicamos también cuál es nuestro fichero de empaquetado de

aplicación, el fichero XAP de nuestra aplicación.

En la segunda pestaña se realizarán de forma automatizada una serie de pruebas y se

nos mostrará el estado y resultado de las mismas. Por último, en la tercera pestaña, se

muestran una serie de pruebas que deberemos de ir realizando de forma manual para

comprobar que nuestra aplicación responde de forma correcta según diferentes pautas

de comportamiento. Tras realizar dichas pruebas deberemos de ir señalando en cada

una de ellas si el resultado obtenido al hacer la prueba de forma manual es el esperado

o no.

Page 47: 119660895 Desarrollo en Windows 8 y Windows Phone 8 Con XAML y C VVAA Krasis Press