Nota: Este artículo está
en contínua evolución mediante la colaboración
de los miembros de la comunidad, si tienes alguna idea, noticias
o sugerencia y deseas colaborar, a pie de artículo encontrarás
el lugar para poder hacerlo.
MOTOROLA ADK
Por Santiago Márquez Solís
Continuando con nuestra línea de las últimas semanas en la cual
estamos analizando las características de los entornos de desarrollo
más populares del mercado, le toca el turno al Motorola Mobile
ADK, una herramienta de programación WML muy completa y que
sin lugar a dudas llegará a ser indispensable en vuestros desarrollos
ya que por si misma engloba muchas características y posibilidades
interesantes que iremos, poco a poco, desvelando en este artículo.
Como ya viene siendo habitual en esta seria de artículos vamos a
intentar contaros las posibilidades que el programa nos ofrece para
hacer nuestros desarrollos, así y a modo de tutorial explicaremos
el proceso de instalación, el entorno de trabajo con el que
contamos, las utilidades existentes en el programa, para acabar
con el desarrollo de una pequeña aplicación dentro de este
nuevo entorno de trabajo, finalmente y como siempre el trabajo más
duro queda de vuestra parte ya que sois vosotros los que tendreís
que evaluar si esta herramienta es la más adecuada para el trabajo
que realizais, no obstante, espero con este artículo ayudaros a
ver las posibilidades que tenemos y tener un pequeño punto de referencia
donde poder dirigiros cuando lo necesiteis, empecemos nuestro tour
con el Motorola Mobile ADK.
INSTALACION
El proceso de instalación del Motorola Mobile ADK comienza
como en todos los casos con la conexión al sitio web de
Motorola y el alta dentro de la zona de desarrolladores, para
hacer esto no teneis más que hacer clic en el link siguiente:
http://www.motorola.com
el cual os llevará al site de Motorola, una vez alli debeis
acceder al área de desarrolladores y daros de alta, cuando
relleneis los datos que se os piden en el formulario de inscripción,
Motorola enviará a la dirección de mail que hayais
indicado vuestro id de usuario y vuestro login de modo que podreis
logaros dentro del área de descarga de software y una vez
alli vereis que teneis varias opciones de descarga, en este caso
os recomiendo que os bajeis la versión del ADK 1.1 y los
agentes correspondientes, ya que aunque en el web teneis la versión
2.0 ésta no deja de ser una beta y podrían aparecer bugs
inexperados, no obstante, os la recomiendo para ir curioseando
y ver lo nuevo que tendremos en el ADK, en el cuadro 1 teneis
algunas diferencias con respecto a la versión comentada
en el artículo. Debido al uso que hace de los agentes de Microsoft
este SDK sólo está disponible para plataforma Windows.
Una vez que tengaís en vuestra máquina todo el software
necesario pasamos a la instalación propiamente dicha, en
este caso y antes de comenzar con este proceso os recomiendo que
verifiqueis que en vuestro equipo teneis una versión superior
o igual a la 5.0.0.3185 de la Microsoft Java Virtual Machine que
el ADK necesita para poder funcionar correctamente, en caso de
que no la tengais instalada o que la versión sea una versión
inferior podeis descargarla desde Microsoft en la siguiente dirección:
http://www.microsoft.com/java/vm/dl_vm32.htm
Suponiendo que teneís en vuestro equipo instalada está
versión de la máquina virtual Java podemos iniciar
la instalación del ADK, todo el proceso es muy sencillo
y basta con ejecutar el fichero MobileADK.exe que previamente
hemos descargado. Este fichero es el que tendremos en caso de
haber optado por la descarga de agentes y ADK todo en un único
archivo (aproximadamente unos 20 megas), al ejecutar el MobileADK.exe
tendremos que hacer durante su ejecución la instalación
de los agentes de Microsoft siguientes:
- Lernout & Hauspie TruVoice Amer. Eng TTS Engine
- Merlin
- Microsoft Speech Control Panel
- Microsoft Command & Control Engine
- Soporte para VoxML 1.2 y VoiceXML 1.0
- Ayuda integrada de WML, WMLScript y VoxML
- La ventana de output está mejora para mostrar mensajes
de VoxWML
- Soporte para imagenes en formato wbmp
- Correción de algunos bugs existentes en la versión
1.1
- Implementación de timeouts para aplicaciones basadas
en VoxML y VoiceXML
- Implementación de los protocolos de voz prompt:// y
builtin://
- Mejoras en la interfaz del IDE
Cuadro 1
Todos estos agentes forman parte de la Microsoft Speech SDK
la cual es toda una suite de programación para hacer uso
de tecnología de voz, el kit original (ahora mismo acaba de salir
la beta de la versión 5.0) tiene multitud de ejemplos,
ayudas, controles, y en definitiva todo lo necesario para integrar
la tecnología de voz con cualquier aplicación, incluida
las aplicaciones de telefonía (Microsoft tiene todo un site dedicado
a este SDK en la siguiente página Web http://www.microsoft.com/IIT
que bajo el nombre genérico de Intelligent Interface Technologies
nos permite descargarnos todo el software y documentación
necesaria para poder trabajar, aunque cualquiera que se haya iniciado
en este mundo aunque sea brevemente sabrá que hacer aplicaciones
de voz resulta en muchos casos complicado aun teniendo todos los
elementos básicos necesarios para ello).
En el caso de que hayamos seleccionado bajarnos el ADK por partes
(por un lado el programa y por otro los agentes) os recomiendo
que realiceis en primer lugar la instalación de estos últimos
(fichero MobileADK_Agents.exe) y posteriormente la instalación
del entorno de desarrollo propiamente dicho (MobileADK_Only.exe),
este fichero se descomprime en varios ficheros exe (actcnc.exe,
merlin.exe, Msagent.exe, spchcpl.exe y tv_enua.exe) los cuales
podeis instalar en el orden que querais.
Independientemente de si la instalación la haceis en
un paso (fichero MobileADK.exe) o en varios pasos (MobileADK_Only
y MobileADK_Agents.exe) el hecho es que en el proceso de instalación
si queremos hacer uso posteriormente de las opciones para desarrollar
aplicaciones que hagan uso de la tecnología VoxML tendremos que
configurar correctamente las opciones de voz de nuestro microfono
(recordad que es la única forma de poder pasar al PC nuestra voz,
por lo menos de momento) a estás pantallas de configuración
(ver las figuras siguientes) se llega cuando realizamos la instalación
de los agentes y en ella tenemos que configurar los siguientes
aspectos:
- Tipo de salida de audio que tenemos es decir, altavoces (speakers)
o auriculares (headphones), adicionalmente podemos hacer una prueba
para ver si funciona correctamente y seleccionar el volumen (figura
1)
- Tipo de microfono, en este caso tenemos unas cuantas posibilidades,
y podemos elegir entre microfonos de sobremesa, los que van
fijados a los auriculares, o bien los más modernos que
van incorporados en el monitor o incluso en el teclado de la
máquina. Aparte en esta pantalla tenemos un botón
(Buying a Microphone) en el que si presionamos nos dan una serie
de recomendaciones para la compra de un microfono, resulta interesante
su lectura aparte de curioso (figura 2).
- Una vez que se ha indicado el tipo de microfono del que disponemos,
el sistema trata de evaluar la calidad del mismo mediante el
dictado de una frase, para hacer este dictado se nos recomienda
que el lugar donde nos encontremos se encuentre lo más
silencioso posible para evitar que se produzcan interferencias
que puedan mermar la calidad de la grabación de la frase
(Figura 3 y 4)
Finalmente cuando el proceso de instalación de los agentes
de Microsoft termina tenemos dentro del Panel de Control de Windows
un nuevo elemento denominado Speech que nos permite acceder a
las propiedades de los dispositivos de entrada y salida de voz,
en el apartado de utilidades haremos más incapie en este
aspecto. Finalizada la instalación de los agentes se puede
continuar con la instalación del ADK, en el programa de
instalación del ADK lo único que tenemos que indicar es
la carpeta de destino en el disco duro y la ubicación del
acceso directo del programa dentro de Windows.
EL ENTORNO DE TRABAJO
Una vez que el programa se encuentra instalado en nuestro disco
duro (en el cuadro 2 teneis una breve explicación de la
estructura de directorios que se crean) el aspecto que presenta
cuando accedemos a él es el siguiente (figura 5):
Como podeis ver por en la figura el aspecto que tenemos en este
entorno no es muy diferente de los entornos que hemos visto en
otros articulos como puede ser el de Nokia o el de Ericsson, por
un lado tenemos la ventana del IDE donde podemos escribir y depurar
nuestros programas y en el lado derecho tenemos el típico visualizador
en el que poder testear si todo lo que estamos haciendo es correcto,
en este entorno recibe el nombre de UIS o User Interface Simulator.
Las características comunes que presenta el ADK de Motorola con
respecto a otros entornos son las siguientes:
- Un editor integrado que nos permite escribir programas en WML,
WMLScript y como novedad hacer documentos en VoxML del que ya
hablaremos luego.
- El compilador, poco hay que decir de él, nos permite
compilar nuestros ficheros WML y WMLScript
- El editor nos muestra las etiquetas que introducimos en diferentes
colores, por lo que resulta mucho más legible el código
que escribimos.
- También tenemos un analizador de sintaxis que verifica
el código que vamos introduciendo y nos indica donde hay
errores de este tipo.
La estructura de directorios del ADK es muy simple
y se compone de tres carpetas que cuelgan del directorio
Motorola/Mobile ADK a saber:
- Examples: en esta carpeta tenemos diferentes ejemplos
escritos en WML, WMLScript y lo más interesante en VoxML.
Cada lenguaje está separado en su propia carpeta.
- HLP: contiene los manuales de ayuda del simulador y del
IDE
- Phone: tiene distintos bmp con diferentes tipos de moviles
asi como los correspondientes ficheros .dev asociados que
podemos cargar desde el UIS.
Cuadro 2
Si nos centramos en las características particulares
del entorno en cuestión tenemos que dividirlo en dos
partes:
- Caracteristicas del editor
- Caracteristicas del UIS
Caracteristicas del editor
El editor es el elemento fundamental para realizar nuestro trabajo
y de las posibilidades que incorpore dependerá en mayor
o menor medida que la programación de nuestras aplicaciones
sea una tarea más o menos cómoda. El editor del
ADK está divido en tres partes fundamentales: por un lado
tenemos el área destinada a la inserción de nuestro
código, por otro tenemos el área de salida de resultados
(ventana de output) y finalmente tenemos la ventana de proyectos,
en este caso y al igual que sucedia con el kit de Ericsson los
distintos documentos que forman nuestra aplicación se agrupan
dentro de proyectos de manera que su manipulación resulta
mucho más lógica (en el cuadro 3 teneis la estructura
de un fichero .prj típico con una pequeña explicación
del mismo).
El contenido de un fichero .prj es similar al siguiente:
Project Structure - Don't edit.. NO . .
book_buying.wml. . . .
calculateTotal.wmls. .
En estas líneas si os fijais se nos advierte de que
no modifiquemos el fichero y seguidamente tenemos los distintos
ficheros que están incluidos dentro del proyecto, adicionalmente
aparece información de control (los cuadraditos) que
sirven para que el editor genere la ventana de proyecto
Cuadro 3
Veamos a continuación las distintas opciones que componen
el editor:
El menu principal de la aplicación está compuesto
por:
- File: Contiene todas las opciones necesarias para la manipulación
de ficheros, podemos crear ficheros nuevos, abrir y cerrar ficheros
previamente creados. También tenemos la posibilidad de
imprimir el contenido de los ficheros y mostrar en pantalla una
previsualización de los mismos (esto es nuevo con respecto
a otros entornos que no permiten esta posibilidad)
- Edit: Las típicas opciones de edición, como son
cortar, pegar, copiar, busqueda y reemplazo de texto y adicionalmente
tenemos opciones para modificar el tipo de letra (Set Font), para
ir a una línea determinada de la aplicación (Go
To), la inclusión de bookmarks o marcas distintivas en
el código que nos ayudan en su escritura, en este caso
tenemos todo un submenu completo (Bookmarks) que nos permite crear
nuevas marcas, movernos entre marcas y borrarlas en la figura
teneis un ejemplo de bookmarks en el código (puntos de
color azúl).
- View: Permite mostrar u ocultar las distintas ventanas del
ADK, como son la ventana de output, proyecto, la barra de estado
y la barra estandar.
- Project: Con las opciones de crear un nuevo proyecto (New
Project), cerrarlo (Close Project), abrilo (Open Project) y
añadir/borrar documentos al mismo (Add Files y Remove File respectivamente).
- Tools: En esta opción tenemos las diferentes herramientas
de la aplicación como son el compilador, inicio y fin
de la simulación de la ejecución de un programa
(Start Simulate y Stop Simulate respectivamente). También
podemos acceder a las Settings o configuración donde
están los diferentes ejecutables que realizan la codificación,
compilación y análisis del código (figura
7) , como podeis ver en la figura podemos establecer que programas
son los que van a hacerse cargo del análisis sintáctico
de los documentos VoxML, el encoder para WML y el compilador
para WMLScript.
- Window: Comprende las opciones típicas de manipulación
de ventanas como son la disposición en cascada, mosaico
vertical y horizontal, asi como opciones para cerrarlas todas
(Close All) y para movernos entre ellas (opciones Next y Previous)
- Help: La ayuda del entorno, y poco más podemos decir
de esta opción.
Caracteristicas del UIS
El User Interface Simulator se caracteriza por tener un menu
de opciones bastante completo que permite configurar el emulador
para aceptar diferentes configuraciones en función del
tipo de aplicación que queramos visualizar, si examinamos
este menú contamos con las siguientes opciones:
- File: Desde esta opción de menú podemos:
- cambiar las distintas configuraciones del móvil mediante
Open Configuration, desde aquí se nos abre un nuevo cuadro
de dialogo donde podemos elegir el fichero .dev que queremos cargar,
disponemos de configuraciones para los siguientes telefonos móviles:
i500, i700, i1000, startac, T2267, v2282 y v8160.
- hacer la recarga de la página (Reload) y ver el transcript
, esta es una ventana donde va apareciendo información
de debug de los documentos WML y VoxML por los cuales vamos navegando
(en la figura 8 teneis un ejemplo de esta pantalla con el código
de la página que se está visualizando), esta ventana
por decirlo de alguna manera es el marco donde la opción
Info del menu del UIS vuelva los resultados que va obteniendo.
- Info: Nos permite volcar dentro de la ventana de transcript
información sobre las páginas por las cuales vamos
navegando, como pueden ser el código fuente, o los mensajes
que recibe y envia las aplicaciones VoxML.
- Settings: Desde aqui podemos modificar el modo de funcionamiento
del sistema UIS, de este modo tenemos los siguiente:
- Posibilidad de elegir el modo de operación del móvil,
entre modo WML o VoxML.
- Podemos tambien indicar (Mobile Link Settings) el tipo de
conexión que se va a establecer HTTP Direct o bien a
través de un Gateway, esta misma pantalla podemos indicar
la ruta de la página home para WML y VoxML.
- También disponemos de una lista de bookmarks o favoritos
(Add address) donde incluir las direcciones que más nos
gusten, en la figura 9 teneis la pantalla de esta opción.
- Help: La ayuda sobre el UIS.
UTILIDADES
Las utilidades que incorpora el ADK son básicamente orientadas
a la conexión con las herramientas de voz de Microsoft
y no pueden considerarse elementos propios del ADK, ya que podriamos
tenerlas sin necesidad de tener el programa instalado en nuestra
máquina, según esto los elementos que vamos a ver en este
apartado se van a centrar en los diferentes agentes que se han
instalado y en la tecnología VoxML.
Cuando finalizamos la instalación de los agentes de Microsoft
tenemos un nuevo elemento en el Control Panel de nuestra máquina,
este nuevo elemento es el Speech (del que ya comentamos algo antes)
este programa nos permite configurar los elementos de entrada
y salida de voz de nuestro equipo, esto es el microfono y los
auriculares (ver figura 10), se puede decir que los parámetros
de configuración que podemos modificar son los relativos
al tipo de voz que queremos oir (tenemos distintos tonos de hombre
y mujer en el idioma ingles), también podemos acceder al
entrenamiento de la máquina para que sea capaz de entender
aquello que pronunciamos en el microfono y actuar en consecuencia.
Además del Speech control tenemos otro elemento importante
al cual accederemos desde el UIS al seleccionar el modo VoxML,
este elemento es Merlin (figura) o también conocido como
el Speech Agent, este programa representado por el mago que teneis
en la figura aparece siempre que un fichero VoxML es ejecutado
y actúa hablando (literalmente) el contenido de la página
en la cual estamos conectados.
Pero lo realmente interesante de todo esto es la nueva tecnología
que Motorola ha desarrollado (VoxML está basado en XML
y se puede decir que es una variante del voiceXML (Voice eXtensible
Markup Language) y sus especificaciones las dirige el VoiceXML
Forum creado por AT&T, IBM, Motorola y Lucent Technologies.),
el VoxML es un nuevo lenguaje que proporciona a los desarrolladores
de aplicaciones móviles una nueva herramienta para crear
aplicaciones cuya elemento fundamental de trabajo sea la voz,
de modo que la navegación, la entrada de datos e incluso
la salida se basen en este elemento. La estructura del lenguaje
está pensada para facilitar la creación de este
tipo de aplicaciones y aunque es muy similar a HTML lo más
importante a la hora de desarrollar aplicaciones de este tipo
es establecer de una manera muy clara la secuencia de interacción
entre usuario y aplicación, cosa que con los tags disponibles
en VoxML se favorece enormemente.
Los dos elementos fundamentales de las aplicaciones VoxML son
por un lado el DIALOG y el STEP (actualmente no sé como
traducirán estos elementos al castellano, toda la gente
que sabe algo de esto los llama dialog y step simplemente) los
cuales proporcionan la estructura básica para las aplicaciones
VoxML. El tag DIALOG define el alcance del documento VoxML y dentro
de él se encuentran el resto de los elementos que conforman
el documento de manera que sólo existe un DIALOG por fichero
(similar a y ).
El tag STEP define el estado de la aplicación dentro
del DIALOG, es decir en conjunto STEP Y DIALOG representan la
interacción entre usuario y aplicación de modo que
cuando entramos dentro de un documento VoxML el browser navega
entre los diferentes STEP del DIALOG y muestra el resultado al
usuario
Como veis todo lo visto en este apartado es un pequeño repaso
sobre las enormes posibilidades que toda la tecnologia VoxML lleva
asociada consigo y que trataremos más adelante en un futuro
artículo al igual que el Speech SDK 4.0 de Microsoft que
llevaría varios artículos contaros todas sus posibilidades.
UN PEQUEÑO PROGRAMA EN WML
Hasta ahora hemos visto las posibilidades que tenemos dentro
del ADK, y como ya es habitual toca el turno ahora de la parte
práctica del artículo, la creación, depuración
y ejecución de un programa en WML y para ello seguiremos
haciendo uso de nuestro querido 'Hola Mundo'. El código
que compondrá el programa es de sobra conocido por todos
aquellos que esteis siguiendo estos artículos y es el siguiente:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="card1" title="Motorola Demo">
<p>
Hola mundo<br>
</p>
</card>
</wml>
El paso siguiente es ver como hacemos para crear nuestro primer
proyecto, enlazar el documento que contiene el código anterior
y pasar a ejecutarlo, para ello seguiremos las siguiente secuencia
de pasos:
- El primer paso es crear un nuevo proyecto, para ello hacemos
clic en la opción Project del menu principal y en el
cuadro que nos aparece en pantalla introducimos el nombre del
proyecto que queremos crear, por ejemplo Proyecto1, y la ruta
donde queremos crearlo, a partir de esta ruta nos generará
una nueva carpeta con el nombre del proyecto que hemos introducido
y dentro de ésta a su vez tendremos un fichero en este
caso Project1.prj con la información asociada al proyecto
(cuadro 2).
- Una vez creado el proyecto lo que tenemos que hacer es crear
los documentos que estarán dentro del mismo, este caso
solo vamos a tener un único documento por lo que tenemos que
hacer ir a File y seleccionar New, seguidamente nos mostrara
en pantalla un cuadro de dialogo donde tenemos que elegir el
tipo de fichero que queremos crear (WML, WMLScript y VoxML),
en nuestro caso particular elegimos WML e introducimos el nombre
SALUDO.WML, fijaros que la ruta donde se almacenará este
fichero es la misma donde hemos creado el proyecto, como aspecto
interesante tenemos que el nuevo fichero que se nos crea posee
un esqueleto de programa ya formado que nos vendrá muy
bien para empezar a trabajar. También es importante destacar
que el fichero no se asocia automáticamente al proyecto
activo actualmente (aunque curiosamente la ruta por defecto
en la que se almacena coincide con la del proyecto) por lo que
es necesario asociarlo de manera manual, para ello solo tenemos
que seleccionar en el menú Project la opción Add File(s)
y indicar que ficheros formaran parte del proyecto, por defecto
se nos muestran los ficheros de la ruta en la que el proyecto
está almacenado pero podemos elegir de otras.
- Lo siguiente que tenemos que hacer es insertar nuestro código
y salvar el fichero WML modificado, en este caso el código
que tenemos que insertar es mínimo y se reduce a la inclusión
del código
<p> Hola Mundo <br></p>
y al cambio del title del card por el de "Motorola Demo".
Ya lo único que nos queda es proceder a la compilación
del programa para verificar si existen o no errores y pasar a
la ejecución del mismo dentro del UIS. Para realizar la
compilación podemos seleccionar la opción de menu
Tools y elegir Compile, en este caso en la ventana de output obtendremos
los mensajes de error oportunos en caso de que existan problemas
en nuestro código o bien un mensaje de que todo ha ido
bien en caso contrario, solo resta activar la simulación
(en el ADK para ver el resultado de un programa siempre es necesario
activar esta opción y desactivarla cuando queremos volver
a hacer cambios en el código) y ver el resultado en el
UIS (en la figura 11 tenemos la apariencia final de todo el proceso).
CONCLUSIONES
Sin lugar a dudas el Motorola ADK es un serio competitor para
el resto de entornos de desarrollo que hemos venido evaluando
a lo largo de esta serie de artículos, lo más interesante
probablemente sea la integración con el lenguaje VoxML
lo que abre un nuevo mundo de posibilidades dentro del mundo de
desarrollo de aplicaciones para móvil, por lo demás
el entorno de desarrollo, el emulador de telefono, las opciones
de personalización, etc hacen de este entorno ideal para
nuestros programas, el mayor inconveniente proviene de la falta
de herramientas para la manipulación de gráficos,
a mi gusto se hecha en falta un editor de WBMP que este integrado
con la herramienta y no tener que usar ningun programa externo,
también sería deseable un editor más inteligente
en el sentido del de Ericsson en el cual podiamos incluir las
etiquetas de manera automática mediante cuadros de dialogo
que rellenamos, no obstante, la versión 2 definitiva estará
pronto entre nosotros y seguro, pero poco más se le puede
objetar al Motorola ADK, ahora sois vosotros y termino casi como
comence diciendo que el trabajo duro comienza en este momento
por vuestra parte, analizando todas las posibilidades de la herramienta
y haciendo de esta nuestro entorno habitual de trabajo. Por mi
parte nada más por ahora, hasta la próxima.
Santiago Márquez Solís
Envía el artículo a un amigo: