Google relanza Herramientas de Desarrollo de Instantiations

En agosto Google adquirió , una compañía que desarrollaba herramientas Java (plugins de Eclipse), incluyendo el interesante GWT Designer.

En aquel momento se sembró la duda sobre cuál sería el futuro de estas herramientas, aunque los más avezados entendíamos que detrás de todo esto estaba el interés de Google por potenciar GWT, que en comparación con otras propuestas (especialmente Flex) carecía de una herramienta para el diseño gráfico de UIs GWT.

Pues bien, en este caso tengo que descubrirme ante Google, ya que acaba de relanzar todos los productos de Instantiations de forma gratuita

Los productos que ahora pueden descargarse desde code.google.com son:

GWT Designer: permite diseñar visualmente UIS GWT

CodePro AnalytiX: herramienta muy potente para controlar la calidad del código.

Ofrece auditoría de código, métricas, análisis de dependencias, cobertura de código, generación de Test unitarios: http://code.google.com/intl/es-ES/webtoolkit/tools/codepro/doc/index.html

Es la herramienta gratuita de este estilo más potente. Yo ya estoy instalándola J

WindowBuilder Pro: permite diseñar visualmente UIs para Swing, SWT, GWT, RCP y XWT…esto te va a venire muy bien Onsurbe ;). Hace años la usé y me gustó mucho.

WindowTester Pro: herramienta para automatizar test para aplicaciones SWT y Swing: permite grabar test,…. Algo así como el Selenium para Swing. Indispensable si trabajáis con Swing.

Podéis instalaros todas estas herramientas desde aquí: http://code.google.com/intl/es-ES/webtoolkit/download.html

Las marcas incrementan notablemente el desarrollo de aplicaciones propias para smartphones

(De Alberto Martín)

Más de 7,5 millones de españoles ya navegan desde sus móviles y el 95% de las páginas vistas por los usuarios han sido desde iPhone o terminales con el sistema Android.

Éstos son algunos de los interesantes datos de la tercera entrega del estudio Estado de Mobile Internet referido al segundo trimestre de 2010, presentado por Nielsen Online y TAPTAP Networks.

Las marcas han incrementado su presencia en las tiendas de aplicaciones con el desarrollo de aplicaciones propias, pasando del 7,39% en el primer trimestre de 2010 al 31,49% del segundo. En cambio, la inversión en “landing page”, la inversión baja del 88,64% al 68,51%.

La segmentación por dispositivo (75,18%) y operadora (59,77%) son las preferidas por los anunciantes. La segmentación por geolocalización todavía suena lejos (1,62%).

El banner sigue siendo el formato rey, aunque también entra en competición la ventana desplegable.

UCDetector: Plugin Eclipse para detectar código muerto

(Unnecessary Code Detector) es un plugin de Eclipse para detectar código Java muerto.

UCDetector a diferencia de PMD es capaz de detectar clases públicas, métodos públicos y atributos sin referencias.

Para instalarlo basta con descargarse el JAR (link) y copiarlo en la carpeta dropins de nuestro Eclipse.

Usarlo es tan sencillo como situarnos sobre un proyecto o un paquete y con el botón derecho seleccionar:

Se puede configurar la gravedad asignadas a estos problemas y sobre qué clases hacer el análisis desde Window>Preferences>UCDetector:

En el ejemplo he eliminado todas las clases que contengan *Test*, *VO* y *Stub*:

y le he indicado que me detecte los problemas como errores:

Para hacer más sencilla la identificación luego en Eclipse ordenaré los problemas por Type

De este modo:

No se debe olvidar que los problemas indicados por UCDetector son sugerencias, antes de cambiar/eliminar el código debemos estar seguros, ya que UCDetector no es capaz de identificar las referencias por Reflection, Spring, jars externos,…

Desarrollo de widgets en dispositivos Blackberry

Los widgets son pequeñas aplicaciones web, escritas en una combinación de código HTML, CSS y JavaScript, y que tienen el mismo aspecto, funcionalidad y mecanismos de seguridad que cualquier otra aplicación. Se pueden instalar como cualquier aplicación nativa y se pueden extender para usar información y datos específicos del dispositivo mediante las API para widgets de BlackBerry.

Por poner algunos ejemplos, se pueden desarrollar widgets que hagan uso del GPS, del PIM (calendario, contactos, tareas, notas, recordatorios…) e incluso de la tecnología PUSH.

BLACKBERRY WIDGET SDK

Podemos usar Blackberry widget sdk para crear widgets para los dispositivos móviles Blackberry. Esta SDK incluiría fundamentalmente:

Blackberry Widget Packager para compilar y empaquetar la aplicación. Compilaría todo el código web para crear una aplicación “legible” para todos estos dispositivos. Crea una serie de archivos necesarios para la distribución incluyendo archivo de instalación, ejecutable,…

Blackberry Smartphone Simulator para probar nuestros widgets. Se trata de un emulador de dispositivos Blackberry.

Además incluiría también un entorno de desarrollo integrado (eclipse), un simulador de conectividad y correo electrónico, documentación,…

Un widget no viene a ser más que un .zip que compilamos usando Blackberry Widget Packager para crear una aplicación widget. Este archivo contendrá básicamente:

  • Archivo de configuración.
  • Página de inicio.
  • Imágenes (iconos).
  • Otros recursos y objetos referenciados en nuestras páginas web.

Con un widget de este tipo podríamos conseguir sofisticadas UIs para entrada de datos y búsqueda, que soportasen, por ejemplo, internacionalización, comunicación por red, almacenaje local de datos,… Además un Widget de este tipo se puede comunicar con redes ya sea por conexión TCP o http.

A la hora de desarrollar un widget es importante tener en cuenta ciertos detalles que diferencian a las aplicaciones desarrolladas para funcionar en dispositivos móviles:

  • Tamaño de pantalla: no son los mismos los caracteres que podemos mostrar en una y en otra.
  • Menor velocidad de procesador.
  • Utilizan redes inalámbricas (menor latencia).
  • Menos memoria.
  • Menos vida de la batería.
  • Sólo se muestra una pantalla a la vez.

Volviendo al desarrollo concreto para dispositivos Blackberry, hay que decir que existen multitud de ellos, cada uno con sus propias características, dependiendo del dispositivo interactuará con el contenido de nuestro widget de manera diferente. Por ello, lo lógico es crear algo que sea soportado por la mayoría de dispositivos posibles. Esto lo conseguiremos teniendo en cuenta detalles como por ejemplo crear contenido para distintos tamaños y resoluciones. Estos serían algunos prácticas a seguir para conseguir esto:

  • Usar hojas de estilos para controlar la presentación siempre que sea posible.
  • Crear páginas que se vean correctamente en los dispositivos más estrechos y anchos. Esto lo conseguiríamos con el tag <meta>:

<meta name=”viewport” content=”width=device-width,

height=device-height, initial-scale=1.0″ />

  • Crear páginas que puedan redimensionarse al cambiar la orientación del dispositivo. Con JS sería algo así:

window.onorientationchange = function() {

document.getElementById(“mainBody”).style.height =

screen.height+”px”;

}

  • Diseñar contenido que nos dependa del método de entrada. Hay que verificar que los eventos son interpretados como nosotros queremos por diferentes dispositivos.

A continuación vamos a listar una serie de características particulares de este tipo de widgets para hacernos una idea de hasta dónde se puede llegar.

  • Hay que tener en cuenta los estándares y contenidos soportados por en navegador de Blackberry. Existen guías a este respecto en el sitio oficial de Blackberry para HTML, CSS y JavaScript.
  • Diseño de aplicaciones para redes inalámbricas.
  • Gestión de memoria.
  • Uso del API (Gears API). Con este API podemos acceder a la mayoría de características de los dispositivos Blackberry. Podremos desde por ejemplo colocar un icono en el escritorio que sea un punto de entrada a nuestra aplicación hasta usar el servicio de geolocalización.
  • Personalización del uso del recolector de basura.
  • Gestión de datos. Un widget de Blackberry puede almacenar datos a persistir en memoria a través del API, ya sea en la memoria flash o en la tarjeta. También tenemos la opción de instalar una base de datos (SQLite) con ayuda del API.
  • Comunicación. Un widget de Blackberry puede usar protocolos estándar http, HTTPS y sockets TCP para establecer conexiones sobre redes inalámbricas. Pero el desarrollador puede decirle a la aplicación que puerta de enlace quiere que use.
  • Integración con las aplicaciones nativas. Con un widget de este tipo podríamos por ejemplo invocar al calendario para mostrar una una entrada o fecha específica; invocar a la libreta de direcciones para mostrar un contacto específico; o por ejemplo invocar al navegador para abrir una dirección web específica.
  • Añadir ítems personalizados. Usando el API Blackberry widget podemos añadir ítems personalizados al menú.
  • Habilitar acceso a recursos externos o APIs. Por defecto un widget de Blackberry no puede recuperar una página html o mandar una request a un web service. Esto, no obstante, es configurable. Tendríamos que confeccionar una lista de permisos en el xml de configuración del que hemos hablado al principio, en el que le especificamos al widget una serie de dominios a los que tiene acceso, sería algo así:

<access uri =”*”/>

  • Consideraciones de seguridad. Podemos hacer cosas como autenticación, encriptación de ficheros, encriptación de datos,…

CREAR UN WIDGET

Una vez hemos bajado las herramientas y montado el entorno (JDK + SDK de BlackBerry Widget + Eclipse), ya se puede empezar a desarrollar los widgets.

Básicamente para generar un widget de BlackBerry necesitamos realizar los siguientes pasos, que comprenden los que habíamos comentado anteriormente más alguno extra particular para este tipo de dispositivos:

  • Escribir el código HTML, CSS y JavaScript (la aplicación en sí)
  • Generar un fichero llamado config.xml , la configuración del widget
  • Crear un comprimido con ZIP (archive.zip) que consiste en todo lo anterior
  • Compilar el Widget con BlackBerry Widget Packager
  • Instalar y testear el widget en el simulador
  • Firmar el widget con una llave que nos proporciona RIM (necesario sólo si vamos a instalar la aplicación en un dispositivo físico)
  • Distribuir el widget (opcional)
  • Primero debemos generar un fichero llamado index.html, que consite en la parte “visible” de la aplicación, desde el cual haremos referencia al código JavaScript, algo como esto:

function mostrarmodelo()
{
var model = blackberry.system.model;
alert('Mi BlackBerry es el modelo ' + model);
}

function mostrarpin()
{
var pin = blackberry.identity.PIN;
alert(‘Mi PIN es: ‘ + pin);
}

Lo siguiente sería crear un archivo de configuración. Este será un xml que estará en la raíz de nuestro proyecto y que contiene información sobre nuestra aplicación como por ejemplo: el namespace, nombre del widget, permisos, página de inicio, iconos a usar,… Y también contendría otra información más “accesoria” como por ejemplo: Autor, e-mail, información sobre la licencia,…

Compilar

Cuando compilamos nuestro widget, el software se encarga de validar su contenido y generar una serie de ficheros:

Fichero COD, aplicación distribuible via OTA

Fichero ALX, aplicación instalable desde el Desktop Manager

Fichero JAD, aplicación instalable desde una web/Internet

Ficheros CSO y CSL, necesarios para el firmado de la aplicación

Compilar un widget es muy sencillo, se puede hacer o bien desde Eclipse (CTRL+F11), o bien desde la línea de comandos, aunque lo más habitual es hacerlo desde el IDE (que a su vez hará uso del ejecutable en línea de comandos).

PRUEBAS

Una vez que tengamos desarrollado nuestro widget podemos probarlo con ayuda de Blackberry Smartphone Simulator. Simplemente habría que abrir el programa, cargar el fichero widget.cod, abrirlo y en la ventana de la aplicación abrir la carpeta downloads en la que estará el widget.

Si queremos probarlo en un dispositivo real tendremos que ejecutar el ejecutable JavaLoader.exe contenido en BlackBerry Widget Packager. Habría que conectar el dispositivo al pc y ejecutar algo parecido a esto desde el JavaLoader:

JavaLoader [-usb] [-pport] [-bbps] [-wpassword] load file