java En el resto del curso
Versión: 2.0, Septiembre, 2006

Juan Manuel Fernández Luna
Web: http://decsai.ugr.es/~jmfluna, Mail: jmfluna@decsai.ugr.es
IndiceInicioPerl

(C) Decsai
Web: http://decsai.ugr.es

Breve descripción de cada una de las partes.

Herramientas y entornos de desarrollo

En este tutorial se considerarán las herramientas básicas de desarrollo de aplicaciones JAVA para dispositivos móviles. Comenzaremos dando una visión de las herramientas básicas, para considerar, en último lugar, algunas de las herramientas integradas disponibles para los desarrolladores.  Analizaremos, en primer lugar, la programación de más bajo nivel, interactuando con la máquina virtual de CLDC. A continuación estudiaremos la programación de MIDlets, mediante MIDP. En ambos casos, se estudiará inicialmente la forma de operar desde comandos, para describir, a continuación, la operativa mediante entornos de desarrollo de libre disposición.


Introducción a Java

En sección 1, se hace una breve introducción al lenguaje Java, haciendo referencia a su origen, historia, relación con Internet,  el significado del bytecode,  y sus características más importantes. Se sigue con una introducción al paradigma  de la programación orientada a objetos en que se basa Java. Se termina presentado como crear el  primer programa con CLDC, que es la configuración en la que se basan los dispositvos móviles de menor capacidad.  En sección 2 presentamos los tipos de datos básicos del lenguaje Java, analizando como se definen variables y arrays o matrices de estos tipos básicos.  En sección 3 presentamos brevemente los operadores de Java, prácticamente iguales a los de C++.  En sección 4 presentamos las estructuras de control disponibles en Java, de nuevo prácticamente iguales a las de C++.  En la sección 5 estudiamos el concepto de clase en Java, analizando como se construyen, los constructores, las variables  de clase, los métodos, como se crean objetos de la clase, etc.  En la sección 6 analizamos puntos importantes en la definición de los métodos de una clase, como la sobrecarga,  el paso de parámetros de los métodos (por valor, por referencia), los especificadores de control de acceso (public, private, etc),  así como los modificadores static y final. Se hace también una breve introducción de la clase java.lang.String.  En la sección 7 se estudia la herencia, estudiando concepto asociados como la sobreescritura de métodos, polimorfismo  en tiempo de ejecución, clases abstractas, el especificador de control de acceso protected.  En la sección 8 se estudia el tema de la definición de paquetes de clases y el de la creación de interfaces, que son  algo similar a las clases, pero en donde los métodos no tienen cuerpo, sólo su definición.  La sección 9 trata del tema de la gestión de excepciones. Se analiza las principales excepciones existentes en CLDC,  como capturarlas, como lanzar excepciones explícitamente, y como crear nuestros propios tipos de excepciones.  La sección 10 estudia el tema de la programación multihebra. Veremos como crear programas con más de una hebra de ejecución, y aprender a usar los principales métodos de la clase Thread, así como otros métodos de la clase Object (wait(), notify(), notifyAll())  que se usan para que dos hebras puedan comunicarse. Aprenderemos también a sincronizar hebras.  

CLDC

Comenzaremos a implementar un programa con la biblioteca de CLDC, que corresponde al famoso juego de la serpiente (Snake o nibbles). El interfaz gráfico de este juego se construirá cuando se estudie el perfil MIDP.  La sección 11 retoma el concepto de CLDC, que como hemos dicho antes es la configuración disponible para pequeños  dispositivos. Se hará un repaso a la biblioteca de clases que contiene CLDC haciendo énfasis en las clases  que no se han visto anteriormente. La biblioteca de clases de CLDC se divide en los paquetes:  java.lang, java.util, java.io y javax.microedition.io.


MIDP

En este parte del curso enpezaremos a ver la Interfaz de Programación de Aplicaciones (API) de MIDP, explicando las clases más importantes de su jerarquía. Primero nos centraremos en el ciclo de vida de un Midlet y como tratarlo, además de unas cuantas generalidades de la programación de los mismo. Posteriormente veremos cómo realizar el interfaz de nuestros Midlet, tanto en el manejo de la pantalla, como en el manejo de las entradas de usuario. Veremos que la parte de interfaces de usuario de MIDP se puede distinguir en dos partes claramente diferencias, cada uno con su estilo y finalida propios: La primera parte es el API de alto nivel para interfaces de usuario que nos va a permitir desarrollar Midlets utilizando clases para el interfaz, es una forma de programar muy fácil y rápida, pero no tenemos apenas control sobre la pantalla del dispositivo o las entradas que se produzcan. En la segunda parte estudiaremos el API de bajo nivel para interfaces de usuario, que nos va a permitir programar Midlet con un control total de la pantalla y entrada de datos del dispositivo. Esta forma de trabajar será más compleja, pues nos tendremos que preocupar a nivel de detalle de pixel o de tecla pulsada, sin embargo, nos permite un control mayor del dispositivo.


MIDP (Continuación)

En este módulo trataremos la gestión de la conexión a redes en J2ME. Hay tres formas de realizar transmisión de información contempladas en CLDC y MIDP: por sockets, datagramas y por HTTP. Veremos un resumen de las tres con sus ventajas e inconvenientes, centrandonos finalmente en la conexión por HTTP, que es el tipo que está completamente contemplado en  los estándares.  Finalmente se estudiará el almacenamiento persistente en J2ME. MIDP nos proporciona APIS para crear y manejar almacenes de registros. Una especie de bases de datos especialmente creadas para las características de los dispositivos móviles -escasos recursos-. Veremos como dentro de un almacén (tabla de una BD) podemos crear y manejar los registros (tuplas).


Aplicaciones

    Finalmente, se pondrán en práctica los conocimientos adquiridos en el curso, realizando una aplicación para teléfono móvil o PDA.