|
WEBSPHERE DEVICE DEVELOPER 5.6: |
|
|
Este manual explica el funcionamiento del programa WebSphere Studio Device Developer (WSDD) 5.6, desde su instalación en Windows hasta el desarrollo y pruebas de aplicaciones J2ME sobre dispositivos móviles.
El entorno de desarrollo cuenta con un editor de texto que resalta las palabras clave de Java, un editor gráfico para incluir elementos de las interfaces gráficas, y un depurador para examinar los errores. Además, permite añadir distintos emuladores para probar las aplicaciones, como los de la serie 40, 60, 80 de Nokia, Pocket PC, Wireless Toolkit, etc. | |||
|
El proceso de instalación en Windows es bastante sencillo, casi automático, como la mayoría de programas que se instalan sobre Windows.
Lo primero es introducir el CD de WSDD 5.6 en el ordenador, automáticamente se arranca la máquina virtual de java y se ejecuta el programa de instalación sobre ella (ver Figura 1). Figura 1. Bienvenida a la instalación del WSSD En caso de que esto no ocurra, podemos abrir el explorador de Windows y ejecutar el fichero autorun o windows\setupWin32. A continuación, debemos confirmar que deseamos instalar WSDD haciendo clic en el botón Next. Después se nos pide aceptar la licencia del mismo, y tras la confirmación, tenemos que indicar el directorio destino de la instalación, y los accesos directos que queremos crear en el Menú Inicio. Por último, se muestra un resumen de los parámetros elegidos antes de confirmar el comienzo de la instalación (ver Figura 2). Figura 2. Confirmación de parámetros de instalación Después de la confirmación, comienza la copia de archivos (ver Figura 3), y una vez finalizado este proceso, se presenta una pantalla de información sobre la correcta instalación del programa (ver Figura 4). Figura 3. Proceso de copia de archivos A partir de este momento, podemos utilizar el entorno de desarrollo desde el menú de inicio o el acceso directo del escritorio. Si miramos las propiedades del icono de ejecución en el escritorio, podremos ver una opción: -data "C:\Archivos de programa\IBM\DeviceDeveloper5.6\workspace", la cual indica el espacio de trabajo, por defecto, donde se almacenarán nuestros proyectos. Figura 4. Fin de la Instalación | |||
|
Cuando iniciamos WSDD, lo primero que nos presenta es una pantalla de bienvenida en la que se describe brevemente el propósito de éste programa (ver Figura 5). Dicha pantalla presenta varias opciones para comenzar a utilizar el programa:
Las aplicaciones se pueden crear directamente desde el menú principal: File -> New -> Project -> J2ME. Figura 5. Bienvenida al WSSD A continuación, veremos las dos opciones disponibles para crear aplicaciones J2ME. 3.1. Proyecto J2MEComo se mencionó previamente, esta opción es más general, ya que nos permite crear aplicaciones para la configuración CDC o CLDC de J2ME. Al seleccionar esta opción, se pide el nombre del proyecto que vamos a crear, utilizándose después dicho nombre para identificar los archivos propios del mismo. Además, podemos cambiar el directorio por defecto para almacenar nuestro proyecto.El siguiente paso es elegir las librerías de clases java con las que trabajaremos. Así en función de lo que vamos a desarrollar y para qué dispositivo, elegiremos CDC, CLDC, CLDC 1.1 (en pruebas), Foundation Profile, MIDP, MIDP 2.0… En cada opción se nos indica en el panel de la derecha las plataformas sobre las que funcionará nuestra aplicación. Por ejemplo, si elegimos MIDP 2.0, la aplicación podrá correr sobre Windows x86 o sobre PocketPC ARM (ver Figura 6). Figura 6. Selección de Librerías Java Además si seleccionamos la opción "show specific implementations (advanced)", nos permitirá ver información sobre las implementaciones específicas de cada librería, de forma que podremos asegurarnos de elegir las librerías adecuadas si queremos programar una aplicación específica para un entorno concreto (ver Figura 7). Figura 7. Información detallada de implementaciones específicas En la pantalla final de configuración se nos permite elegir los contenidos iniciales de nuestro proyecto desde alguna carpeta del sistema (primera pestaña), o simplemente dejarlo igual para crear un proyecto nuevo con los contenidos por defecto. Además, se pueden añadir otros proyectos (segunda pestaña), librerías o archivos jar/zip (tercera pestaña) ya desarrollados (ver Figura 8, Figura 9).
Al hacer click en Finish, hemos creado nuestro proyecto preparado para empezar a crear nuestras clases. 3.2. MIDlet SuiteEl otro asistente básico permite crear MIDlet Suite, generando el esqueleto básico de un MIDlet de forma automática. Similar a la opción anterior, tenemos que elegir el nombre del proyecto (ver Figura 10), el nombre del MIDlet, la versión de MIDP, y el nombre de la clase. El asistente, se encarga de crear la clase básica, entre otras cosas.Se puede incluir un MIDlet ya existente (hacer clic en Browse), o crear un proyecto nuevo. En el último caso, tenemos que indicar el nombre del nuevo proyecto, el nombre del paquete ( Package), y el nombre de la clase. La convención es que empiece por minúscula, al contrario que el nombre de la clase, que se espera empiece por mayúscula. Figura 10. Creación de un nuevo MIDlet Suite Una vez elegimos todos estos datos de configuración, se nos presenta una pantalla como la mostrada en la Figura 11. Figura 11. Ventana Principal del Entorno de desarrollo | |||
|
Las distintas configuraciones para ver nuestra aplicación se denominan perspectivas, las cuales a su vez tienen distintas zonas (Show view). La que nos aparece en la imagen es la denominada perspectiva MIDP Visual Editor (). En ella tenemos como ventana principal un editor visual, en el que podemos colocar los elementos que queramos en nuestro MIDlet. En el centro se encuentra la ventana con el código fuente de nuestra clase (sección 0), la cual contiene la estructura básica del MIDlet (startApp(), pauseApp() y destroyApp()) ya que el asistente lo ha creado por nosotros. La parte inferior muestra en el lado izquierdo una ventana Properties, que nos indicará y nos permitirá editar las propiedades de los elementos visuales, y en el lado derecho Tasks en la cual se muestran mensajes de error, advertencia, o información útil con su descripción. Finalmente a la derecha se resume la estructura de la clase que estamos editando (ventana Outline), el paquete al que pertenece, las declaraciones de importación, sus métodos y propiedades.
Aparte de esta perspectiva, existen otras que podemos elegir en el menú principal, Windows. Además, se puede cambiar de perspectiva utilizando los botones mostrados en la barra de herramientas a la izquierda del todo de la ventana, resaltado con un cuadro en la Figura 11. La perspectiva Java (), cambia las ventanas inferiores por una consola de salida de Java, de forma que se pueden observar los mensajes que arroje la misma. La perspectiva Debug () nos facilitará las cosas cuando depuremos nuestra aplicación (ver Figura 12), cuya utilidad es detallada en la sección 4.4. Figura 12. Ventana de la perspectiva Debug Por último, la última perspectiva básica es Java Browsing (), en la cual podemos navegar por la estructura de nuestros proyectos java. Así, tenemos una ventana con todos nuestros proyectos, otra con los paquetes, con los tipos definidos, y con los miembros de las clases anteriores (ver Figura 13). Figura 13. Ventanas de la perspectiva Java Browsing Como vemos, prácticamente todas las herramientas que necesitamos para crear nuestras aplicaciones las tenemos disponibles en el panel principal de la aplicación, mediante una perspectiva u otra. Además, también podemos recurrir a las barras de herramientas como accesos más rápidos a otras funciones. Por último, existen los menús superiores más típicos, como File, Edit, Search, etc., que en este caso cumplen funciones generales comunes a la mayoría de las aplicaciones, pero otros, como las opciones Project, Run o Devices cumplen funciones específicas del WSDD. Además, en caso de tener más de un proyecto, podemos navegar entre ellos usando la ventana Package Explorer, la cual nos presenta todos los proyectos existentes y los elementos que los componen. Esta ventana puede abrirse desde el menú: Window -> Show view -> Package Explorer. Las acciones básicas (abrir, cerrar, generar la documentación, construir) que pueden ser realizadas sobre los proyectos se encuentran en el menú principal: Project (ver Figura 14). Figura 14. Opciones de los proyectos 4.1. Editor del código fuenteUna de las ventanas principales del WSSD es el editor del código fuente. Este editor está siempre presente, aunque cambiemos entre las distintas perspectivas.Como su nombre lo indica, en este editor se muestra el código fuente de la clase con todos sus elementos. Pero además incluye diversas funcionalidades para ayudar al desarrollador, entre ellas tenemos:
Figura 15. Métodos de un objeto Figura 18. Código de un único método 4.2. Usando Imágenes u otros recursosDentro de un MIDlet es posible usar imágenes u otro tipo de recursos, por ejemplo, sonidos. Estos recursos deben ser empaquetados con la aplicación, por lo tanto, en Websphere para añadir recursos debemos seguir los siguientes pasos:
Figura 19. Selección del fichero jxeLinkOptions Figura 20. Ventana Inclusion/Exclusion Figura 21. Añadir recursos No olvide que las imágenes tienen que estar en formato PNG. 4.3. Utilización de RMSCuando se trabaja con RMS es necesario tener presente varias recomendaciones, la primera es que siempre hay que cerrar los Record Store porque sino podemos perder la información que estamos almacenando en ellos. Recordar también que cuando se almacena información en un Record Store se obtiene el identificador (recordID) de ese record, y siempre que queramos obtener, modificar o borrar esta información debemos acceder a ella utilizando el identificador. Por último, si queremos borrar un Record Store es recomendable eliminar primero todos los records existentes en el Record Store.Además de estas recomendaciones, a la hora de trabajar con almacenamiento persistente en los emuladores del WebSphere Device Developer es necesario tener en cuenta las siguientes consideraciones:
El problema que plantea esto (si no borráis los record dentro del Record Store) es que cuando leéis desde el recordId=1 os aparece todos los records que habíais añadido a lo largo de las sucesivas ejecuciones del programa. 4.4. Depuración de aplicacionesComo se mencionó anteriormente, la perspectiva Debug nos ofrece distintas posibilidades de depuración.Lo primero que debemos hacer para encontrar errores que se nos resisten en nuestra aplicación, es seleccionar la clase elegida y cambiar a esta perspectiva (ver Figura 22) . Figura 22. Perspectiva Debug Al cambiar a esta perspectiva, podemos comprobar que la opción Run del menú tiene muchas más opciones que en las demás perspectivas (ver figura 5.2), indicadas para la depuración de la aplicación, como Resume (continuar), Suspend (pausar), Terminate (finalizar), Add Breakpoint (añadir punto de parada), etc. Estas opciones nos permiten añadir puntos donde se detendrá la ejecución de la aplicación para comprobar el estado de la misma. Además, podemos continuar o parar en cualquier momento, por ejemplo, cuando se haya detectado el error, o simplemente para ver cómo evoluciona el programa. Figura 23. Menú Run en perspectiva Debug El proceso de depuración comienza al establecer los puntos críticos que deseamos examinar (breakpoints). Para ejecutar y depurar la aplicación, hacemos clic en Run -> Debug. Al ejecutar la aplicación se pueden presentar problemas si tenemos instalado un firewall local en la máquina. Esto se debe a que para realizar la depuración se abre una conexión a un puerto TCP, de forma que si el firewall niega esta conexión, el WebSphere nos devolverá un mensaje de error y finalizará la aplicación. Las opciones de configuración pueden verse en la sección 5, ya que en esta sección nos interesa mostrar los distintos tipos de breakpoints que podemos utilizar en función de nuestras necesidades:
|
|||
|
Para comenzar a familiarizarnos con el WebSphere, crearemos un MIDlet muy sencillo que nos salude con la frase "hola mundo" cuando pulsemos un botón.
Para ello seleccionamos la opción crear un MIDlet Suite (File -> New -> Project -> J2ME -> MIDlet Suite). Como vimos anteriormente, automáticamente se crea un MIDlet con un Form como contenedor principal de los elementos. Ahora, debemos crear la interfaz gráfica, que para este caso, será suficiente con un campo de texto. Para ello, elegimos el elemento StringItem del menú de la izquierda dentro de Form Items y lo colocamos sobre nuestro panel inicial (Form). El siguiente paso es editar los campos de los elementos que hemos creado: el formulario y el campo de texto. Haciendo clic sobre cada uno de ellos, en la ventana Properties nos aparecen todas las propiedades que podemos editar (ver Figura 30). Figura 30. Propiedades del Objeto Form Para el formulario, hemos indicado únicamente su título (ver Figura 30). Sin embargo, en el campo de texto hemos editado tanto su etiqueta como su contenido (ver Figura 31), de forma que la etiqueta nos indique visualmente cuál es nuestro elemento y el contenido lo ponemos vacío para rellenarlo más adelante. Figura 31. Propiedades del objeto StringItem Ahora debemos crear la funcionalidad de nuestra aplicación mediante código. Para ello, debemos crear un botón de acción, tipo Command; y le decimos que el CommandListener es la misma clase: okCommand = new Command("saluda", Command.OK, 1); form.addCommand(okCommand); form.setCommandListener(this); Implementamos la función commandAction necesaria que nos muestre el mensaje "HOLA MUNDO!!", y ya tenemos escrito todo nuestro MIDlet. public void commandAction(Command c, Displayable d) { if (c==okCommand) { if (this.stringItem.getText().equals("")) { this.stringItem.setText("HOLA MUNDO!!"); } else { this.stringItem.setText(""); } } } El siguiente paso es simularlo. Para ello, se puede depurar (Run -> Debug) o ejecutarlo directamente (Run -> Run). Nos aparecerá un menú como el mostrado en la Figura 32. Figura 32. Configuración para la ejecución Desde esta ventana podemos crear, gestionar y ejecutar lo que se denomina configuraciones. Cada una de estas configuraciones está asociada a un tipo de aplicación, como se observa en el listado de la izquierda. Así, podemos tener configuraciones que se refieren a C/C++ Application, Java Applet, Java on Device, o MIDlet Suite, siendo ésta última la que nos interesa. Para crear una nueva configuración, hacemos clic sobre MIDlet Suite, y luego clic en el botón New (también se puede hacer doble clic), y se abre el panel de la derecha con las distintas opciones de configuración. La primera pestaña, MIDlet Suite, nos permite elegir el proyecto al que pertenece la aplicación que queremos ejecutar (Browse), el dispositivo donde deseamos simularlo (por defecto sólo incluye uno local) y los suites (.jad) disponibles en el mismo. Los dispositivos pueden ser previamente configurados como se muestra en la sección 6. En la pestaña Arguments, permite indicar los parámetros que queramos pasarle a la máquina virtual de java. En las siguientes pestañas se nos permite cambiar el classpath, el path hasta los ficheros fuentes, y otras opciones similares. Lo más recomendable para este tipo de aplicaciones es dejar todos estos parámetros en sus valores por defecto, ya que es el mismo WebSphere el que se encarga de colocar los ficheros en una estructura de directorios que nos permita su correcta ejecución. Por último en la pestaña final, Common, podemos hacer que la configuración que hemos creado aparezca en las secciones Debug o Run del editor, de forma que las tengamos más accesibles para sucesivas ejecuciones (ver Figura 33). Además, también existe la posibilidad de cambiar la perspectiva al ejecutar o depurar la aplicación. Figura 33. Pestaña Common Cuando terminemos de realizar nuestra configuración, hacemos clic en Apply para que se nos guarden los cambios, y por último sobre Run. Se nos abrirá una ventana (ver Figura 34) en la que podemos comprobar si el comportamiento es el deseado en el dispositivo elegido. Figura 34. Apariencia del Emulador Si hemos incluido la configuración creada en los menús de Run o Debug, podremos acceder a ella con más comodidad haciendo clic sobre ellos utilizando la barra de herramientas. Además, con los comandos abreviados F11 y ctrl-F11, podemos depurar y ejecutar (respectivamente) la última configuración utilizada (ver Figura 35). Figura 35. Opciones de depuración y ejecución |
|||
|
Esta sección describe como añadir nuevos emuladores para probar nuestras aplicaciones, con el objetivo de simularlas en un entorno similar al de destino. Como ejemplo utilizaremos el MIDP SDK de la Nokia Series 60, pero el procedimiento es similar para todos los emuladores, Nokia Series 80, PalmOS, Wireles Toolkit, etc.
Ahora para ejecutar nuestra aplicación podremos configurar su ejecución en el nuevo emulador (ver Figura 37). Figura 37. Configurando la ejecución con el nuevo emulador | |||
© Autores:
|
|