LWUIT: Una librería gráfica tipo AWT o Swing para J2ME

1
26243

LWUIT: Una librería gráfica tipo AWT o Swing para J2ME

Introducción.

La velocidad con la que aumentan la capacidad de procesamiento de los dispositivos móviles crece de forma vertiginosa.
No es raro tener en el bolsillo dispositivos cuyas características se asemejan a los ordenadores de sobremesa de hace unos cuantos años…

Uno de los puntos débiles que tienen las especificaciones de J2ME, es la pobreza que nos ofrece el API de contrucción de interfaces gráficos.
Bien es sabido que «lo bonito vende», así que si querías hacer una aplicación rubio con ojos azules (como yo), los programadores
tenían que programar sus aplicaciones en base a Canvas, APIs propietarias de cada fabricante o librerías como
las que presentamos en este tutorial pero de pago..

Dicen que una imagen vale más que mil palabras, así que para empezar a hacerte una idea de lo que puedes conseguir
con esta librería, te recomiendo que veas el siguiente video.

Características generales

A continuación te presento algunas de las carácterísticas y o requisitos generales que he visto más interesantes:

  • Licencia de uso libre, incluso en aplicaciones comerciales. (Revisalo no vaya a ser que cambie).
  • Requiere CLDC 1.1 o superior y MIDP 2.0 o superior.
  • API muy fácil comprender, sobre todo si has programado en Swing o AWT.
  • Si se optimiza y/o ofusca el código no es demasiado pesada en el proyecto.
  • Buena documentación.

Características funcionales

  • Amplia la funcionalidad de la mayoría de los controles gráficos estandar ubicados en el paquete javax.microedition.lcdui.
  • Aporta más controles gráficos: ComboBox, ListBox, TabbedPane, Dialog, Calendar.
  • Incorpora casi todos los Layouts: GridLayout, BoxLayout, BorderLayout, etc definidos en AWT.

    Para el que no lo sepa, un Layout sirve para indicar de forma semántica la colocación de los componentes gráficos dentro de su contenedor, de manera que la aplicación es más portable entre distintos tamaños de pantalla.
  • Eventos y Listeners: El programador se registra en los eventos que esté interesado tratar.
  • Posibilidad de incluir y cambiar Temas en tiempo de ejecución, algo similar a especificar la apariencia de los controles mediante CSS en función de su «clase».

    Por ejemplo, todos los controles salen con borde rojo y letra verde.
  • Soporta dispositivos con pantallas sensibles al tacto.
  • Posibilidad de establecer el orden de tabulación entre controles.
  • Más máscaras de entrada para los campos de texto: MAILADDR, URL, etc.
  • Transiciones entre pantallas. Es posible de forma fácil (con 0, 1 ó 2 líneas de código) aplicar efectos en 2D/3D entre la pantalla que se oculta y la que se muestra.
  • Renderer y DataModel, para personalizar la vista y el contenido de botones, listas desplegables, casillas de verificación, etc.

    por ejemplo, que cuando se pulse un botón que se muestre una imágen en su fondo o que al desplegar una lista que se muestren imágenes y texto…
  • Animaciones en 2D/3D.
  • Soporte para internacionalización no basada en el estándar
  • Editor de recursos (temas, mensajes, imágenes, fuentes, etc) que luego serán leídos fácilmente desde la aplicación.
  • Un pequeño framework de gestión de trazas integrado (es decir, mini mini mini Log4J, eso sí muy útil :-))

Un ejemplo

Hacer una aplicación que explique todo se saldría del propósito de este tutorial, así que me voy ha hacer una pequeña aplicación en donde se vean algunas de las funcionalidades y sirva como tirón inicial para el lector.
De todas formas, recuerda que una de las características generales que cite anteriormente es que la documentación es bastante buena.

A continuación os dejo el código fuente para que realices tus pruebas. Código fuente del proyecto (Netbeans).

Aspecto de la aplicación a construir:

Fichero de recursos utilizando la aplicación ResourceEditor que incluye la librería:

Es una aplicación Java que está ubicada en el directorio util de la distribucción oficial.

La clase principal de la aplicación (MIDlet):

La ventanita del ejemplo

Referencias

Conclusiones

Como conclusión podríamos decir que hacian falta iniciativas como esta que hagan más atractivas las aplicaciones sin perder portabilidad ni hacer el proyecto demasiado pesado para dispositivos más antiguos…

Algunas reflexiones:

  1. Qué en el mundo no todos tienen teléfonos de última generación, pero la mayoría tienen Java preinstalado.
  2. El porcentaje de personas que tienen teléfono es muy superior al porcentaje de personas que tienen ordenador.
  3. No hace falta ser Julio Verne, para ver que todo evoluciona rápidamente y que seguramente en breve todos tendremos en nuestros bolsillos cacharros tan potentes como los ordenadores de hace unos años.

Otra cosa, recuerda que esto no es más que un tutorial, hay más puntos al respecto sobre los que profundizar.. eso sí, ahora te toca a tí pegarte con ello.

Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.

cgpcosmad@gmail.com

1 Comentario

Dejar respuesta

Please enter your comment!
Please enter your name here