lunes, 22 de diciembre de 2008

-Tutorial GWT- Parte1. Desarrollo de una aplicación Web usando GWT.


Este tutorial sera dividido en tres partes, ya que se cubriran los diferentes aspectos a tener en cuenta al momento de desarrollar una aplicación Web usando el Google Web Toolkit (GWT) bajo el sistema operativo Linux (Ubuntu) y usando el IDE Eclipse. Antes de comenzar, se debe tener instalado Eclipse (ver el tutorial Como instalar Eclipse en Ubuntu). El primer paso a seguir es descargar el GWT de la pagina oficial del proyecto http://code.google.com/webtoolkit/ en un directorio cualquiera, preferiblemente que se encuentre en nuestro home. El archivo descargado tiene la extensión .tar.bz2, para descomprimirlo usamos la siguiente instrucción por consola: tar xvjf gwt-linux-1.5.3.tar.bz2 Aunque se pueden crear proyectos para Eclipse usando algunas herramientas del GWT, en nuestro caso vamos a usar el plugin para Eclipse desarrollado por Cypal, llamado Cypal Studio for GWT, este lo podemos descargar del sitio oficial: http://www.cypal.in/ Una vez descargado y descomprimido, copiamos los archivos *.jar en la carpeta plugins del Eclipse (En caso de tener instalado el Eclipse en el directorio opt debemos tener permisos de root). Una vez realizados estos pasos, procedemos a abrir el Eclipse. Entramos por WindowPreferences damos click a la opción Cypal Studio, allí especificamos la ruta donde se encuentra el GWT, tal como se ve en la siguiente figura:


Damos click en Apply y luego en OK.

Para verificar que todo esté bien, vamos a realizar una aplicación de prueba. Para esto creamos un proyecto tipo Dynamic Web Project y configuramos el proyecto de la siguiente forma:



Damos click en Finish (Es posible que Eclipse te sugiera otra perspectiva, sin embargo, es preferible conservar la perspectiva Java).


Una vez creado el proyecto, nos ubicamos en la raíz y con click derecho seleccionamos NewOther... Nos ubicamos en la opción Cypal Studio y creamos un nuevo modulo, tal como se muestra en la siguiente figura:



Damos click en Next y configuramos el modulo de la siguiente forma:




Click en Finish para terminar.


Con esto se ha creado la jerarquía y archivos suficientes para hacer nuestro primer ejemplo. En el archivo HolaMundo.java ingresamos el siguiente código:

com.camigira.ejemplo.client;

import com.google.gwt.core.client.EntryPoint;
import
com.google.gwt.user.client.Window;
import
com.google.gwt.user.client.ui.Button;
import
com.google.gwt.user.client.ui.ClickListener;
import
com.google.gwt.user.client.ui.RootPanel;
import
com.google.gwt.user.client.ui.Widget;

public class HolaMundo implements EntryPoint {

public void onModuleLoad() {
Button
button = new Button("Prueba");
button.addClickListener(
new ClickListener() {
public void onClick(Widget sender) {
Window.alert(
"Hola Mundo");
}
});
RootPanel.get().add(button);
}

}


Para probar si funciona, nos ubicamos en el archivo HolaMundo.gwt.xml damos click derecho Run AsGWT Hosted Mode Application. Con esto nos debería aparecer tanto el GWT Development Shell como el navegador de prueba con un botón, el cual al darle click hace aparecer una ventana de alerta con la frase Hola Mundo.

Por: Camilo Giraldo J

-Info Android- Que es el Android Market?


Cuando se realiza el esfuerzo de aprender algún tema relacionado con el desarrollo de software, más allá de la satisfacción que puede representar saber “algo nuevo” en definitiva estamos buscando que ese esfuerzo se vea recompensado económicamente, ya sea mediante un mejor salario en una organización o mejores ingresos trabajando de manera independiente para otros. Sin embargo, que pasa con nuestras ideas y proyectos de desarrollo, como realizarlas y lograr que nos representen ingresos?
Una respuesta obvia pude ser “Pues la hago y luego la vendo!”… si lo pensamos bien, el proceso de desarrollo depende únicamente de nosotros y los impedimentos finalmente son oportunidades de aprendizaje, por lo que esa parte de la respuesta está bien, pero “y luego la vendo!” puede ser complejo pues encontrar varios clientes y llegar a todos ellos no es tan simple pues definitivamente que la venta se realice no depende completamente de nosotros, incluso si contamos con buenas aptitudes de vendedor.
Una posible solución a los problemas mencionados es Android Market, gracias a la cual se podría afirmar que la respuesta “Pues la hago y luego la vendo!” puede ser absolutamente cierta. Android Market es un sistema de distribución de contenido que ayuda a los usuarios finales buscar, comprar, descargar e instalar diversos tipos de contenido en sus dispositivos móviles. Esto es, un sistema organizado por Google con características como calificación y retroalimentación por parte de compradores, además, de herramientas que ayuden a los desarrolladores a hacer seguimiento a sus negocios y mejorar sus ofertas y aplicaciones. Este sistema esta soportado por la experiencia e infraestructura que tiene Google propiciando la venta y compra de diversos tipos de aplicaciones de una forma ágil y relativamente simple tanto para desarrolladores como usuarios.
Para la publicación de las aplicaciones en el Android market, se deben tener en cuenta los siguientes aspectos:

Manejo de versiones

Los usuarios necesitan disponer de información específica sobre la versión de la aplicaciónestá instalada en sus dispositivos moviles, para asi conocer saber cuando existen actualizaciones disponibles. En ocasiones el manejo de versiones, permite determinar la compatibilidad de de ciertas aplicaciones o modulos ya que pudiera existir dependencias segun la versión.
Para definir la información de versión en una aplicación Android, se cuenta con dos atributos, los cuales deben ser anexados al archivo manifiesto (manifest).

- android:versionCode Es un valor entero que representa la versión del codigo de la aplicación relativo a otras versiones.
Este valor entero puede ser verificado mediante logica de programacion, para asi evaluar si existen nuevas versiones o alguna relacion de dependencia interna. Este valor es arbitrario, por lo que es el programador quien lo define, sin embargo debe asegurarse de que simepre que exista una nueva versión, este valor sea mayor al anterior.

- android:versionName Es una cadena de texto (String) que representa la versión de la aplicación, esta sera mostrada al usuario.
Este valor no es usado internamente para algun proposito de programacion, simplemente se muestra al usuario, por lo que es importante tener algun estándar o formato.

En caso de que la aplicación requiera una versión minima de la plataforma Android, esta se puede especificar en el archivo manifiesto con el siguiente atributo:

- android:minSdkVersion Valor entero que corresponde a la versión de codigo de la plataforma Android.

Resulta muy util al momento de instalar una aplicación, ya que el sistema valida este atributo comparandolo con la versión del sistema Android, en caso de que no sea compatible el sistema aborta la instalación de la aplicación.

Firmar las aplicaciones

El sistema Android requiere que todas las aplicaciones estén firmadas digitalmente cuya clave privada está en manos del desarrollador. Este certificado es usado como una forma para identificar a los autores y establecer relaciones de confianza entre las aplicaciones. El certificado no necesariamente debe estar firmado por una autoridad de certificación, es normal y común recurrir al auto firmado de certificados para aplicaciones Android.

Los principales puntos a tener en cuenta son:

- Todas las aplicaciones deben ser firmadas digitalmente, el sistema no se instalará una aplicación que no está firmada.
- Es posible usar una firma propia, no es necesario un certificado de autoridad.
- Al momento de publicar una aplicación, se debe firmar la aplicación Android con una clave privada adecuada. No se permite la publicación de aplicaciones que usan la clave por defecto que provee el SDK.
- El sistema verifica la fecha de expiración de la firma solo al momento de realizar la instalación. En caso de que esta fecha expire luego de haber sido instalada, la aplicación continúa funcionando normalmente.
- Es posible usar las herramientas estándar — Keytool and Jarsigner — para generar las claves y firmar la aplicación.

Antes de publicar una aplicación, es recomendable tener en cuenta los siguientes puntos:

- Probar ampliamente su aplicación en un dispositivo real
- Considerar la posibilidad de añadir una licencia de usuario final en su aplicación
- Especificar un icono y etiqueta para su aplicación.
- Especificar la versión de su aplicación
- Obtener un adecuado clave criptográfica
- Registrarse para obtener una clave del Maps API, si su aplicación está utilizando elementos MapView
- Firmar su aplicación
- Pruebe ampliamente la aplicación compilada.

Para mayor información, puede visitar la página oficial del proyecto http://code.google.com/android

Bibliografía
Por: Camilo Giraldo J