Professional Documents
Culture Documents
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 das ausente tras el teclado. Tambin 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 da. A todos, gracias con el corazn.
Josu Yeray Julin
Cuando hace ya unos cuantos meses, Yeray y yo decidimos escribir este libro, jams
me hubiera imaginado que fuera a ser una de las tareas ms 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 sueo y por supuesto a mi familia. Por esa razn, solo puedo
agradecer a mi mujer Susana y a mi hija Celia, su inmensa paciencia al verle un da s
y otro tambin pegado al porttil, 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
Ibn Landa
Contenido
AGRADECIMIENTOS ................................................................................................ iii
CONTENIDO .............................................................................................................. iv
AUTORES ..................................................................................................................xiii
PRLOGO JOS BONNIN - MICROSOFT ........................................................... xv
PRLOGO SCAR GUTIRREZ - NOKIA ......................................................... xvii
CAPTULO 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 prcticas. ............................................................................... 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 caractersticas ............................................................................................. 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.- Multiresolucin 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
5.2.2.5.2.3.5.2.4.5.2.5.5.2.6.5.2.7.5.2.8.5.2.9.-
7.8.-
Introduccin................................................................................................................................ 49
Enlace a datos ............................................................................................................................. 51
ViewModel................................................................................................................................... 53
Notificacin de cambios .......................................................................................................... 56
4.1.- ViewModel Base ............................................................................................................. 58
Converters .................................................................................................................................. 59
Comandos ................................................................................................................................... 64
6.1.- CanExecuteChanged ..................................................................................................... 67
6.2.- DelegateCommand........................................................................................................ 70
6.2.1.- Lazy<T>.................................................................................................................... 73
ViewModel Locator................................................................................................................... 74
Nomenclatura y organizacin................................................................................................. 76
8.1.- Nomenclatura ................................................................................................................. 77
8.2.- Organizacin ................................................................................................................... 77
Contenido vii
Contenido ix
Contenido xi
Autores
Josu Yeray Julin
Tiene ms de 10 aos de experiencia trabajando con
tecnologas 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 espaoles, dando charlas
all donde le dejan. Ha sido reconocido con los galardones Nokia
Developer Champion y Microsoft MVP en la categora de
Windows Phone development. Trabaja en Plain Concepts.
Rafael Serna
Jefe de producto en SDM Programas, programador de
nacimiento e inquieto informticamente hablando hasta el extremo.
Trabaja desde hace ya ms de 12 aos desarrollando aplicaciones
de gestin para la pequea y mediana empresa, con tecnologas
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.
Ibn Landa:
Lleva ms de 10 aos dedicado al desarrollo de software, con el
que ha tenido la oportunidad de trabajar en diferentes entornos y
tecnologas. 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
formacin, talleres y giras de producto. Ha sido reconocido con el
galardn de Microsoft MVP en la categora de Windows Azure.
Trabaja en Plain Concepts.
CAPTULO
Windows 8 y Windows
Phone 8
1.1.- Objetivos
A continuacin expondremos cules son los objetivos de este libro.
En primer lugar, veremos las nuevas y renovadas herramientas que tenemos a
nuestra disposicin para desarrollar aplicaciones Windows Store para Windows 8, y
aplicaciones Windows Phone 8. Una vez conocidas y revisadas estas herramientas se
sentarn 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 patrn MVVM!, adems de otras buenas prcticas para
desarrollar nuestros proyectos. Entre otras veremos el patrn Model View ViewModel,
la inyeccin de dependencias, qu son y para qu sirven los test unitarios, etc
Para afianzar los conocimientos adquiridos sobre buenas prcticas en el desarrollo
de software, nos pondremos manos a la obra descubriendo y desarrollando las nuevas
caractersticas que se incorporan en el paradigma del desarrollo de las aplicaciones
Windows Store.
19
En definitiva, este libro trata de cubrir dos grandes reas, a saber: por un lado, ver
cmo desarrollar para Windows 8 y Windows Phone 8 de forma casi simultnea; para
ello haremos uso de patrones de diseo y buenas prcticas en el desarrollo de software.
En segundo lugar repasaremos de forma concisa las nuevas caractersticas, elementos,
reglas y prcticas 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
cules son las mejores prcticas en el desarrollo de software, y un desarrollador ms
avanzado conocer cules son las novedades que incorporan los nuevos sistemas
Windows 8 y Windows Phone 8, pudiendo adems revisar sus conocimientos de
patrones y buenas prcticas.
1.2.- Estructura
Como ya hemos comentado previamente, el libro se estructura en tres bloques:
3.1.3.- Sensores
Debido principalmente a su adaptacin para la ejecucin en tabletas, Windows 8
integra en su sistema el soporte nativo para seis sensores:
Magnetmetro.
Giroscopio.
Acelermetro.
Sensor de inclinacin.
Sensor de iluminacin.
Sensor de Orientacin
Desarrollo sobre cdigo nativo en C++, con una interfaz grfica basada en
XAML.
Con respecto a estos dos caminos existen varias cosas importantes a tener en cuenta.
Las aplicaciones Windows Store podrn ser ejecutadas sin ningn tipo de
modificacin, tanto en dispositivos x86 como en dispositivos ARM. Sin embargo, las
aplicaciones de escritorio no estarn 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 pequeo detalle: continuamente
estamos hablando del trmino 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 patrn de diseo definido
bajo los estndares que Microsoft ha creado a tal efecto. Cuando nos referimos a
4.1.2.- NFC
De la misma forma que Windows 8 incorpora soporte nativo para este sistema de
comunicacin, lo hace tambin Windows Phone 8.
A pesar de que Windows Phone 7 ya posea soporte para esta tecnologa
inalmbrica, es ahora cuando realmente podremos utilizarla, ya que antes no haba
dispositivos que la implementaran. Es con Windows Phone 8 cuando el uso de esta
tecnologa realmente despega, ya que el propio sistema incorpora una aplicacin
concebida para hacer uso intensivo de la misma: la aplicacin Wallet Hub.
Al igual que en WinRT, WinPRT incorpora APIs especficas para el control de
NFC y Bluetooth en nuestras aplicaciones, algo imposible en Windows Phone 7.X.
nuestros bloques. Partiendo del tamao estndar visto hasta el momento, conocido
como tamao medio o medium size, es aadido el tamao pequeo, cuya medida es una
cuarta parte de la correspondiente al tamao medio. El tercer tamao es el tamao
grande o large size, que tiene la misma altura que el tamao medio pero mide el doble
en horizontal.
Dentro de los proyectos de los que disponemos para crear nuestra aplicacin
destacan cuatro grupos de plantillas: aplicaciones desarrolladas con JavaScript,
aplicaciones en Visual Basic .Net, aplicaciones realizadas en C# y por ltimo
aplicaciones en cdigo nativo con C++.
Realmente, todas las plantillas de proyectos que se nos muestran se podran dividir
en cuatro grupos:
Localizacin
Tambin es posible gestionar la localizacin del dispositivo para su posterior uso
como coordenada de posicin. Para ello indicaremos los datos longitud y latitud
en grados, altitud en metros y la precisin de los datos de longitud y latitud en
metros.
Gestin 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 botn 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 sesin de terminal server 5 contra nuestro
propio equipo aadindonos las caractersticas citadas anteriormente. En ningn
momento se emula nada, sino que es un sistema completo.
Blend para Visual Studio 2012 con las plantillas de Windows Phone 8.
XNA. Este tipo de proyecto en principio tiene la funcin de estar aqu por
compatibilidad con cdigo anterior. El framework XNA solo est
disponible para desarrollar aplicaciones en la versin 7.1 del sistema y
Microsoft no seguir dndole soporte.
Windows Phone Scheduled Task Agent. Esto tipo de proyecto nos permite
ejecutar tareas de propsito general en el telfono en segundo plano sin
necesidad de una interfaz de usuario.
Asimismo existen plantillas que slo permiten realizar aplicaciones para Windows
Phone 7.1. Todas ellas estn contenidas en la seccin de XNA Game Studio 4.0 y la
plantilla Windows Phone Silverlight and XNA Application.
A principio de este epgrafe dijimos que agrupbamos 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 cdigo nativo,
aplicaciones desarrolladas en C++. Dentro de estas aplicaciones disponemos de las
siguientes plantillas:
Empty Static Library. Al igual que podemos generar una DLL, tambin
podremos generar un proyecto de biblioteca esttica o LIB en sus siglas en
ingls, la cual podremos usar para compilarlas junto a otra aplicacin de
Windows Phone.
Nota: Debemos destacar que estas plantillas slo estn disponibles para la
versin 8 de Windows Phone.
Tecla
F1
F1 (presionado varios segundos)
F2
F3
F7
F9/F10
F12
Accin
Botn Atrs.
Panel de aplicaciones iniciadas.
Ir a la pantalla de inicio.
Abrir Bing search.
Cmara.
Bajar/Subir volumen.
Apagar/Encender pantalla.
Dentro del Kit de test hay de tres secciones. En la primera de ellas indicamos qu
imgenes vamos a utilizar para su uso futuro en el Windows Phone Store, imgenes de
tiles y screenshots, e indicamos tambin cul es nuestro fichero de empaquetado de
aplicacin, el fichero XAP de nuestra aplicacin.
En la segunda pestaa se realizarn de forma automatizada una serie de pruebas y se
nos mostrar el estado y resultado de las mismas. Por ltimo, en la tercera pestaa, se
muestran una serie de pruebas que deberemos de ir realizando de forma manual para
comprobar que nuestra aplicacin responde de forma correcta segn diferentes pautas
de comportamiento. Tras realizar dichas pruebas deberemos de ir sealando en cada
una de ellas si el resultado obtenido al hacer la prueba de forma manual es el esperado
o no.