En Windows Phone Vault hemos querido traeros un pequeño regalo para estas navidades. Que mejor manera de celebrar las fiestas que contar en nuestra página con la presencia de Josué Yeray Julián uno de los principales y más importantes desarrolladores de Silverlight en España. Autor del primer y único libro totalmente en castellano sobre desarrollo para Windows Phone 7.5 (que os recomendamos encarecidamente) publicado el mismo día de la salida de del sistema operativo. Con más de 10 años de experiencia en entornos Microsoft es una de las personas más involucradas en la comunidad. Puedes seguirle a través de su blog (http://geeks.ms/blogs/jyeray/) o en Twitter (@JosueYeray). También lo podéis encontrar habitualmente en los foros oficiales de Windows Phone MSDN en castellano. Hemos tenido el placer de realizarle una entrevista, y aquí la tenéis, esperemos que la disfrutéis tanto como nosotros.
¿En que se diferencia el desarrollo para Windows Phone frente a iOS y Android?
En varios puntos.
En primer lugar tenemos la calidad de las herramientas. XCode como herramienta de desarrollo o Eclipse están muy lejos de Visual Studio 2010, la herramienta con la que desarrollaremos en Windows Phone y que obtenemos de forma totalmente gratuita con la descarga del SDK. Esta herramienta es la más usada para desarrollo profesional en entornos Windows y una de las más productivas y cómodas para el desarrollo. Además también disponemos de forma gratuita con el SDK de Expression Blend 4, la herramienta de diseño de Microsoft para aplicaciones Windows Phone, especialmente pensada para diseñadores y que nos facilitará la creación del aspecto visual de nuestra aplicación.
En segundo lugar encontramos el emulador. En este sentido el de iOS es bastante aceptable, sin embargo, el de Android es bastante lento y deja mucho que desear en cuanto a rendimiento. En Windows Phone el emulador incorporado está basado en tecnología Hyper V de Microsoft, si nuestro PC soporta virtualización por hardware (Intel-VT o Amd-V) el emulador aprovechará la misma para ejecutarse. El tiempo de inicio del emulador es de entre 2 y 10 segundos (iniciando desde cerrado) En una máquina con procesador Core i7 el lanzar una aplicación desde Visual Studio con el emulador cerrado tarda unos 8 segundos en tener nuestra aplicación iniciada y lista para probar. El emulador de Windows Phone incluye además un simulador de acelerómetro y otro de GPS integrados. También contamos con dos herramientas indispensables:
Marketplace test kit, una serie de pruebas automáticas y manuales que emulan las pruebas de certificación oficiales del marketplace y con las que podemos asegurarnos de que nuestra aplicación sea aprobada a la primera.
Windows Phone Profiler, una herramienta que nos permitirá iniciar nuestra aplicación en un teléfono físico, usarla y al cerrarla nos dará estadísticas de uso de memoria, procesador, objetos usados, etc… con lo que podremos optimizar el rendimiento de la misma.
En conjunto, lo que Microsoft ha creado es un kit de desarrollo, totalmente gratuito, que incluye un emulador muy potente, un entorno de desarrollo ganador de varios premios como es Visual Studio 2010+Expression Blend y varias herramientas más para asegurar el rendimiento y aprobación de nuestros desarrollos.
Por último, pero no menos importante, la tecnología usada. Silverlight para el desarrollo de aplicaciones y XNA para el desarrollo de Juegos. En el caso de Silverlight nos encontramos ante una mezcla de lenguajes: C# que se ha convertido en uno de los lenguajes de desarrollo más avanzados de nuestro tiempo con características como expresiones lambda o LinQ, y XAML, un lenguaje declarativo, basado en XML y pensado para diseñar la apariencia de nuestra aplicación. Ambos unidos mediante clases y gracias al sistema de enlace a datos y al patrón MVVM nos ofrecerán una potencia y sencillez de desarrollo que Objective-C y Java son incapaces de igualar.
¿Qué le recomendarías a alguien que se quiera iniciar en el desarrollo para Windows Phone?
En primer lugar, aprender sobre Silverlight 4 todo lo que pueda, pues es la versión usada en Windows Phone y todo conocimiento le resultará útil. También es muy importante aprender a usar el patrón MVVM y sobre pruebas unitarias, para poder crear código de calidad, en mi blog podrán encontrar una introducción a MVVM y un artículo de calidad de software y pruebas unitarias en Windows Phone.
En cuanto a C# poner mucha atención al trabajo con hilos y la programación asíncrona, pues los requisitos de certificación del Marketplace exigen que la interface de usuario siempre responda al usuario y que toda consulta a servicios o carga de datos se realice en otro hilo, de forma que el usuario siempre obtenga una experiencia fluida.
Por último, igual que es importante acostumbrarnos al desarrollo con Silverlight, MVVM, pruebas unitarias o hilos, debemos aprender a usar Expression Blend, personalizar y estilizar los elementos de interface de usuario y crear animaciones y transiciones. Con un dominio medio de todas estas técnicas podremos realizar cualquier aplicación que imaginemos. En mi libro he dedicado los 3 primeros capítulos a introducir al lector a Silverlight, MVVM y Expression Blend, así que también es una buena forma de empezar a desarrollar para la plataforma.
¿Qué nos puedes decir sobre tu libro? ¿Estas trabajando en alguna revisión de cara a “Tango” o “Apollo”?
Bueno, ¡compradlo! Jajaja. Ya en serio. Fue un propósito de fin de año en 2010, escribir un libro sobre Windows Phone en castellano que partiese de los conceptos básicos: historia de la plataforma, introducción a Silverlight y MVVM, Expression Blend y avanzase hasta los conceptos más complejos como acceso a datos externos, Windows Azure, sensores como el acelerómetro o la brújula y sistema de notificaciones. Veía como la gente se interesaba por la plataforma pero muchas veces les resultaba difícil aprender tantos conceptos e incluso organizar la forma de abordarlos. La verdad es que lo escribí con vocación de que sirviese como guía de estudio de la plataforma, de hecho, en el Master de Informática Movil de la UPSA (http://web.upsa.es/mimo) lo han usado como libro de texto, lo cual me ha hecho muchísima ilusión.
¿Nueva versión? Ahora mismo no estoy trabajando en ella, todavía no hay mucha información sobre las novedades en cuanto a desarrollo de Tango y Apollo. Supongo que Tango, que será una minor version como lo fue en su día NoDo, no traerá demasiadas novedades de cara al desarrollador, mientras que Apollo sí incorporará cambios mayores. Sea como sea, si, mi idea es en cuanto vayan cayendo en mis manos nuevos SDKs ir adaptando el libro y si los cambios son cuantiosos, incluso escribir un libro completamente renovado como continuación al actual.
Actualmente vivimos un periodo de “guerra” entre las diferentes tiendas de aplicaciones, y en nuestra opinión el punto diferenciador de Marketplace frente al resto es la calidad de sus apps, ¿crees que este es el camino a seguir o los usuarios seguirán fijándose en el número más que en el rendimiento?
Bueno, siempre hay gente que se guía por los números crudos, del tipo de “mi teléfono Android tiene 16 nucleos, 24Gb de Ram y un condensador de fluzo”, yo creo que la cantidad, sin calidad, no aporta nada. El marketplace de Windows Phone DEBE apostar por la calidad, esa es la razón por la que el ser publicador tiene un coste de 75€ anuales mientras que en Android tienes un coste de 25€ una sola vez: toda aplicación pasa pruebas automáticas y manuales, realizadas sobre teléfonos físicos, modelos de calle, por personas que físicamente están analizando tu aplicación. Yo además soy de la opinión de que todavía debería ser más dura la certificación, pidiendo unos mínimos en cuanto a diseño o contenidos. Lamentablemente para Microsoft es una batalla en dos frentes: por un lado, le exigen tener YA 300000 aplicaciones, por el otro quieren conseguir calidad. Creo que actualmente el marketplace tiene una calidad media muy buena, el sistema de desarrollo y la plataforma evitan que existan aplicaciones mal programadas, o que no funcionen, siempre está la excepción que confirma la regla, pero creo que las herramientas y las intenciones en cuanto a calidad están en el Marketplace y espero que además de subir el número de aplicaciones, también siga aumentando la calidad de las mismas.
¿Qué aportan conceptos como METRO o Panorama y en generalla UIde WP al desarrollo sobre
plataformas móviles?
Metro aporta un “Fresh start” a la experiencia móvil. Significa cerrar la puerta a los antiguos sistemas basados en iconos dispuestos en rejillas interminables y el paso a un nuevo sistema más “emocional”.
El lenguaje Metro, desarrollado particularmente para Windows Phone, se basa en un principio: la forma sigue a la función. Este principio se hereda de la escuela Bauhaus alemana, en la cual se intenta eliminar las florituras y los adornos superfluos que nos distraen de nuestro objetivo: nada de brillo, de bordes, de adornos, tenemos unos “Tiles” en color plano, que destaca sobre el fondo, con bordes rectos y sin sombras, estos “Tiles” están vivos, vivos porque cuando tienen información relevante para nosotros, la muestran, varían según nuestras preferencias y necesidades, no son simples dibujos. Esto nos aporta en muchos casos información sin necesidad de abrir una aplicación.
En cuanto al Panorama o al Pivot, representan la implementación de este lenguaje Metro a la hora de mostrar información, permitiéndonos crear tapices que fluyan más haya de los límites físicos de la pantalla, mostrar distintas vistas de información o distintos aspectos importantes de nuestra aplicación, simplemente, desplazando el pivot o el panorama hacia uno u otro lado.
En definitiva, Metro es un lenguaje, no solo un interface, es algo pensado para evolucionar y no pasar de moda pues los principios sobre los que se asienta están vigentes desde hace más de 60 años.
Por otro lado Metro recibe su nombre precisamente por la inspiración conceptual que recibió del transporte en Metro, donde se usa mucho la simbología para expresar funciones. Es muy fácil usar el metro de cualquier ciudad, incluso aunque no comprendas el idioma de la misma, por la simbología usada, este es otro aspecto sobre el que descansa Metro, la simbología para expresar ideas, la globalización y es lo que lo convierte en tan “emocional” nos transmite emociones, ideas, no ordenes o acciones. Por esto es muy fácil de usar y muy efectivo.
¿Cuál fue la primera aplicación que desarrollaste?
Mi primera aplicación para Windows Phone que desarrolle fue un lector de fuentes Rss, que permitía guardar fuentes, desacargar el contenido y visionarlo de forma desconectada. La desarrolle con la primera Beta de las herramientas sobre julio/agosto de 2010 y nunca la publique, en su lugar cuando su desarrollo ya estaba lo suficientemente terminado colgué el código fuente completo en mi antiguo blog para que se lo descargase quien quisiese (http://jyeray.blogspot.com/2010/08/codigo-completo-de-7rss.html) Hoy en día tendríamos que hacer muchos cambios para que volviese a ser totalmente funcional y seguro que si vuelvo a abrir el código me horrorizaría a mi mismo, pero es una base de lo que se podía hacer con Windows Phone hace un año y medio, con las primeras versiones beta.
¿Una aplicación que no pueda faltar en ningún Windows Phone? ¿Y la que más echas de menos en WP?
Pues, hay una aplicación, llamada “I’m a WP7” que debería venir de serie con todos los Windows phone, te permite ver gente cerca de ti que tiene Windows phone, estadísticas de uso (globales o por país) y muchas cosas más. Lo bueno es que cuanta más gente se la instale, más cerca estaremos de poder conocer cifras reales de base de terminales vendidos y en uso. Por otro lado también hay una aplicación llamada Aloud, que es brutal!! Básicamente es un lector de rss, que te lee los rss de viva voz, así que es super comoda para ponerte los cascos y disfrutar de tus noticias, le queda por pulir algunos aspectos, pero pinta muy bien!
En cuanto a echar en falta, para mi no hay duda: SKYPE por favor, necesitamos Skype en Windows Phone cuanto antes jajaja. Además, para haber sido comprados por Microsoft, ya les vale, la única plataforma móvil sin cliente Skype
¿Qué echas en falta en Silverlight frente a otros entornos?
La verdad es que Silverlight es muy completo para desarrollar (yo es que soy un gran defensor de Silverlight ) a ver, voy a esforzarme… que echo en falta, ya se!, quizás echo en falta, como desarrollador, mayor libertad a la hora de acceder a objetos COM (bueno, echo en falta PODER acceder a objetos COM en realidad) lo que nos daría más opciones a la hora de desarrollar y acceder al sistema, pues todo el sistema Windows Phone expone mucha funcionalidad mediante COM que no está disponible en el framework de desarrollo, como el acceso a TellMe, Bluetooth o detección de capacidades del teléfono más avanzadas. Aun así, como usuario me alegro de que no se pueda acceder, pues eso me garantiza que nadie podrá hacer ninguna “Maldad” con mi teléfono sin que yo lo autorice y todo el código será validado por Microsoft e independiente del dispositivo. Es la cara y la cruz de una misma situación.
¿En que estas trabajando ahora mismo?
Hace poco hemos terminado en Plain Concepts de desarrollar Azure monitor, una herramienta de monitorización de Windows Azure para Windows Phone, con multitud de opciones para poder gestionar tus instancias, bases de datos, servidores y más directamente desde tu teléfono. Ahora mismo estoy aprovechando para escribir algún artículo nuevo en mi blog sobre bases de datos y Windows Phone además de seguir investigando y conociendo el sistema, nunca se termina de aprender en esta profesión. A partir de enero volveremos a coger las riendas de algún nuevo proyecto en Windows Phone, pero no puedo contar mucho más
¿Cómo ves el futuro de Windows Phone en nuestro país? ¿Qué les depara el2012 alos fans de Windows Phone?
El futuro de Windows Phone es brillante en general. Está cogiendo mucha inercia con la ayuda de Nokia, cada vez es más “normal” ver Windows Phone en la calle, gente hablando del Lumia 800 y el 2012 va a ser un gran año. Tango y Apollo van a traer nuevas capacidades a nuestros terminales, se rumorea que Nokia presentará al menos dos nuevos dispositivos y quizás incluso un Tablet. Y si la tienda continua con su ritmo de crecimiento, puede que a finales de 2012 estemos en el hito de las 100.000 aplicaciones (con calidad eso si!) Además la base de desarrolladores de Windows Phone va creciendo y cada vez tienen más y más experiencia lo que debería redundar en mejores aplicaciones. Desde luego, todo el que tenga o piense tener un Windows Phone en 2012 va a disfrutar de un muy buen año lleno de muchas sorpresas y alegrías (y los que tengan un Iphone o un Android… tendrán un Iphone o un Android).
Si queréis twittearla, compartirla en FB o lo que os salga del pito aquí tenéis el enlace http://wp.me/p1O6tn-rX