Las mejores herramientas para el desarrollo de aplicaciones móviles

La adopción exitosa de una nueva tecnología a menudo depende de sus herramientas de desarrollo. Las buenas herramientas ayudan a los nuevos desarrolladores a comenzar más fácilmente y hacen que los desarrolladores experimentados sean más productivos. Por ejemplo, el éxito del entorno de programación de Microsoft está estrechamente asociado con el éxito de sus herramientas de Visual Studio.

La tecnología J2ME (Java 2 Platform, Micro Edition) es todavía relativamente nueva. Las herramientas de desarrollo sólidas, especialmente los IDE, ayudarán enormemente a la adopción de J2ME entre los desarrolladores de aplicaciones inalámbricas. En este artículo, reviso cuatro productos J2ME IDE:

  • Borland JBuilder 7 Enterprise con MobileSet 3
  • Sun ONE (Open Network Environment) Studio 4 Mobile Edition de Sun Microsystems
  • Metrowerks CodeWarrior Wireless Studio 7
  • JVise de S5 Systems (basado en la tecnología IBM Eclipse)

Panorama de las herramientas de desarrollo J2ME

Los diferentes dispositivos inalámbricos tienen diferentes limitaciones en términos de tamaño de memoria, tamaño de pantalla, métodos de entrada y velocidad de cálculo. Además, las implementaciones de J2ME de los proveedores pueden contener API complementarias específicas del proveedor que aprovechan las características especiales de hardware / SO subyacentes.

El mercado de dispositivos diversificado naturalmente da como resultado herramientas de desarrollo diversificadas. Cada proveedor de dispositivos tiene su propio SDK, emuladores de dispositivos y herramientas de análisis de rendimiento. Algunos SDK incluso vienen con sus propias herramientas de edición de código fuente y administración de proyectos de compilación. Un ejemplo es el kit de herramientas inalámbrico J2ME de Sun (J2MEWTK). J2MEWTK contiene una implementación de referencia de J2ME / MIDP (Perfil de dispositivo de información móvil) y tiene múltiples emuladores de dispositivos que se ejecutan en plataformas Unix / Linux y Windows. J2MEWTK también tiene herramientas de perfil de rendimiento y monitores de uso de memoria real. Todas esas herramientas se pueden administrar desde un panel de control central llamado kToolBar. kToolBar también puede construir y empaquetar programas JAR / Jad listos para implementar desde directorios de desarrollo. Sin embargo, dominar todas estas herramientas y probar aplicaciones en todos los emuladores puede resultar tedioso.

Un IDE J2ME facilita el desarrollo al integrar los SDK de los proveedores de dispositivos con otras herramientas. Los desarrolladores pueden tener una interfaz IDE unificada para todos los SDK compatibles. Los IDE también mejoran la productividad de los desarrolladores y la calidad de las aplicaciones entregables.

¿Quién debería usar un IDE?

No recomiendo IDE a desarrolladores novatos. Estos desarrolladores deben aprender varias cosas diferentes a la vez: el lenguaje Java, las API y los paquetes de J2ME, el IDE en sí. Las funciones de conveniencia de un IDE pueden ocultar fácilmente lo que realmente está sucediendo bajo el capó. Puede terminar desarrollando un conjunto de habilidades vinculadas a un IDE específico. Sin embargo, los IDE pueden ayudar si ya sabe lo que está haciendo. Pueden automatizar muchos procesos tediosos para un desarrollador experimentado.

Guía del comprador de J2ME IDE

Evalué los IDE J2ME de este artículo de acuerdo con los siguientes aspectos:

  • Características generales de productividad: Evalué las características que son beneficiosas para todos los proyectos de desarrollo de Java, no las específicas de J2ME. Esas características incluyen editor, administrador de proyectos, depurador, diseñador de arquitectura y herramientas de documentación, además de herramientas para técnicas de programación avanzadas (refactorización, pruebas unitarias, etc.).
  • Integración de SDK de terceros: la compatibilidad con varios SDK es una característica fundamental de cualquier IDE de J2ME. Pero los proveedores de IDE tienen dificultades para rastrear e integrar el soporte para cada SDK individual. La especificación Unified Emulator Interface (UEI) estandariza la interfaz de programación entre SDK e IDE. Se garantiza que los SDK e IDE compatibles con UEI funcionan entre sí. En mi evaluación, analizo qué SDK admiten los IDE de fábrica, si los IDE admiten UEI y lo difícil que es cambiar entre los SDK en un proyecto.
  • Herramientas de poscompilación : las aplicaciones J2ME son aplicaciones móviles que requieren un alto nivel de seguridad y rendimiento. La ofuscación de código puede evitar que las personas realicen ingeniería inversa en sus archivos de clase y reducir el tamaño del código. Los proveedores de IDE y sus socios ofrecen técnicas especiales de optimización. Las aplicaciones J2ME también se pueden posprocesar y optimizar para dispositivos de implementación en función de los recursos disponibles para tipos de dispositivos específicos. Estas herramientas de posprocesamiento, ofuscación y optimización se incluyen en esta categoría de poscompilación.
  • Soporte de implementación inalámbrica (OTA): las aplicaciones J2ME a menudo se implementan en redes inalámbricas públicas. Las especificaciones de J2ME OTA estandarizan el proceso para descubrir, descargar, autenticar, autorizar, verificar y ejecutar una aplicación Java móvil. Las especificaciones de OTA requieren metaarchivos formateados correctamente en el lado del servidor y Java Application Manager (JAM) en el lado del dispositivo móvil. El servidor también requiere configuraciones especiales para admitir metatipos de OTA. El proceso OTA puede volverse bastante complejo con el próximo lanzamiento de MIDP 2.0. Un IDE debería ayudar a generar esos metaarchivos automáticamente. Un buen IDE también debe integrar clientes JAM compatibles con OTA para probar la implementación dentro del IDE.
  • Desarrollo de aplicaciones móviles de extremo a extremo: los dispositivos J2ME no son lo suficientemente potentes para procesar o almacenar grandes cantidades de información por sí mismos; Las aplicaciones J2ME suelen ser clientes pesados ​​para algunos servidores de aplicaciones empresariales back-end. Por lo tanto, un IDE de primer nivel debería permitir a los desarrolladores crear proyectos completos de principio a fin. Eso minimiza los costos de aprendizaje y los esfuerzos de coordinación de proyectos.
  • Documentación y tutoriales: el desarrollo de aplicaciones móviles Java es un proceso sofisticado que involucra muchos aspectos de la ingeniería de software. Los IDE proporcionan herramientas para automatizar muchas tareas; sin embargo, debido a la complejidad intrínseca del proceso de desarrollo, a los programadores novatos a menudo les resulta difícil utilizar esas funciones correctamente. Los tutoriales y los estudios de casos detallados resultan esenciales para la adopción eficiente de un IDE.
  • Constructores de J2ME GUI (interfaz gráfica de usuario): algunos IDE tienen herramientas RAD (desarrollo rápido de aplicaciones) que permiten a los desarrolladores construir visualmente interfaces de usuario móviles. Estas herramientas atraen a los desarrolladores del mundo del escritorio, aquellos familiarizados con las herramientas RAD de J2SE (Java 2 Platform, Standard Edition). Sin embargo, use los constructores de GUI visuales J2ME con precaución: debido a que los dispositivos inalámbricos difieren en el tamaño de la pantalla, el mismo diseño de interfaz de usuario puede aparecer de manera diferente en varios dispositivos. Por ejemplo, una Palm PDA puede mostrar cuatro botones de comando seguidos. Pero un teléfono celular puede pedirle que elija de una lista de cuatro comandos cuando hace clic en un botón de Menú. Entonces, lo que ve en el constructor de GUI podría no ser lo que finalmente obtiene en un dispositivo en particular.

JBuilder 7 Enterprise con MobileSet 3

Borland JBuilder es un reconocido IDE de Java con tres ediciones: Personal, Standard (SE) y Enterprise. Todas las ediciones de JBuilder pueden ejecutarse en múltiples plataformas, incluidas Windows, Linux, Solaris y Mac OS X. Para admitir el desarrollo de J2ME en JBuilder, debe instalar un módulo adicional llamado MobileSet. Actualmente, MobileSet solo se ejecuta en Windows, pero está previsto que sea compatible con más plataformas.

JBuilder Personal está disponible de forma gratuita en el sitio web de Borland. JBuilder SE cuesta 99 (septiembre de 2002) y la edición Enterprise cuesta 999. Puede descargar licencias de prueba gratuitas de 30 días para las ediciones Standard y Enterprise. Aunque es gratuita, la edición Personal ofrece poco valor. Carece de algunas características básicas de productividad. Por ejemplo, ni siquiera puede administrar su código fuente a través de jerarquías de paquetes, lo que dificulta el desarrollo de grandes proyectos con muchas clases.

Por el contrario, JBuilder 7 Enterprise ofrece un amplio conjunto de herramientas que admiten el diseño, desarrollo, prueba e implementación de aplicaciones Java (especialmente aplicaciones J2EE (Java 2 Platform, Enterprise Edition)). Se incluye con el servidor de aplicaciones J2EE de Borland, la base de datos Borland InterBase SQL y una edición de prueba de Optimizeit Suite de la compañía, una herramienta de optimización de Java. El software empaquetado viene con tres libros de documentación de tutoriales. Estos libros no solo proporcionan estudios de casos de uso de JBuilder, sino que también sirven como buenos recursos para aprender el desarrollo general de aplicaciones Java.

Para desarrollar aplicaciones J2ME sobre cualquier edición de JBuilder 7, debe instalar MobileSet, una descarga gratuita del sitio web de Borland. Después de ejecutar el instalador, MobileSet agrega nuevos asistentes, entornos de compilación / tiempo de ejecución y elementos de menú a su instalación de JBuilder existente. La siguiente revisión se centra en JBuilder 7 Enterprise.

  • Funciones generales de productividad: JBuilder 7 Enterprise ofrece funciones de productividad Java de primer nivel. Tiene un potente editor, compilador y depurador. Las características más avanzadas incluyen múltiples JVM y soporte en tiempo de ejecución, herramientas de visualización UML (Lenguaje de modelado unificado), herramientas para diseñar la lógica de la aplicación (por ejemplo, diseñadores visuales de EJB (Enterprise JavaBean)), soporte integrado de pruebas unitarias, herramientas de refactorización y herramientas javadoc. Para aplicaciones empresariales, JBuilder admite la generación automática de archivos web y empresariales (WAR / EAR) y la implementación en todos los servidores de aplicaciones líderes. Con JBuilder, también puede integrar fácilmente en su proyecto potentes herramientas de terceros, como CVS (Concurrent Versioning System) para la gestión del código fuente y Ant para compilaciones personalizadas.
  • Integración con SDK de terceros: la única plataforma J2ME que admite JBuilder es MIDP. JBuilder MobileSet es compatible con los SDK de J2MEWTK, Nokia, Siemens y Sprint PCS. Pero la descarga de MobileSet en sí solo contiene J2MEWTK para comenzar; debe descargar otros SDK por separado. Dado que JBuilder es compatible con UEI, espero que sea compatible con la mayoría de los SDK futuros. La herramienta le permite cambiar entre múltiples JVM y entornos de tiempo de ejecución en un proyecto, lo que simplifica el desarrollo de múltiples plataformas.
  • Herramientas posteriores a la compilación: JBuilder MobileSet tiene soporte incorporado para la ofuscación de archivos de clase a través de RetroGuard 1.1. El paquete Optimizeit Suite optimiza aún más el tamaño y el rendimiento de la aplicación.
  • Soporte de implementación OTA: con JBuilder Enterprise, pude generar fácilmente archivos de manifiesto jar y archivos jad para mi proyecto MIDP. Los proyectos se pueden implementar en un servidor remoto correctamente configurado a través del cliente FTP integrado de JBuilder. Sin embargo, JBuilder no configura el servidor por usted. Puede probar aplicaciones implementadas utilizando JAM del lado del cliente compatibles con OTA integrados en JBuilder.
  • Desarrollo de aplicaciones móviles de extremo a extremo: JBuilder 7 Enterprise tiene excelentes capacidades para desarrollar servidores de aplicaciones back-end J2EE. Puede desarrollar aplicaciones de un extremo a otro completamente dentro de JBuilder.
  • Documentación y tutoriales: Los tres libros que vienen con JBuilder 7 Enterprise están disponibles gratuitamente en versiones HTML y PDF en el sitio web de Borland. Borland también tiene libros tutoriales de MobileSet descargables y muchas otras buenas documentaciones. El soporte de documentación de JBuilder es excelente.
  • Constructores de GUI J2ME: El MobileSet viene con un constructor de GUI MIDP; la producción de código GUI con JBuilder resulta bastante fácil.

Sun ONE Studio 4 Mobile Edition

Anteriormente conocido como Forte para Java, Sun ONE Studio utiliza la tecnología NetBeans para integrar módulos externos en el IDE. Sun ONE Studio viene con tres ediciones: Community, Mobile y Enterprise para Java. Las ediciones Community y Mobile son gratuitas; Enterprise for Java cuesta 995 y tiene funciones sofisticadas de desarrollo e implementación de J2EE. Puede obtener una licencia de prueba gratuita de 60 días para Enterprise para Java en el sitio web de Sun.

Sun ONE Studio se distribuye en línea y en CD. El CD contiene todas las ediciones de Sun ONE Studio 4 en todas las plataformas compatibles, así como J2SE y J2EE. La instalación es sencilla.

Aunque Mobile Edition viene preconfigurado con soporte J2ME, solo tiene características IDE limitadas. Puede agregar fácilmente capacidades de desarrollo J2ME a las ediciones Community y Enterprise para Java instalando un módulo inalámbrico J2ME. Este módulo cumple con las especificaciones de NetBeans y se puede instalar con cualquier edición de Sun ONE Studio. El módulo inalámbrico J2ME proporciona plantillas, asistentes, elementos de menú e integración de compilador y emulador específicos de J2ME, y viene incluido con J2MEWTK.

Uno de los puntos fuertes de Sun ONE Studio es su diseño modular. Los terceros pueden proporcionar componentes fácilmente e integrarse con el IDE. Los ejemplos de dichos módulos incluyen modelado, refactorización y pruebas unitarias UML.

Las ediciones gratuitas de Sun ONE Studio me impresionaron. Sun ONE Mobile Edition o Community Edition más el módulo inalámbrico son los únicos IDE gratuitos de J2ME que recomiendo. Proporcionan características IDE de suma importancia para proyectos grandes y complejos. Community Edition incluso proporciona funciones básicas de desarrollo de aplicaciones del lado del servidor; puede desarrollar aplicaciones de bases de datos y servlets con esta edición. Sun ONE Studio es el único IDE en este artículo que tiene soporte J2ME para plataformas que no son de Windows. Los comentarios a continuación se basan en mi experiencia con Sun ONE Studio 4 Enterprise para Java más el módulo inalámbrico. Pero la mayoría también se aplica a la Community Edition gratuita.