| Artículos | 01 JUL 2007

Desarrollando "on the road" con Windows Mobile 6

Tags: Histórico
Novedades de Windows Mobile 6 para programadores
Alejandro Mezcua.
A principios de año, Microsoft lanzó Windows Mobile 6, la siguiente iteración del sistema operativo para dispositivos móviles. Aunque es cierto que actualmente existen pocos dispositivos en el mercado que lo incorporen, es de esperar que los diferentes fabricantes lo vayan montando paulatinamente en sus nuevos terminales. A continuación comentamos las principales novedades del nuevo sistema operativo y desarrollamos nuestra primera aplicación basada en Windows Mobile 6.

Para entender qué opciones tiene disponibles un programador a la hora de encarar un desarrollo para este tipo de dispositivos hay que tener en cuenta que Windows Mobile 6, al igual que su antecesor, se basa en el sistema operativo Windows CE 5.0. Windows CE no es un sistema operativo en sí mismo, sino una colección de componentes que sirven para crear un sistema operativo. Cualquiera puede licenciar Windows CE para construir un dispositivo concreto al que añadirle sólo la funcionalidad requerida para su objetivo. Por ejemplo, pongamos por caso que quiero diseñar un router TCP/IP. Para ello, puedo usar Windows CE como base de componentes y crear una imagen que incluya soporte de red, un servidor HTTP y arranque desde una memoria flash, pero que no disponga de salida VGA ya que no le voy a conectar nunca un monitor y toda la administración se va a hacer mediante una página web, disponiendo así de un sistema totalmente personalizado.
Teniendo en cuenta esto, Windows Mobile, como tal, es simplemente una especificación diseñada por Microsoft indicando qué componentes de Windows CE han de estar disponibles en un dispositivo concreto y qué forma de interacción ha de presentar el dispositivo. Por ejemplo, un dispositivo denominado anteriormente Pocket PC es un dispositivo Windows Mobile que ha de tener entre otras cosas una pantalla táctil y ha de incluir las aplicaciones Pocket de Office (Pocket Word y Pocket Excel).
De esta forma se asegura que si se diseña una aplicación para una edición de Windows Mobile, esa aplicación funcionará de la misma forma en cualquier dispositivo que monte esa edición de Windows Mobile, independientemente del fabricante del dispositivo.
En el caso de Windows Mobile 6 vamos a encontrar tres ediciones diferenciadas:
• Windows Mobile Classic. Engloba todos los dispositivos conocidos hasta ahora como Pocket PC. Montan una pantalla táctil, expansión con tarjetas de memoria y algunos incluyen Wi-Fi o Bluetooth, entre otros.
• Windows Mobile Professional. Anteriormente conocido como Pocket PC Phone Edition. Incluye todo lo comentado en la edición Classic y, además, capacidades de teléfono móvil y datos a través de la red celular.
• Windows Mobile Standard. En las versiones anteriores conocido como Windows Mobile SmartPhone. Su uso principal es de teléfono móvil y la principal diferencia con el anterior es que no monta una pantalla táctil, con lo que la manera de interacción con el dispositivo es bastante distinta, mediante el uso exclusivo de teclas. La elección del dispositivo fijará por tanto las capacidades de que dispondremos a la hora de desarrollar la aplicación.

Opciones para su programación
Al disponer de Windows CE 5.0 por debajo, un programador tiene disponible todo el API de Windows CE para usarlo en sus aplicaciones. Esto implica desarrollar a nivel del API Win32, utilizando normalmente C o C++ como lenguaje de desarrollo.
Para aquellos que no quieran desarrollar a ese nivel, siempre se puede acudir al desarrollo basado en .NET. En ese caso hay que resaltar que Windows Mobile 6.0 incluye .NET Compact Framework 2.0 Service Pack 1 en ROM, de forma que cualquier aplicación desarrollada en .NET Compact Framework hasta el momento ha de ejecutarse en un dispositivo Windows Mobile 6 sin hacer nada más que instalarla (o copiar el ejecutable al terminal). Esto representa un gran avance, ya que hasta ahora había que instalar .NET Compact Framework 2.0 de manera manual en el dispositivo, lo que limitaba de forma general el alcance de la distribución de las aplicaciones .NET. Asimismo se incluye SQL Server 2005 Compact Edition, el motor de base de datos compacto y compatible con SQL Server, con el que puede sincronizar datos automáticamente por varios métodos. La inclusión de estos dos componentes en la memoria ROM de los dispositivos proporciona un completo entorno de ejecución de aplicaciones .NET.
Como nota adicional hay que detallar que desde .NET siempre se puede acceder al API de Windows CE utilizando la técnica llamada Platform Invoke (P/Invoke). Esto permite que, si no se dispone de cierta funcionalidad en .NET que sea necesaria para la aplicación, siempre se pueda llamar a alguna DLL del sistema operativo que implemente la función o funciones requeridas.
Siguiendo en la línea de desarrollo .NET, ya en la versión anterior de Windows Mobile los programadores de Microsoft incluyeron ciertos componentes .NET, independientes de .NET Compact Framework, que permitían acceder a funcionalidad expuesta por el sistema operativo sin necesidad de usar P/Invoke, como acceso a los contactos, al sistema de mensajería (correo y SMS), o a la cámara fotográfica (si esta se encuentra presente en el dispositivo), por ejemplo. En esta nueva versión se ha seguido esa línea, y se han ampliado, por ejemplo, las clases de notificación de eventos del sistema, añadiendo unas cuantas propiedades nuevas, como el estado de las conexiones de Bluetooth o GPRS, que anteriormente no se podían recibir.
Por otro lado, se han incluido nuevas API nativas (Win32), como el nuevo API de sonido, bastante demandado por los programadores, que permite la ejecución de archivos de sonido de diversos formatos de forma sencilla, o el API de reconocimiento de escritura (WISPLite, Windows Ink Services for Pen Lightweight), similar al encontrado en equipos Tablet PC. Aunque estos API son nativos, para aquellos programadores que no quieran programar bajo C/C++, existen componentes .NET proporcionados mediante ejemplos del SDK (Software Development Kit), o por otros proveedores como OpenNETCF (en el caso de WISPLite) que facilitan su acceso.
Finalmente, y gracias a la nueva versión de Pocket Internet Explorer (el navegador de Microsoft para dispositivos móviles), ya se pueden desarrollar aplicaciones AJAX que se ejecuten directamente en el dispositivo, de forma más parecida a como se desarrollan en el PC. En la versión anterior de Windows Mobile se podía usar cierta funcionalidad AJAX que se ha expandido en gran medida en esta nueva versión.

El entorno de desarrollo
Para poder empezar a trabajar con Windows Mobile lo primero que se necesita es una copia de Visual Studio 2005 edición Professional o superior, e instalar los SDK de Windows Mobile 6.0. Dependiendo del dispositivo para el que se quiera realizar el desarrollo necesitaremos un SDK u otro. Por ejemplo, para desarrollar para Windows Mobile 6.0 Classic y Windows Mobile 6 Professional se necesitará Windows Mobile 6 Professional SDK. Para desarrollar para Windows Mobile 6 Standard se requiere Windows Mobile 6 Standard SDK. Los dos SDK se instalan por separado y son independientes el uno del otro. También se pueden instalar junto a los SDK de las versiones anteriores, funcionando en paralelo.

Contenido del SDK
Antes de empezar el desarrollo es conveniente conocer cuál es el contenido de los SDK ya que incorporan documentación de ayuda, herramientas y ejemplos que facilitan en gran medida el inicio del desarrollo de las aplicaciones.
Por primera vez se incluye en el SDK una sección de Comu

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información