Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#, análisis del libro

Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#, análisis del libro
Sin comentarios Facebook Twitter Flipboard E-mail

Para los desarrolladores en el ecosistema Microsoft, estamos en una época especialmente interesante con una apuesta muy importante, a la altura de la comercialización del IBM PC o de Windows 95.

Las novedades no paran de presentarse desde 2008, a un ritmo endiablado de sostener; mantenerse, al menos, al corriente de las principales evoluciones de los sistemas, productos y herramientas requiere estudiar permanentemente.

Por ello hoy quiero hacer un análisis de una reciente publicación que representa un impresionante manual de introducción avanzado al Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#.

Sobre los autores, colaboradores y editores


Josue, Rafa e Ibón

Aunque este artículo va a ser acompañado en breve con una larga conversación con los autores, si quisiera señalar que entre los tres reúnen más de 30 años de experiencia en el desarrollo. Es decir es un libro escrito por y para desarrolladores.

Josué Yeray y Rafael Serna ya visitaron las páginas de GenbetaDev en un artículo sobre Windows Phone Controla, podcast y screencast de desarrollo en wp7, constituyendo una de las parejas más reconocidas del panorama nacional de Windows Phone 8. Además, Josué e Ibon Landa, son MVP (Most Value Professional); un importante reconocimiento de Microsoft a los profesionales que no pertenecen a la compañía pero que realizan un gran aporte continuado a la comunidad, que por su parte los propone y vota.

También es de reseñar que la propia Nokia ha prestado su colaboración en el trabajo de construcción del libro, reconociendo el trabajo para la comunidad de Josue al nombrarlo Nokia Developer Champion en el 2011.

Y por último, pero no por ello menos importante, el trabajo de editorial de José Manuel Alarcón (otro MVP) que, frente a Krasis Press, ha ayudado a imprimir y distribuir esta magnífica obra.

Contenido en fondo y forma orientado al desarrollo


En un lenguaje sencillo, nos llevan los autores de la mano, con profusión de código de ejemplo, en un continuo aprendizaje paso a paso desde el más simple “Hello World” realizado en XAML, hasta conceptos avanzados de programación SOLID como son la segregación de interfaces o la inyección de dependencias.

El primer capítulo hace un resumen bastante completo sobre de dónde sale Windows 8, con su estilo de interfaz gráfico llamado inicialmente Metro Style y actualmente Microsoft Design Style. Continua, aun dentro del capítulo, con otro vistazo por encima del novísimo Windows Phone 8 – presentado hace no más de tres meses –, de porqué es como es y qué ventajas tiene sobre la versión anterior: la 7.x.

Para cerrar el contenido muestra al lector qué herramientas gratuitas tiene a su disposición para poder realizar los ejemplos incluidos, o las aplicaciones que serán publicadas a través de los diferentes Market.

A partir de aquí empezamos a disfrutar los desarrolladores ya que los dos siguientes capítulos hablan del patrón arquitectónico por antonomasia al programar para Windows 8 o Windows Phone 8 con XAML: Model/View/ViewModel, o más conocido como MVVM.

Un patrón que publicó Jhon Gossman en 2005 y que permite, como se describe en el libro con un tutorial paso a paso, construir aplicaciones robustas, desacopladas, reutilizables y que facilitan la migración y funcionamiento del código en las tres plataformas destinatarias de la obra: Windows 8, Windows Phone 8 y Windows Phone 7.5.

Aprenderemos qué es un Binding, de los interfazes IPropertyChangede e ICommand – con su implementación en DelegateCommand – y el uso del patrón Locator; desembocando en el capítulo de MVVM avanzado en donde se describe el concepto de Inyección de dependencias, el porqué de su importancia y los mejores framework que nos facilitan su uso.

Pero aún queda el final del capítulo en donde se trata temas como las Buenas Prácticas de programación en MVVM, los framework para la implementación más sencilla del patrón y una sección muy breve sobre test unitarios.

Como ves en estos dos capítulos tienes un manual de “Cómo aprender MVVM de cero a sénior en tres días”. Pero la verdad es que yo lo he utilizado en un producto real pequeño y, estás poco más de 80 páginas me han tenido estudiando durante días y días. Yendo adelante y atrás, siguiendo los ejemplos de código que, si los seguimos al detalle, permiten acabar el capítulo avanzado con una aplicación funcionando en el emulador de Windows 8 con un orden, robustez y desacople muy satisfactorio

Llega la hora de los diseñadores gráficos y UX


Una ventaja del trabajo en XAML, y aún más siguiendo el patrón MVVM, es que un equipo de desarrollo y el de diseño gráfico, interfaz y experiencia de usuario, pueden trabajar en paralelo sin molestarse los unos a los otros al estar prácticamente desacopladas las funciones.

Así a partir de este punto se abren dos largos capítulos que se extienden por más de 120 páginas en donde se describe al detalle las capacidades de los diferentes sistemas operativos. Las diferencias de los controles más utilizados, la forma de describir y de configurar el entorno gráfico, los trucos, las Buenas Prácticas y los requisitos que debes tener en cuenta ya que te los va a exigir el Market para certificar la aplicación.

Se inicia describiendo el lenguaje XAML, que se utiliza en todas las plataformas, pero entrando al detalle de las diferencias con las que nos vamos a encontrar y cómo irlas solventándolas. Continuando con las capacidades de la plataforma .NET para la construcción de aplicaciones multiidioma, lo cual en un mercado global es imprescindible.

Para finalizar la zona de diseño puro, entramos en un capítulo dedicado a la explicación de los interfaces de usuario en ambas plataformas (incluso un poco de Windows Phone 7). Cuáles son los controles que nos ofrecen por defecto los sistemas operativos, las particularidades de cada uno y cómo soportar las diferentes resoluciones y orientaciones de los dispositivos que obliga la certificación de las aplicaciones.

Metiéndonos en las tripas del Sistema


Estamos en la página 247, y hemos consumido más o menos la mitad del libro. Los conceptos que se tratan en los capítulos siguientes son en la mayoría desconocidos para los desarrolladores de aplicaciones Web o de escritorio Windows.

Windows 8, al igual que Windows Phone 8, está pensado y diseñado para dar soporte natural a su ejecución en dispositivos móviles (tabletas, ultrabooks, portátiles, híbridos, etc.) Por lo cual el Ciclo de Vida, es decir cómo se ejecuta nuestra aplicación en conjunto con el resto dentro del sistema operativo, es el contenido del 6º capítulo. Breve, pero muy importante para conseguir que funcione correctamente el software en un ecosistema “particular” como el interfaz táctil de Windows 8 o Windows Phone 8.

Por ejemplo, una aplicación puede notificar 6 estados diferentes al sistema: NotRunning, Running, Suspended, Terminated o ClosedByUser… (toma ya!!). Y cuando la cerramos debemos detener los timers, las animaciones, el acelerómetro y la localización por GPS, cerrar las operaciones por red o contra el isolated storage y apagar el sintonizador de radio FM.

La densidad del siguiente capítulo, “Acceso al sistema”, es para una lectura reposada, tomar apuntes y volver a leerlo. Se describe con ejemplos las cosas que podemos y no podemos hacer en Windows 8 y Windows Phone 8 para interactuar con el Sistema Operativo y sus servicios. Y de las que podemos hacer, cuales son los pasos que debemos realizar y de qué forma.

Interactuando con el mundo real


Para un usuario de una tableta Windows 8 o un smartphone Windows Phone 8, los live tiles son pequeños iconos que muestran diferente información útil sobre la aplicación que enlazan. Son como unos accesos directos de toda la vida, pero vitaminados y mineralizados.

La realidad es que su complejidad de uso merece un capítulo completo por parte de los autores. Y en donde no solamente se describe las diferencias dependiendo el sistema operativo, lo que implica el visualizar notificaciones tanto en las live tiles como en las pantallas de bloqueo, y el generar sistemas de comunicación basados en tecnología Push para recibir la información a mostrar desde servidores remotos.

El capítulo que le sigue se centra en los sensores que incluyen los actuales dispositivos móviles, en especial los smartphone, como pueden ser los receptores Gps y el uso de librerías de Mapas, el acelerómetro, la brújula, el giroscopio y otros sensores secundarios como el inclinómetro, el sensor de orientación o el de luminosidad.

Además incluye una breve descripción de la construcción y uso de las Portable Class Libraries que son un gran invento. Básicamente es un proyecto de Visual Studio al cual le indicamos cuales son los sistemas operativos sobre los que queremos que funcione nuestra aplicación: Windows 8, Windows Phone 8 y 7, Xbox, Silverlight, etc. Así el propio IDE incluirá las librerías que son compatibles con los sistemas seleccionados y que podemos reutilizar en todos los proyectos que tengamos, asegurándonos de no introducir ningún código incompatible.

Comunicaciones: ¿se me escucha?


Dos capítulos comprenden el material relacionado con las comunicaciones desde un dispositivo Windows moderno. En el primero descubro con bastante interés una explicación básica e introductoria de las comunicaciones NFC, el nuevo paradigma de intercambio de información muy cercano al concepto del “Internet de las Cosas”, seguido a continuación del contrapunto de las capacidades de la tecnología Bluethooth, que funciona de forma excelente desde la década de los 90 del siglo pasado.

Y ambas unidas por la simplicidad con las que se pueden explotar desde .NET y que explican los autores con profusión de ejemplos de código real, como en todo el libro.

El segundo capítulo vuelve a un nivel técnico más profundo, similar a los iniciales de XAML y MVVM, tratando el inacabable – y me temo que inabarcable – uso de la tecnología de Windows Comunication Foundation (WCF), para realizar todo tipo de conexiones sobre los más variopintos protocolos y contra multitud de dispositivos.

Como bien indican los autores, WCF es una tecnología muy extensa sobre la que hay una abundante literatura y que sobrepasa con creces el alcance del libro. Pero aun así le dedican un buen número de páginas para explicar un sencillo ejemplo de conexión, teniendo aún espacio para revisar incluso una comunicación OnData o mostrar cómo hacer un lector RSS sencillo.

Recta final de una extensa lectura


Voy a unir en un solo epígrafe el último capítulo del libro y el apéndice, ya que este capítulo final es un poco “light”, más centrado en la descripción del servicio que en un ejemplo real de uso utilizando alguna de las aplicaciones que, a estas alturas de la obra, deberíamos tener ya funcionando.

Trata sobre Windows Azure, la Cloud de Microsoft. El sitio en donde toda aplicación con pretensiones de llegar al Gran Público (miles, cientos de miles o millones de usuarios) debe de irse para poder cubrir las necesidades de escalabilidad y disponibilidad que implica. Además de poder utilizar los servicios de movilidad (Mobile Services) que la plataforma ha publicado recientemente.

A cambio de esta visión un poco más generalista, terminamos el libro con un apéndice que es una guía detallada y llena de buenos consejos de cómo publicar nuestro software en las tiendas virtuales de MS. Ya sea en el Market de Windows 8 como en la de Windows Phone, y que se podría resumir en la última frase del libro:

“Debemos asegurarnos en todo momento que la aplicación que subamos, no contiene fallo alguno, ya que enviar una actualización implicará el mismo tiempo de publicación que si la enviamos por primera vez”

Conclusiones


España es un país de contrastes que tiene una de las industrias editoriales más potentes del mundo sirviendo publicaciones a toda América Latina y al mundo castellanoparlante en general. Sin embargo el volumen de libros tecnológicos en nuestro país es muy pequeño en comparación con el potencial mercado de su difusión.

Hay miles de páginas con manuales, tutoriales o post sobre conocimiento de todas las áreas de la informática, pero siempre se echan de menos obras bien escritas, con autores reconocidos en la comunidad y con un potente trabajo editorial detrás.

Este es uno de ellos.

Así puedo recomendarlo como uno de los mejores libros para la iniciación avanzada en el desarrollo sobre en una tecnología compleja y con ambiciones universales. No tanto por su fondo, sino por la forma. Se nota, y mucho, que los autores se pegan con esta tecnología de forma profesional y así hacen hincapié en lo importante, en las dudas que ellos tuvieron que resolver en su momento, dejando para libros con mucha mayor profundidad los vericuetos de conceptos, técnicas y conceptos como POO, WCF, SOLID, etc.

Pero en este acto de “jardinería”, separando el grano de la paja, es en donde tiene su mayor debilidad el texto. Se condensa tanto el conocimiento en tan poco espacio que muchas veces me he visto utilizándolo más como un libro de referencia, ese que buscas para superar el obstáculo que te impide continuar, más que como un manual al uso. O tener que profundizar en la descripción de una Buena Práctica o una pieza de código de ejemplo buscando en la infinita librería de Google, para tener un conocimiento más profundo del porqué.

Espero que lo disfrutéis tanto como lo estoy haciendo yo.

Enlace en Krasis Press | Desarrollo en Windows 8 y Windows Phone 8 con XAML y C#
En GenbetaDev | Entrevista a Jousé Yeray, Rafael Serna e Ibón Landa

Comentarios cerrados
Inicio