miércoles, 12 de diciembre de 2007

Guía de desarrollo de aplicaciones móviles - J2ME (2)

Guía 1 – La primera aplicación (2)

Que necesitas para seguir esta guía y realizar la aplicación:

La versión de netbeans puede ser anterior o superior a esta pero necesariamente debe concordar con el paquete netbeans-mobility-5_x-win para Windows, claro y también sirve para los amantes de sistemas UNIX, como Linux. Todo este software lo puedes descargar de la pagina oficial de java ] http://java.sun.com/.
La aplicación la realice en NetBeans 5.5 y los paquetes anteriormente mencionados; sun_java_wireless_toolkit-2_5-windows es un conjunto de herramientas para el desarrollo de aplicaciones móviles, en este se encuentra el emulador, configuraciones generarles, etc.
Como aclaración debo decir que netbeans y su netbeans-mobility no son necesarios para empezar a desarrollar aplicaciones móviles, solamente se puede utilizar el J2SE 5.0 y el sun_java_wireless_toolkit-2_5, pero como un entorno de desarrollo es más eficiente para agilizar el trabajo y revisión de código por esta razón recomiendo utilizar el netbeans.
La instalación de cada uno de estos programas y paquetes no tiene nada de especial, solamente es seguir el cuadro de dialogo de instalación, lo que si recomiendo es que el sun_java_wireless_toolkit-2_5 lo instales en su carpeta por defecto.

Desarrollo del ejemplo
La pequeña aplicación se basara en como iniciar una Midlet y de utilizar elementos como imágenes, comandos (botones), listas entre otras, será una aplicación un poco más amplia que el ejemplo típico de ¡hola mundo!
Primero que todo vamos a crear el proyecto:
  • Ejecutamos el IDE de Netbeans.
  • Damos click en el menú File >> New Project
  • Seleccionamos en categorías la de Mobile y tipo de proyecto Mobile Application, y damos clic en Next (Figura 2.)

Figura 2. Selección tipo de proyecto.
  • En el siguiente cuadro de dialogo, colocamos un nombre para la aplicación (yo lo nombre GuiaMovil) y el directorio donde se guardara, como recomendación, es mejor guardar el proyecto en carpetas que no tengan un nombre muy extenso y que el nombre no contenga espacios entre sus letras, y quitamos la selección de la casilla/opción Create Hello MIDlet (Figura 3), y click en Next.

Figura 3. Nombre y directorio de proyecto.
  • Ahora realizaremos la configuración de la aplicación para un dispositivo con ciertas características, y seleccionaremos el emulador, en Emulator Platform seleccionamos el emulador en este caso Sun Java(TM) Wireless Toolkit 2.5 for CLDC, en Device se seleccionamos el tipo de dispositivo, es el dispositivo a emular hay varios que se pueden descargar pero por el momento vasta con el que trae por defecto
Ahora lo importante es la configuración para el dispositivo en donde instalaras la aplicación Device configuration, debes seleccionarlo según el soporte de tu celular si es CLDC 1.0 o CLDC 1.1, también es importante el soporte para la MIDP, estas opciones selecciónalas de acuerdo a la configuración o las características permitidas para tu dispositivo, y clic en Next (Figura 4.).

Figura 4. Emulador y Configuración dispositivo.
  • El siguiente cuadro de dialogo no es por el momento importante, así que solo vamos a dar click en el botón de Finís, y no aparecerá el nombre de nuestro proyecto con un icono que identifica que es una aplicación móvil (Figura 5).

Figura 5.
  • Ahora crearemos una pequeña estructura para el proyecto, nos paramos en el proyecto con el cursor, damos clic derecho, seleccionamos New >> Java Package… (Figura 6), y nombramos el nuevo paquete como control y damos clic en Finís (Figura 7).

Figura 6. Nuevo Paquete.

Figura 7.
  • Realiza los mismos pasos hasta obtener la siguiente estructura de paquetes (Figura 8).

Figura 8. Estructura de paquetes.
Esta estructura es para hacer nuestro trabajo un poco mas organizado, en el paquete de control colocaremos la MIDlet (el alma de la aplicación movil) y clases que manejen cosas genéricas, como conexiones bluetooth o web, manejo de base de datos, etc, en el paquete res almacenaremos recursos de aplicación como iconos, imágenes, alguno que otro archivo de perfiles, sonidos, etc, en el paquete view, guardaremos todas las clase que se desplegaran en pantalla como los Form, List, etc, esta es la estructura que yo utilizo pero si prefieres puedes crear tu propia estructura.
  • Ahora crearemos la MIDlet, nos paramos en el paquete control, presionamos el botón derecho del mouse y seleccionamos New >> MIDlet (Figura 9), la nombramos, yo la llame GuiaMidlet, y damos click en el botón Finísh (Figura 10).

Figura 9. MIDlet

Figura 10. Nombre MIDlet
  • Ahora modifica el código de la MIDlet (GuiaMidlet.java) de esta forma:
package control;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class GuiaMidlet extends MIDlet{
public GuiaMidlet()
{
inicializar();
}

private void inicializar() { }
public void startApp() {
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {}

}

Cap anterior: Guía 1 - La primera aplicación (1)
Cap siguiente: Guía 1 - La primera aplicación (3)

Referencias
  • Introduction to Mobility Java Technology.

lunes, 10 de diciembre de 2007

Guía de desarrollo de aplicaciones móviles - J2ME

Guía 1 – La primera aplicación (1)


Guía por: Rubén Dario Orozco
2007
Este es el comienzo de un corto tutorial para desarrollar aplicaciones móviles con J2ME


Que se necesita para entender esta guía:
  • Conocimientos básicos en el lenguaje de programación java y tecnología java.
  • Conocimiento General del IDE NetBeans (opcional)
Descarga el código de la aplicación: GuiaMovil
Hoy en día se ve el auge de los dispositivos móviles, teniendo como actor principal el teléfono celular, que a miles de personas se les ha convertido en un aparato esencial para su vida cotidiana, no solo para comunicarse vía voz, sino para seguir adelantando su trabajo en un ambiente desconectado y lejos de su oficina de trabajo, ahora no solo se conforma con tener el ultimo celular de moda, si no que este debe proporcionarle servicios adicionales como comunicación bluetooth, GPRS, WAP, etc., todo esto para llevar el ritmo de la vida de hoy en la cual, todo tiene que realizarse en el menor tiempo posible.
Por eso hoy, la programación para estos dispositivos móviles (celulares, PDA´s, pocketpc, etc.), se ve como el mercado del futuro, por que las redes de la nueva generación están tendiendo a ser en su totalidad inalámbricas, y estos dispositivos cuenta con lo necesario para conectarse a esta redes, en este articulo realizare una pequeña introducción a la creación de una pequeña aplicación para un dispositivo móvil en especifico un celular que cumpla con ciertos requerimientos.
Pero antes de adentrarnos en código fuente, voy a reseñar algunos conceptos generales.

Plataforma Java 2 (Java 2 Platform)
La plataforma de Java se divide entres partes generales:
  • Java 2, edición estándar (J2SE) es diseñado para computadoras de escritorio. Con frecuencia corre encima de sistemas OS X, Linux, en Solaris, o en Microsoft Windows [2].
  • Java 2, edición empresarial (J2EE) es una plataforma exhaustiva para aplicaciones multiusuario y empresas. Está basado en lo J2SE y adiciona API´s para la programación en el lado del servidor [2].
  • Java 2, Micro edición (J2ME) es un juego de tecnologías y especificaciones desarrollado para dispositivos pequeños como buscapersonas, teléfonos móviles, etc. J2ME usa un subconjunto de componentes de J2SE, como una pequeña máquina virtual y API “reducida” [2], esta división será con la cual desarrollaremos la guía
Acerca de J2ME
J2ME es una plataforma, una colección de tecnologías y especificaciones que son diseñadas para diferente partes del mercado para dispositivos pequeños. J2ME se divide en configuraciones, perfiles, y paquetes opcionales. Las configuraciones son especificaciones que detallan una máquina virtual y un juego de base de API que pueden ser usadas con cierta clase de dispositivos. Una configuración, por ejemplo, puede ser diseñada para dispositivos que tienen menos de 512 KBs de memoria y una conexión de la red. Un perfil se basa en una configuración pero añade API más específicas para hacer un ambiente completo para desarrollar aplicaciones, los perfiles incluyen API´s para el ciclo vital de aplicación, interfaz de usuario, persistente y almacenamiento generalmente. Un paquete opcional suministra la funcionalidad que no puede ser asociada con una configuración específica o perfil, un paquete opcional es la API de Bluetooth (82 de JSR). [2].
El universo de J2ME
J2ME Overview
Figura 1. El Universo de J2ME.
Tomada de [2]
- Introduction to Mobility Java Technology.
Como en la figura 1 indica, J2ME tiene dos ramas principales. La primera está basada en la configuración de dispositivo conectada y limitada (CLDC). Esta configuración es para dispositivos inalámbricos pequeños con conexión de red intermitentes, de la misma manera que un buscapersonas, teléfonos móviles, y asistente personal digital (PDA). El perfil de dispositivo de información de Móvil (Mobile Information Device Profile (MIDP)), que está basado en CLDC [2].
La otra rama del árbol de J2ME está basada en la configuración de dispositivo conectada (CDC). Esta configuración es para dispositivos más grandes (en relación con memoria y poder de procesamiento) [2]
Bueno con esta pequeña introducción a J2ME, comenzaremos con la guía de aplicación móvil para celulares, pero antes quiero hacer una aclaración, en la introducción anterior deje por fuera varios aspectos importantes como las tecnología de red celular (TDMA, CDMA, GSM, PCS, WAP, UMTS) que son necesarias conocer para saber como realizar conexiones y que API´s necesitamos para realizar aplicaciones en estas tecnologías, también hay que tener claro que en el desarrollo de aplicaciones móviles una aplicación no es totalmente portables entre dispositivos diferentes, para una aplicación móvil las empresas desarrolladoras de la aplicación realizan casi una que versión por cada dispositivo que difiere en varias características, a este problema de portabilidad se le llama fragmentación, ahora si comencemos con la guía.
Capitulo siguiente: Guía 1 - La primera aplicación (2)
Referencias
  • Introduction to Mobility Java Technology.