Campestre Mobile. Versión portable del buscador de casas rurales y fotos del entorno
Posted: junio 2nd, 2008 | Author: Pablo | Filed under: Proyectos | 6 Comments »Campestre Mobile es una aplicación desarrollada bajo la tecnología Java ME, cuya funcionalidad es similar a la versión original de Campestre: Búsqueda de casas rurales y fotografías del entorno. El siguiente video es una demostración de su funcionamiento, ejecutada sobre el emulador MicroEmulator:
[flv width="300" height="600"]http://alonsogarciapablo.com/wp-content/uploads/2008/06/videocampestre.flv[/flv]
¿Con qué aplicación ha sido desarrollado?
He utilizado Netbeans IDE 6.1, que incorpora plugins para el desarrollo de apliaciones MIDP. Con Netbeans, el desarrollo resulta muy sencillo, aunque genera gran cantidad de código, que muchas veces no permite editar. Digamos que es un desarrollo visual, a través de diagramas. La siguiente imagen corresponde al diagrama de flujo de esta aplicación:

¿De donde saca la información?
Al igual que su hermano mayor, esta versión se nutre de la información de 11870 y fotos de Flickr. Para ello realiza invocaciones a los correspondientes servicios Web REST.
¿Cómo parsea los resultados obtenidos?
El principal problema que surge al desarrollar aplicaciones para dispositivos en los que hay restricciones en cuanto a tamaño, memoria y funcionalidades soportadas por la máquina Java, es la limitación en cuanto al uso de librerías.
Existen diversas librerías de pequeño tamaño, diseñadas específicamente para este tipo de aparatos. Tras probar varios parsers, me decanté por KXML2, un pequeño parser XML diseñado específicamente para entornos restringidos como aplicaciones MIDP, Applets, etc. Lo que me impulsó a dedidirme por KXML2 fue la posibilidad de parsear el fichero mediante DOM, que me resulta infinitamente más sencillo que SAX.
El siguiente fragmento de código es el que utilizo para parsear los resultados devueltos por 11870, en formato ATOM/RSS:
KXmlParser parser = new KXmlParser();
parser.setInput(in, "UTF-8");
Document doc = new Document();
doc.parse(parser);
Element root = doc.getRootElement();
for (int i = 0; i < root.getChildCount() ; i++ ) {
Element kid = root.getElement(i);
if (kid.getName().equals("entry")) {
CasaRural casa = new CasaRural();
// Recorremos todos los campos de la entrada
for (int j=0; j<kid.getChildCount(); j++) {
Element campo = kid.getElement(j);
String nombre = campo.getName();
if (nombre.equals("title")) {
casa.setNombre(campo.getText(0));
}
else if(nombre.endsWith("telephone")) {
casa.setTelefono(campo.getText(0));
}
else if(nombre.endsWith("useraddress")) {
casa.setDireccion(campo.getText(0));
}
else if(nombre.endsWith("locality")) {
casa.setLocalidad(campo.getText(0));
}
else if(nombre.endsWith("subadministrativearea")) {
casa.setProvincia(campo.getText(0));
}
} // for de campos
casas.addElement(casa);
} // if entry
} // for de entry
¿Donde podría instalarse Campestre Mobile?
Campestre Mobile debería poder ser instalado en cualquier dispositivo móvil que disponga de una máquina virtual java compatible con CLDC-1.1 y MIDP-2.0 o superior. Sin embargo, en algunos entornos, la URL de la API de 11870 se malinterpreta al ser un nombre de dominio compuesto únicamente por números y la búsqueda de casas rurales no funciona como debiera.
muy bien pero…
como instalo kxml2 en netbeans??
Hola Ricardo,
kxml2 no es mas que una librería Java. Para utilizar en cualquier proyecto, simplemente debes descargar e incluir el correspondiente fichero .jar en el classpath del proyecto.
En Netbeans, en la ventana Projectos, verás que dentro de tu proyecto hay una carpeta con el nombre de Resources. Si pinchas con el botón derecho sobre esa carpeta, se abre un menú desplegable que te da la opción de añadir un fichero jar.
Siguiendo esos pasos ya deberías poder utilizar las clases de kxml2 en tus clases.
Un saludo,
añado el kxml2-2.3.0.jar como me dijiste pero al hacer
import org.kxml2.io;
me dice:package org.kxml2 does not exist
es raro porque cuando pongo import org.
en las sugerencias si me aparece kxml2, selecciono kxml2, poego el punto”.”
en las sugerencias aparece io lo selecciono y termino el import con ounto y coma “;”
pero de ahi me dice lo qu ete comento que no existe el paquete
Lo que tenes que hacer Ricardo es agregarlo en la librerias de NetBeans. vas a Tools / Librerias y ahi haces click en nueva libreria y cargas Kxml2 Le das un nombre con el que lo puedas identificar y cargas el classpath y source… de ahi para poder usarlo en el proyecto que tengas debes hacer click derecho sobre los recuross y te saldran unas opciones. La ultima es agregar libreria. seleccionas Kxml2 y listo..
Espero que te sirva.
Queria preguntar ya que utilizan Kxml2 como haces para grabar nuevos datos en un xml.
Busco por internet y no encuentro nada concreto.. me podrias comentar como lo haces vos???.
desde ya gracias.
Juanjo
Hola quisiera saber si hiciste algun cambio de formato a las imagenes porque segun entiendo los midlet solo soportan png