Software para Teléfonos Celulares. Una realidad.

Actualmente el número de líneas celulares en México asciende a 60 millones, con un incremento de casi 25% en el 2004. Esto significa que existen más teléfonos que usuarios de Internet. El Internet ha tenido un gran avance, pero existe un factor que ha cambiado: el usuario. Ahora, el usuario es móvil, y tiene la facilidad de poder hacer desde su teléfono muchas de las cosas que antes hacía en su computadora personal.

Hoy en día abundan los servicios de mensajes escritos. Sin embargo, la siguiente generación de servicios son las aplicaciones que hagan uso de los recursos de los teléfonos nuevos como conexiones de banda ancha, pantallas de mayor tamaño y definición, mayor almacenamiento, etc. En este artículo, gracias a nuestra experiencia en el desarrollo de software para este sector, hablaremos sobre algunas de las tecnologías más usadas para el desarrollo de aplicaciones en teléfonos celulares, así como algunos puntos importantes a considerar.

Tecnologías para Transmisión de Datos
En el mundo, la tecnología predominante de los operadores celulares es GSM, un estándar desarrollado en Europa que permite la transmisión de datos a una tasa promedio de alrededor de 8Kbps. En contraparte, los norteamericanos desarrollaron su propio estándar: CDMA One, que ofrece capacidades similares a GSM. Conforme los servicios de valor agregado fueron tomando el lugar que actualmente tienen en el mundo móvil, la necesidad de mayor velocidad de transmisión fue evidente, y ambas tecnologías han ido evolucionando para cubrir esta necesidad. La siguiente tabla muestra la evolución de estos estándares: Actualmente en México, los operadores GSM (Telcel y Movistar) empiezan a evolucionar a EDGE, en tanto que los operadores CDMA (Iusacell y Unefon) tienen redes CDMA 2000 1x y empiezan a evolucionar a EV-DO. Recuerden que una conexión a Internet por teléfono típicamente es de 56Kbps.

J2ME
J2ME (Java 2 Micro Edition) está enfocado para ser usado en dispositivos con recursos limitados. Tiene una sola parte de las clases de J2SE, las necesarias para poder manejar los recursos de un teléfono celular. La tecnología J2ME se ha difundido ampliamente en los últimos años en más de 110 operadores telefónicos alrededor del mundo, tanto GSM como CDMA, gracias a que es independiente de la estructura de red o de un modelo de negocios determinado. Además, existe una gran base de programadores Java, que sin mucho esfuerzo dan el salto a J2ME.

Debido a la gran variedad de marcas y modelos de teléfonos, SUN definió el MIDP (Mobile Information Device Profile) para establecer los requisitos con los cuales las compañías productoras de dispositivos deben cumplir para poder ser catalogados como dispositivos que soportan J2ME.

En una primera etapa se definió MIDP 1.0, el cual era muy general y por eso no incluía algunas características de los teléfonos más recientes. Debido a esto, compañías como Nokia y Samsung, lanzaron clases propias para sacar mayor provecho de los recursos de sus teléfonos, no contemplados en la versión MIDP 1.0.

Posteriormente se definió a través del JCP (Java Community Process), la versión 2.0 del MIDP, que contiene más clases para utilizar los recursos del teléfono. Además de las clases estándar del MIDP, existen “clases opcionales” que permiten ocupar más recursos de los dispositivos actuales, como son: multimedia, graficación 3D, manejo de los archivos del teléfono, envío y recepción de mensajes de texto y multimedia, implementar web services, entre otros. Existen herramientas de desarrollo gratuitas que pueden ser descargadas del portal de Sun Microsystems (ver Programación – J2ME, pg. 32). Además, compañías como Nokia, Motorola, Sony-Ericsson, entre otras, cuentan con sitios para desarrolladores, donde es posible descargar especificaciones técnicas, emuladores y herramientas de desarrollo.

BREW (Binary Runtime Environment for Wireless)
BREW es una plataforma para el desarrollo de aplicaciones móviles creada por Qualcomm. Consiste en un SDK y un modelo de distribución, es decir, dentro de las funcionalidades que ofrece BREW se tiene el kit de desarrollo de software (SDK), para la creación de aplicaciones, y el sistema de distribución que controla el operador, por lo que BREW ya cuenta con un sistema para los procesos de descarga, tarifa y pago de servicios que el proveedor de telefonía celular no tendrá que implementar independientemente.

El SDK que BREW ofrece se encuentra basado en el lenguaje de programación C++, por lo que hereda todas las ventajas y desventajas que se tienen al programar en este lenguaje. Esta herramienta brinda APIs para interactuar con los recursos del teléfono, como pantalla, teclado, audio, conexiones, sistema de archivos, etc. El sistema de distribución y tarifa que implementa BREW permite al usuario ver las aplicaciones que ofrece el Operador, así como su descripción y precio, y si así lo desea, comprar y descargar la aplicación. La compra puede ser por uso o por periodo de tiempo, y el cobro se hace automáticamente al tiempo aire del usuario o a su saldo.

En México, Iusacell ya ofrece BREW, y próximamente Unefon lo agregará a sus servicios. Hace dos años se formó en la Facultad de Ingeniería de la UNAM un laboratorio de desarrollo de aplicaciones móviles, en el cual se creó IUSAGOL, un servicio para la consulta de información de fútbol que permite recibir los marcadores de los juegos y el video de los goles al momento que suceden, actualmente es distribuida para los usuarios de 3G de Iusacell.

Consideraciones al Crear una Aplicación
Algunos de los principales aspectos a tener en cuenta al desarrollar aplicaciones móviles son: • Tamaño de pantalla. El principal limitante de una aplicación para dispositivo móvil es el tamaño de la pantalla. Por esto es importante delimitar la aplicación para mostrar al usuario solamente los elementos indispensables. Lo aconsejable es acomodar de una manera óptima todos los elementos gráficos para que sean claros y legibles al usuario. Es necesario también en la aplicación poder ajustar en tiempo de ejecución el entorno gráfico, ya que con esto será posible hacer una sola aplicación que funcione en teléfonos con diferentes tamaños de pantalla, en vez de hacer una con cada una de las dimensiones. Esto es aconsejable, sin embargo, no siempre es posible.
• Teclado. La interacción con el usuario se hace mediante las teclas tanto alfanuméricas como los llamados SoftKeys, que están junto a la pantalla, por lo tanto se deben considerar todos los eventos cuando el usuario apriete estas teclas, reconocer qué es lo que desea hacer y determinar si se ignora o se hace algo en el programa.
• Capacidad de almacenamiento. Las aplicaciones deben hacerse con códigos eficientes y compactos, además de tener un buen manejo de las imágenes, ya que son las que acostumbran tener el mayor impacto en el tamaño de la aplicación. Las aplicaciones en BREW ocupan de 50 hasta 300Kb de espacio, mientras que las aplicaciones J2ME deben de ser de menos de 60Kb para los teléfonos con MIDP1.0 y pueden ser de más en los teléfonos nuevos con memorias externas.
• Conexión de datos. Las conexiones de datos harán más versátiles a las aplicaciones móviles, ya que permiten hacer consultas a bases de datos externas, usar servicios web, audio y video, entre otras muchas cosas. Cuando se diseñe la comunicación entre el dispositivo móvil y un servidor, debe considerarse el ancho de banda del medio y procurar solamente enviar la información más relevante, pensando en tiempo y dinero del usuario.

Conclusión
En un futuro próximo, hablando de redes de datos, la necesidad de clientes robustos móviles, llevarán a la creación de aplicaciones que residan en los teléfonos, quizá en una primera etapa para el sector comercial y empresarial, como pueden ser aplicaciones bancarias, colecta de pedidos de venta, vigilancia de cámaras de seguridad, etc. Después, de entretenimiento e información, como consulta de noticias, información de tráfico, buscador de calles y lugares, comercio móvil (M-Commerce).

Las herramientas de desarrollo existen, el conocimiento en programación sobra, sólo falta poner manos a la obra y encontrar la llamada killer application, que marcará el inicio de las aplicaciones móviles como algo indispensable.

Acera del autor Ulises Martínez Gilbón, Angel Mendoza Ruíz y Amaury Perea Matsumura son parte de nGWiSE® Comunicaciones, empresa mexicana formada por un grupo de ingenieros egresados de la Facultad de Ingeniería de la UNAM, y están dedicados a la integración de servicios web y móviles, así como a la capacitación de personal en estas áreas.
www.ngwise.com, contacto@ngwise.com