Lenguajes y frameworks basados en J2ME para probar

Hecl – the mobile scripting language.

Es un lenguaje de alto nivel basado en scripts que se ejecuta sobre Java, específicamente diseñado para J2ME.  Su finalidad es la de permitir desarrollar ágilmente interfaces de usuario y aplicaciones sencillas.  Puede invocar directamente código Java e incluye un buen soporte de widgets UI, acceso al sistema de archivos, RecordStores, conexiones HTTP y kXML.

Según se aprecia en el blog del desarrollador, se encuentran trabajando bastante en su integración con Android.

J2ME Polish.

Es un conjunto de herramientas y tecnologías diseñadas para facilitar el desarrollo de aplicaciones móviles con J2ME.  Consta de los siguientes módulos: Lush, UI atractivo, similar al web y desarrollado de forma similar a CSS.  Janus, herramientas para desarrollar y migrar las aplicaciones móviles a otras plataformas como Windows Mobiles, iPhone y Android.  Torch, facilita la implementación de las comunicaciones a través de HTTP.  Trunk, facilita el manejo de la persistencia de datos de la aplicación.  Marjory, base de datos en línea de las especificaciones de los dispostivos móviles para facilitar el ajuste de las aplicaciones a estos.

OpenBaseMovil.

Es un framework para apoyar el desarrollo rápido de aplicaciones móviles con J2ME.  Provee características como persistencia a través de una base de datos, un motor de scripting para extender la aplicación y según se promete, portarla a otras plataformas como Windows Mobile y Android, desarrollo de la capa de presentación a través de un lenguaje declarativo basado en XML, entre otras cosas.

Kalmeo.

Mantiene tres proyectos: Kuix, un framework para el desarrollo de las intefaces de usuario utilizando XML y CSS.  Kutil, un conjunto de herramientas destinadas a enrriquecer el desarrollo de aplicaciones como un administrador de eventos, un manejador de tareas, un parser XML y un codificador GZIP.  Kaprice, es una aplicación de demostración para el manejo de listas de mercado utilizando las herramientas de Kalmeo.

Mobile Processing.

Es un lenguaje opensource basado en J2ME para el desarrollo rápido de aplicaciones móviles, especialmente ricas en contenido gráfico.  Su orientación sigue los lineamientos del proyecto Processing.

Con este lenguaje he hecho algunas cositas, sin embargo desde hace casi un año lo he tenido olvidado.  Mi entusiasmo duró hasta que me enfrenté con el desarrollo de las interfaces de usuario que me parecieron enrredadas y poco elegantes, también encontré que la comunidad es reducida y no encontré apoyo para solucionar mis dudas.  A pesar de esto el lenguaje es interesante y tal como lo plantea desde sus objetivos, útil para el desarrollo rápido de prototipos y proyectos pequeños.  Hay que darle una nueva oportunidad.

Mojax.

Es un framework para el desarrollo de aplicaciones móviles basadas en Ajax y que viven de manera independiente, es decir, no requieren del contexto de un navegador web.  Está basado en J2ME y permite el acceso a varios de los recursos físicos de los dispositivos móviles.

Hace unos meses cuando cursaba la especialización hice algunas cositas en él, incluyendo un proyecto para uno de sus módulos.  Salvados ahora todas las dificultades que encontré en su momento con el desarrollo del proyecto, es hora, al igual que con MP, de darle otra oportunidad a este lenguaje, el cual considero es muy útil para el desarrollo de mashups, es decir, aplicaciones que integren datos y funcionalidades de múltiples fuentes.

Práctica: distribución de midlets mediante OTA con J2ME – parte I

Durante la sesión Compilación y distribución de midlets se expusieron los métodos de distribución de aplicaciones móviles, en especial los remotos a través de la red (Over-the-air provisioning).

Ahora, contando ya con el primer midlet empaquetado y listo para su distribución (cualquiera de los tres métodos utilizados) nos disponemos durante la presente sesión a implementar de manera práctica este procedimiento.

Para esto se va a utilizar Apache como el servidor HTTP y al emulador de aplicaciones móviles incluído en el JWTK como cliente de las mismas.

A pesar de que el objetivo de la práctica es el de realizar una simulación del proceso de distribución de midlets a nivel local, el procedimiento real en Internet no difiere en mas que en la ubicación en que se localicen los archivos y se especifique a su vez en el atributo MIDlet-Jar-URL del archivo descriptor de la aplicación.

 
  • Introducción.
  • Distribución de midlets.
    • OTA.
    • Flujo de eventos.
  • Herramientas.
  • Servidor de páginas: XAMPP.
    • Instalación.
    • Configuración.
  • Creación del sitio web.
  • Despliegue del midlet.
  • Instalación de la aplicación.
  • Distribución a través de Internet.
  • Enlaces de interés.

Para mas información consulte el curso Introducción al desarrollo de aplicaciones móviles con J2ME.

Generación del midlet HolaMundo utilizando EclipseME

La creación de software no es una tarea fácil, por este motivo es necesario utilizar de la manera mas eficiente posible las herramientas que se tengan a la mano y que permitan un desarrollo mas estructurado, confiable y rápido de los productos de software.

Los ambientes integrados de desarrollo (IDE) son un tipo de estas herramientas, facilitan la manipulación de  los proyectos con un nivel de abstracción tal que evitan al desarrollador tener que atender aspectos repetitivos o de bajo nivel.

Uno de los IDE mas conocidos para el desarrollo de aplicaciones Java es Eclipse, el cual es extendible mediante plugins, permitiéndole aumentar su funcionalidad e incluír el soporte a mas lenguajes de programación, incluyendo a J2ME.

En la presente sesión se llevará a cabo la instalación de Eclipse, su plugin EclipseME y con ellos se realizará la generación del midlet HolaMundo de manera análoga a las sesiones anteriores, pero esta vez utilizando esta herramienta de nivel profesional.

 
  • Introducción.
  • Herramientas.
    • J2SDK y JWTK.
    • Eclipse.
    • Plugin EclipseME.
  • Instalación de Eclipse.
  • Instalación del plugin EclipseME.
  • Configuración del plugin EclipseME.
  • Creación de un proyecto J2ME.
  • Ejecución (emulación) del midlet.
  • Generación del archivo JAR.

Para mas información consulte el curso Introducción al desarrollo de aplicaciones móviles con J2ME.

Generación del midlet HolaMundo utilizando las herramientas de línea de comando

KToolBar es una herramienta muy útil provista por el JWTK ya que permite abstraer al desarrollador de varias de las actividades necesarias para la generación de los midlets.

Como ejercicio académico es interesante poder realizar estas actividades una a una y desde la línea de comandos para poder observar con precisión su papel e importancia dentro del proceso de desarrollo de las aplicaciones móviles.

A continuación se realizarán las actividades necesarias para compilar preverificar, empaquetar y ejecutar al midlet HolaMundo de manera similar a lo realizado durante la sesión anterior, sin embargo ahora utilizando únicamente los comandos básicos provistos por la plataforma Java.

Para la elaboración de este documento se utilizará Windows Vista, motivo por el cual ciertas ubicaciones o comandos relacionados con el shell podrán variar de acuerdo con el sistema operativo utilizado.

 
  • Introducción.
  • Herramientas de software.
  • Estructura de los directorios.
  • Variables de ambiente.
  • Compilación.
  • Preverificación.
  • Empaquetamiento.
    • Creación del archivo de manifiesto.
    • Creación del archivo JAR.
    • Creación del archivo JAD.
  • Ejecución (emulación).
  • Enlaces de interés.

Para mas información consulte el curso Introducción al desarrollo de aplicaciones móviles con J2ME.

Generación del midlet HolaMundo utilizando el JWTK

Durante el presente capítulo práctico se realizará la construcción (build), ejecución (emulación) y despliegue del midlet HolaMundo cuyo código fuente fue implementado en capítulos anteriores.

Para esto se utilizarán las herramientas básicas que provee la plataforma Java como lo son el J2SDK y el JWTK.

Esta práctica permitirá también verificar los conceptos teóricos expuestos en los capítulos anteriores.

 
 
  • Introducción.
  • Herramientas necesarias.
    • Editor de texto.
    • Ambiente de desarrollo (J2SDK).
    • Java Wireless Toolkit (JWTK).
  • Instalación de las herramientas.
  • Creación del proyecto.
  • Configuración del proyecto.
  • Estructura de los directorios generados.
  • Edicion del código fuente del midlet.
  • Compilación.
  • Ejecución (emulación).
  • Despliegue del midlet.
  • Archivos generados.
    • Archivo JAD.
    • Archivo JAR.

Para mas información consulte el curso Introducción al desarrollo de aplicaciones móviles con J2ME.

Mi primer Moblet

Para un taller de la Especialización estuvimos jugando trabajando con Mojax. Mojax es un framework para el desarrollo de aplicaciones móviles (su producto es convertido a J2ME). Se basa en los conceptos de Ajax, sin embargo no requiere estar encapsulado en un navegador para ser ejecutado. Es interesante porque su desarrollo se realiza con un cuerpo de la aplicación en XML, la implementación con JavaScript que incluye objetos propios y la presentación se realiza con -un subconjuto de- CSS.

Para su desarrollo se provee de un plugin para Eclipse el cual se instala fácilmente … después de caer en cuenta de dos pequeños detalles: es necesaria la distribución J2EE de Eclipse (no sirve la J2SE) y no es compatible (en este momento) con la versión Ganymede, motivo por el cual es mejor utilizar Europa.

Me pareció poco intuitivo aprender a entender el desarrollo en esta plataforma, sin embargo tampoco es difícil. La aplicación de demostración que se implementó está basada en tres Screen.

La primera de ellas es la inicial de la aplicación le muestra al usuario el listado de los departamentos de Colombia. Esta información la obtiene después de una consulta a un XML remoto.

El usuario selecciona el departamento de su escogencia y se pasa a la segunda pantalla, esta presenta los municipios pertenecientes al departamento elegido. Esta información, al igual que la anterior, se obtiene de un XML remoto que relaciona municipios con sus respectivos departamentos.

Después de que el usuario selecciona el municipio de su elección es mostrada en la tercera pantalla la imágen del mapa de Colombia indicado la ubicación del municipio seleccionado con un pin de color verde. Esta imagen es generada gracias a la al servicio de GoogleMaps.

A pesar de que inicialmente el proceso de desarrollo con Mojax estuvo un poco frustrante la implementación y el producto final resultaron ser interesantes. Mojax parecer ser una promisoria herramienta para el desarrollo fácil y rápido de aplicaciones móviles, en particular las que reúnen múltiples orígenes de datos a través de la red como lo son los populares mashups.

Como punto negativo me parece que está mas enfocado al desarrollo de aplicaciones conectadas (online) mas que independientes (standalone) lo cual no en todos los casos es provechoso en estas tierras que los planes de datos no son ilimitados y se paga (aunque barato) por KB descargado.

Es muy probable que en un tiempo valga la pena darle a Mojax otra oportunidad para concernos mejor.

Enlace: Simple Moblet 0.1.

Midlets con J2ME

El Objetivo del capítulo es el de identificar los estados entre los cuales puede transitar un midlet durante su ciclo de vida, conocer cual es el significado de cada uno de estos estados y que se espera que el desarrollador implemente en ellos así como el identificar los métodos que deberán ser invocados para solicitar/obligar la transición entre estados.

  • Definición
  • Ciclo de vida de un midlet
    • Estado DETENIDO (paused)
    • Estado ACTIVO (active)
    • Estado DESTRUÍDO (destroyed)
  • Métodos modificadores de estado
    • Método startApp()
    • Método pauseApp()
    • Método destroyApp(boolean)
    • Relación entre destroyApp() y notifyDestroyed()
    • Método notifyPaused()
    • Método resumeRequest()
  • Entorno de ejecución

Para mas información consulte el curso Introducción al desarrollo de aplicaciones móviles con J2ME.

Introducción a la plataforma J2ME

El objetivo del capítulo es el de exponer los diferentes conceptos que se relacionan con la plataforma J2ME tales como su arquitectura, los dispositivos objetivo, su relación con J2SE, las relaciones y diferencias entre configuraciones y perfiles y sus requisitos de hardware y de software.

  • Introducción.
  • Arquitectura de la plataforma J2ME.
  • Configuraciones.
    • CDC.
    • CLDC.
  • Diferencias entre J2SE y CLDC.
  • Perfiles.
    • MIDP.
      • Requisitos de hardware.
      • Requisitos de software.
  • Paquetes opcionales.
  • Máquinas virtuales.
    • Características.

Para mas información consulte el curso Introducción al desarrollo de aplicaciones móviles con J2ME.