miércoles, 2 de abril de 2014

Modos de desarrollar para Windows y Windows Phone

Hola

Con el anuncio de las novedades en Windows y Windows Phone una avalancha de contenido se viene en la red, sin embargo, seas nuevo o veterano en Windows Phone, antes de empezar te invito a hacer una parada y recapitular sobre algo que es necesario entender en especial cuando en nuestras apps queremos estar en la mayor cantidad de dispositivos.

Vamos a enumerar los diferentes modelos de programación posibles según las versiones de sistemas operativos disponibles.

Windows Phone 7, Windows Phone 7.5, Windows Phone 7.8

Los dispositivos existentes con estas versiones cada vez se han quedado más atrás, la razón principal es que debido a capacidades de hardware, no pudieron continuar la línea de evolución de Windows Phone, sin embargo, una gran cantidad de dispositivos de este tipo están en el mercado y son usados diariamente por muchas personas.

Caí en cuenta de que este escenario seguía importando con mi ultima aplicación, al pedir gente que nos apoyara como Beta Testers, nos encontramos con que al menos el 40% de ellos no pudieron probar nuestra aplicación por que funcionaba solo en equipos Windows Phone 8.

Mi aplicación probablemente no es tan critica como para que intentemos llevarla a cubrir este porcentaje, pero ¿qué tal si lo fuera?

Hace un tiempo hice una aplicación cuya decisión arquitectónica era justamente cubrir a todos los usuarios posibles y la creamos en Windows Phone 7.5 y hoy continúa oficialmente en Windows Phone 7.5 para poder cubrir la mayor cantidad de clientes posibles, debido a la naturaleza de la empresa para la que se construyó. Así que si este es tu caso, no te olvides, lo que construyas con SDKs para versiones superiores no correrá en estos dispositivos.

Los principales "tipos" de apps que se pueden crear son:
  1. Crear aplicaciones XAML basadas en Silverlight
  2. Juegos usando XNA, tecnología fue muy popular entre los adeptos a Microsoft.

Windows Phone 8 y Windows 8 (Update 1 a 8.1)

Con Windows Phone 8 y Windows 8 vinieron muchas mejoras a la manera como programábamos, pero además la plataforma empezó a abrir espacio a tecnologías más populares como Unity, y escenarios más complejos, dando acceso a C++, a componentes Win32 (en Windows 8) y pudiendo crear aplicaciones para DirectX.

Con esto los sectores empresariales además comenzaron a ver la luz al final del túnel, con versiones de Windows Embedded 8 que devuelven la esperanza a la cantidad de proyectos móviles empresariales basados en esta plataforma.

Además Windows 8 hizo su guiño a los desarrolladores HTML5 y JS mostrándoles como crear aplicaciones "nativas" participando de toda la experiencia y ecosistema de las aplicaciones modernas.

Los "tipos" de apps en esta versión son:
  1. Aplicaciones nativas HTML5 y JS (No disponibles para Windows Phone)
  2. Aplicaciones XAML con C# y VB
  3. Aplicaciones XAML con C++
  4. Aplicaciones DirectX
En Windows Phone las aplicaciones HTML5 solo eran una plantilla con WebView incorporado y no se ejecutaban de forma nativa ni con las ventajas correspondientes de tener mayor acceso a los dispositivos y poder tener referencias a otros proyectos .NET.

Windows 8.1 (Update 1) y Windows Phone 8.1

El dia de hoy nos incorporamos a la nueva aventura, sin embargo todas las nuevas noticias traen implicaciones en desarrollo a las que tendremos que adaptarnos y entender a donde pueden o no llegar nuestras nuevas apps.

Empecemos con calma, primero las buenas nuevas. Windows Phone 8.1 ahora ofrece aplicaciones HTML5 y JS de forma nativa, lo cual es excelente. Bien por todos aquellos devs que lo estaban esperando.

Las apps XAML que veníamos trabajando, pasarán a ser apps XAML basadas en Silverlight 8.1, y tendrán acceso a una cantidad limitada de características nuevas, pero lo realmente importante es que llevan una ruta unificada para trabajar y compartir más código con las Windows 8.1 que trabajamos hasta ahora.

Sobre las Universal apps, hay gran expectativa y alegría, ahora podemos construir aplicaciones que se construyen una única vez y funcionan en todas las plataformas. Lo cual es genial para la plataforma y para nuestro trabajo. Bueno, ¿y por qué el tono de alerta?

Okey, para entenderlo enumeremos los tipos de apps disponibles ahora:
  1. Aplicaciones DirectX
  2. Aplicaciones XAML con C# y VB (Basadas en Silverlight 8.1)
  3. Aplicaciones XAML con C++ (Basadas en Silverlight 8.1)
  4. Universal Apps con C# y VB (Windows XAML)
  5. Universal Apps con C++ (Windows XAML)
  6. Universal Apps con HTML5 y JS
¡Hey! ¡Momento! Más tipos de apps, ¿que tiene eso de malo? Bueno, en principio las apps, apps son pero...

Las apps basadas en Silverlight 8.1 no se podrán portar de forma transparente a Universal Apps. Las apps basadas en Silverlight 8.1 son la oferta de hoy para quienes tienen apps creadas, es el siguiente paso para mejorarlas y que puedan acceder a algunas de las carácteristicas de la evolución de la plataforma.

Las Universal Apps están dirigidas a nuevas apps, o a quienes quieran de plano volver a crear sus apps para volverlas universales. Así que como pueden ver, a hoy, habrá que elegir correctamente que es lo que queremos hacer.
Por otro lado, con como es de esperarse, estas "nuevas apps" no van a correr en Windows Phone 8, para correr todos los tipos de apps que hemos mencionado hasta el momento, se deberá tener Windows Phone 8.1. 
La parte positiva es que a diferencia de Windows Phone 7.5, todos los celulares con Windows Phone 8 podrán actualizarse a Windows Phone 8.1 pero la pregunta es ¿Cuando? Muchos dispositivos hoy siguen sin actualizarse por culpa de los operadores de telefonía móvil, y aunque nosotros los desarrolladores no tenemos ese problema, no hacemos apps para nosotros, si no para los usuarios que seguirán estancados con los operadores en Windows Phone 8. :(
No quiero terminar con una sombra de pesadumbre, todo lo que esta pasando es bueno, muy bueno para la plataforma, hay factores que van a entorpecer y alargar el proceso de que todas estas novedades nos lleguen y le lleguen a nuestros usuarios, pero el futuro es prometedor.

Para quienes hace rato somos devs de la plataforma, claramente las mejoras son geniales, el que la compatibilidad del código sea cada vez mejor, le da un plus para seguir adelante, pero lo mejor es que el conocimiento que tenemos sigue vigente e intacto para seguir construyendo apps.

Nos seguiremos viendo con más análisis y tutoriales sobre las novedades de Windows Phone 8.1 :)

2 comentarios:

Unknown dijo...

Excelente post,

Sin embargo, si uno es nuevo en este mundo que sería recomendable, desarrollar una APP orientada a WP 8 o entrar de una vez en el mundo de WP 8.1?

Y adicionalmente mientras que los operadores "liberan" la actualización del sistema, llegar a los usuarios empresariales con soluciones que a futuro tendrán que "migrar" a la nueva versión se ve un poco complicado, o que opinas?

Sorey García dijo...

Bien, yo aprendería... por que por ejemplo lo que si es seguro es que Windows 8.1 y Windows Phone 8.1 estarán y serán gratuitos para todos.

La otra cosa es que lo que cambio fue una capacidad de la plataforma de trabajar ahora como una, los conceptos y tecnologias no cambiaron, asi que todo lo aprendido sirve.

Aprendender desde 7.5 claramente no es muy atractivo, eso que lo hagan quienes de verdad lo necesiten o quieran abarcar esos usuarios. Para mi aprender sobre Windows Phone 8 está bien, el 8.1 lo que pasará es que además de más capacidades como Cortana por ejemplo, habrán algunos namespaces cambiados.

:D Pero, como diría mi madre todos los caminos llevan a Roma :P