RSS Suscripción por rss

Pablo Alonso García

Desarrollador Web con estándares: ¿para qué complicarse?

Campestre Mobile. Versión portable del buscador de casas rurales y fotos del entorno

2 de Junio de 2008. Publicado en Proyectos.

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:

¿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:

Diagrama de flujo

¿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.



3 Comentarios acerca de “Campestre Mobile. Versión portable del buscador de casas rurales y fotos del entorno”:

  1. Ricardo, el 25 de Junio de 2008, 12:57 am:

    muy bien pero…
    como instalo kxml2 en netbeans??

  2. admin, el 25 de Junio de 2008, 9:47 am:

    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,

  3. Ricardo, el 26 de Junio de 2008, 5:56 pm:

    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

Y tú, ¿qué opinas?



Pablo Alonso García

Desarrollador Web con estándares: ¿para qué complicarse?

Sitio desarrollado en 2008 con xHTML 1.0 Strict y CSS v2. Utiliza Wordpress y el tema ha sido creado por mi. Sigueme por RSS.