A la fecha de escribir este blog post, podemos encontrar una gran singularidad de aplicaciones de software que de seguro ya conoces:
- Aplicaciones de escritorio (Desktop Applications).
- Aplicaciones web (Web Applications).
- Aplicaciones móviles (Mobile Applications).
- Aplicaciones en la nube (Cloud Applications / Cloud Services).
- Aplicaciones embebidas (Embedded Applications).
Cada una de ellas atacando necesidades específicas según el sector al que se dirigen. Actualmente existen plataformas de sistemas operativos que se mantienen predominantes (unas con mayor porcentaje que otras, pero siempre son las mismas), estas pueden ser clasificadas de la siguiente manera:
- Equipos de escritorio / portátiles
- Windows.
- Linux.
- Mac.
- Smart Phones / Tablets
- Windows Phone & Windows 10 mobile.
- Android.
- iOS.
- Tarjetas electrónicas programables
- Intel Edison (Linux).
- Raspberry Pi (Linux & Windows 10).
¿Te imaginas cuanto tiempo necesitaríamos invertir si requiriéramos una aplicación para todas las plataformas antes mencionadas? Si me adelanto a tu respuesta seria «mucho tiempo».
Desde el pasado Build 2015, Microsoft anunció la llegada de las «Aplicaciones Universales de Windows» o en ingles «Universal Windows Platform Apps». Lo cual significa lo siguiente:
Mismo código fuente => Misma funcionalidad para diferentes plataformas o familias de dispositivos
Esta innovación trae bastantes beneficios para los desarrolladores, puesto que los tiempos de desarrollo se reducen considerablemente, el alcance es mucho mayor, ya que el tiempo de trabajo destinado para un proyecto en particular (una aplicación móvil por ejemplo) se puede reutilizar para otro tipo de software (una aplicación de escritorio por ejemplo).
¿Dónde esta la magia?
El punto clave aquí se llama «Windows 10». Windows 10 no es solo la actual versión del sistema operativo de Microsoft, es el inicio de una plataforma con una visión más amplia que solo equipos de escritorio y laptops, hablamos de una diversidad de familas de dispositivos donde antes no pensábamos que veríamos Windows.
Y seguramente te preguntarás ¿Cuáles son esas familias de dispositivos?
- Familia Internet of Things: Se refiere principalmente a tarjetas electrónicas programables tipo Raspberry Pi (de momento) las cuales pueden tener como sistema operativo embebido Windows 10 IoT Core.
- Familia Mobile: Se refiere a dispositivos móviles tipo Microsoft Lumia o tabletas Microsoft Surface.
- Familia PC: Se refiere a computadoras personales o equipos portátiles.
- Familia XBOX: Se refiere a la consola de videojuegos XBOX de Microsoft.
- Familia Surface Hub: Se refiere a pantallas inteligentes de gran tamaño.
- Familia Hololens: Se refiere a los dispositivos holográficos de Microsoft llamados Hololens.
Una familia de dispositivos es una colección de API’s, son la base de un sistema operativo correspondiente.
Entonces tenemos esta definición:
Toda aplicación de software que se le pueda considerar como universal, es aquella que corre en cualquier familia de dispositivos ya mencionada con la plataforma de Windows 10.
Las características más destacables de las aplicaciones universales de Windows son las siguientes:
- Se desarrolla para una familia de dispositivos, no un sistema operativo. No tenemos que pensar como destino solo el teléfono o solo la pc.
- Las aplicaciones son empaquetadas bajo un formato «.appx». Mecanismo que asegura el despliegue y actualización sin problemas.
- Una sola tienda para todos los dispositivos. Antes teníamos categorizadas las tiendas dependiendo la naturaleza del software: videojuegos, aplicaciones moviles, aplicaciones de escritorio. Las aplicaciones universales de Windows se mantendrán en una sola tienda para su adquisición.
- API’s Comunes para las familias de dispositivos. Todas las familias de dispositivos mantienen APIS en común, por lo que una aplicación universal puede correr en cualquier dispositivo con Windows 10.
- Interfaces adaptativas. Usar una aplicación móvil nos ofrece una experiencia diferente que, si estuviéramos frente a computadora de escritorio, por lo que las aplicaciones universales otorgan controles que reaccionan frente a este cambio de entornos sin que tengamos que escribir código de forma manual.
Windows Core
Cuando comentaba que Windows 10 lo podremos encontrar en las familias de dispositivos antes mencionadas, no debemos entender que tendremos exactamente toda la funcionalidad y potencia de esta plataforma. Cada familia conserva algo llamado Windows Core, y se define de la siguiente manera:
Es el núcleo de Windows 10, un conjunto de funcionalidades en común para todas las familias de dispositivos
Las familias agregan funcionalidad particular a Windows Core para tener un sistema operativo en cuestión. El hecho de que una aplicación universal puede ejecutarse en todas o algunas de las familias de dispositivos es debido a que todas conservan Windows Core.
Una aplicación universal de Windows nos permite movernos entre diferentes plataformas sin la necesidad de adquirir conocimientos nuevos en otros lenguajes de programación o entornos de desarrollo integrando mejor conocidos como IDE’s. Empresas que antes se dirigían a nichos de mercado bien específicos ahora pueden entrar a otros que ni siquiera lo consideraban como los videojuegos u hologramas.
Ahora bien, es importante mencionar que con Windows 10 todavía tendremos la oportunidad de seguir desarrollando para tecnologías ya muy conocidas como WPF o Win Forms y que también podrán ser universales.
Algo muy destacable, son las «Tecnologías puente», que dan la posibilidad de importar y transformar código escrito en otros lenguajes de programación y convertirlo en aplicaciones universales de Windows. Estos proyectos no están liberados completamente aún, estas tecnologías son las siguientes:
- Proyecto Islandwood / iOS Bridge.
- Proyecto Astoria / Android Bridge.
- Proyecto Westminster / Web Bridge.
- Proyecto Centennial / Win32 Bridge
En posteriores publicaciones hablaremos más de cada uno de ellos.
¿Que se requiere para construir aplicaciones universales de windows?
Dos cosas: Windows 10 + Visual Studio 2015 o posteriores. Sin alguno de esos dos componentes, no podremos desarrollar este tipo de aplicaciones.
Como puedes ver, gracias esta refactorización de Windows las oportunidades de desarrollo crecen tantas veces como familias existan.
A continuación expongo un proyecto completo para desarrollar aplicaciones universales de Windows:
Mi primera Aplicación Universal de Windows
Este código te ayudará a implementar tu primera Aplicación Universal de Window 10, enviando y recibiendo datos desde SQL Azure.
Acerca del Proyecto
En esta demostración, aprenderás como desarrollar tu primera aplicación universal para Windows 10, usando el mismo código tendrás visibilidad de como puede trabajar en diferentes dispositivos.
- PC.
- Smart Phone.
- Tablet.
Tecnología utilizada
- Visual Studio 2015.
- .NET (C# lenguaje de programación).
Requerimientos
- Windows 10.
- Una cuenta de Microsoft Azure.
- Visual Studio 2015.
Para mayor información, puedes visitar la pagina oficial de Microsoft
Sigueme en Twitter @vmorenoz
¿Te gustó este artículo? Únete a Facebook en MicrosoftLand