lunes, 26 de marzo de 2012

Metodo


METODOS DEL DESARROLLO DE SISTEMA DE INFORMACION
Métodos de Desarrollo de Sistemas
Son Pautas de desarrollo brindado por los modelos de ciclos de vida, los cuales están constituidos por las siguientes etapas:
Especificación de requerimientos:
Se realizan entrevistas con el usuario identificando los requerimientos y necesidades del usuario.
Análisis:
Modela los requerimientos del usuario.
Diseño:
Se modela la solución del sistema, teniendo en cuenta el ambiente de implementación a utilizar, por ejemplo, si el sistema es centralizado o distribuido, la base de datos a utilizar, lenguaje de programación, performance deseada, etc.
Implementación:
Dado el lenguaje de programación elegido se implementa el sistema.
Testeo: En esta etapa se verifica y valida el sistema teniendo en cuenta algunos criterios determinados por el grupo correspondiente.
Mantenimiento: Es la etapa más difícil de desarrollo del sistema, actualiza y modifica el sistema si surgen nuevos requerimientos.
METODOLOGIAS DEL DESARROLLO DE SISTEMAS DE INFORMACION
Son métodos que indican cómo hacer más eficiente el desarrollo de sistemas de información. Para ello suelen estructurar en fases la vida de dichos sistemas con el fin de facilitar su planificación, desarrollo y mantenimiento.
Las metodologías de desarrollo de sistemas deben definir: objetivos, fases, tareas, productos y responsables, necesarios para la correcta realización del proceso y su seguimiento.
Los principales objetivos de una metodología de desarrollo son:
  • Asegurar la uniformidad y calidad tanto del desarrollo como del sistema en sí.
  • Satisfacer las necesidades de los usuarios del sistema.
  • Conseguir un mayor nivel de rendimiento y eficiencia del personal asignado al desarrollo.
  • Ajustarse a los plazos y costes previstos en la planificación.
  • Generar de forma adecuada la documentación asociada a los sistemas.
  • Facilitar el mantenimiento posterior de los sistemas.
METODO DE CASCADA PURA
En un modelo en cascada, un proyecto progresa a través de una secuencia ordenada de pasos partiendo de la especificación de requerimientos hasta el mantenimiento del mismo.
El método realiza una revisión al final de cada etapa para determinar si está preparado para pasar a la siguiente etapa, por ejemplo, desde el análisis de requerimientos hasta el diseño.
Cuando la revisión determina que el proyecto no está listo pasar a la siguiente, permanece en la etapa actual hasta que esté preparado.
El modelo en cascada está dirigido por documentos.
Ayuda a localizar errores en las primeras etapas del proyecto a un bajo costo.
Ayuda a minimizar los gastos de la planificación porque permite realizarla sin planificación porque permite realizarla sin problemas.
Funciona especialmente bien si se dispone de personal poco cualificado o dispone de personal poco cualificado o inexperto, porque presenta el proyecto inexperto, porque presenta el proyecto con una estructura que ayuda a minimizar con una estructura el esfuerzo inútil.
En resumen, los inconvenientes del venerado modelo en cascada hacen que sea, a menudo, un modelo poco apropiado para un proyecto de desarrollo rápido. Incluso en los casos en los que las ventajas del modelo en cascada pura superan los inconvenientes, los modelos de cascada modificada (con retroceso) pueden funcionar mejor.
Las desventajas del modelo se centran en las dificultades para especificar claramente los requerimientos al comienzo del proyecto, antes de que se realice ningún trabajo de diseño y antes de escribir ningún código.
No proporciona resultados tangibles en forma de software hasta el final del ciclo de forma de software del ciclo de vida de Algunas herramientas, métodos y actividades que abarcan varias etapas de la cascada; estas actividades son difíciles de ajustar en las etapas discontinuas del modelo para un proyecto de desarrollo rápido, el modelo en cascada puede suponer una cantidad excesiva de documentación.
El modelo genera pocos signos visibles de progreso hasta el final. Esto puede dar la impresión de un desarrollo lento, existe la incertidumbre de los clientes si sus proyectos serán entregados a tiempo.
METODO ESPIRAL
Es un modelo de ciclo de vida orientado a riesgos que divide un proyecto software en mini-proyectos.
Cada mini proyecto se centra en uno o más riesgos importantes hasta que todos estén controlados.
Después de controlar todos los riesgos más importantes, el modelo en espiral finaliza del mismo modo que el ciclo de vida en cascada.
Método Desarrollo en Espiral
Funcionamiento:
Se parte de una escala pequeña en medio de la espiral, se localizan los riesgos, se genera un plan para manejar los riesgos, y a continuación se establece una aproximación a la siguiente interacción.
Cada iteración supone que el proyecto pasa a una escala superior. Se avanza un nivel en el Espiral, se comprueba que se tiene lo que se desea, y después se comienza a trabajar en el siguiente nivel:
Con cada iteración a través del espiral se construye sucesivas versiones de software cada vez más completas. En cada bucle alrededor del espiral, la culminación del análisis de riesgo resulta una decisión de “seguir” o “no seguir”.
Cada interacción en el método espiral lleva consigo los seis pasos que a continuación se nombran: Determinar objetivos, alternativas y límites, Identificar y resolver riesgos, Evaluar alternativas,
Generar las entregas de esa iteración, y comprobar que son correctas.
En el modelo en espiral, las primeras iteraciones son las menos costosas.
Supone menos gasto desarrollar el concepto de operación que realizar el desarrollo de los requerimientos, y también es menos costoso desarrollar los requerimientos que llevar a cabo el desarrollo del diseño, la implementación del producto y la prueba del mismo.
En cada Cuadrante del Método espiral se realiza las siguientes actividades:
Planificación:
Determinación de objetivos, alternativas, restricciones, y elaboración del plan de desarrollo para el ciclo actual.
Análisis de Riesgos:
Evaluación de las alternativas, identificación y resolución de riesgos. Se decide si se sigue o no con el proyecto
Ingeniería:
Desarrollo del producto siguiendo un modelo: del ciclo de vida o cascada, prototipo, etc. Evaluación por el cliente, Valoración de resultados.
METODO DE CODIFICAR Y CORREGIR
(Code-and-fix)
Es un modelo poco útil, pero sin embargo bastante común Se puede tener una especificación formal, o no tenerla Si no se ha utilizado formalmente un método, probablemente ya se esté usando el método Codificar y Corregir en forma intuitiva Cuando se utiliza éste método se empieza con una idea general de lo que se necesita construir, Se utiliza cualquier combinación de diseño, código, depuración y métodos de prueba no formales que sirven hasta que se tiene el producto listo para entregarlo.
Ventajas:
No conlleva ninguna gestión; no se pierde tiempo en la planificación, en la documentación, en el control de calidad, en el cumplimiento de los estándares, o en cualquier otra actividad que no sea codificación pura.
Como se pasa directamente a codificar, se pueden mostrar inmediatamente indicios de progreso.
Requiere poca experiencia: cualquier persona que haya escrito alguna vez un programa está familiarizada con éste modelo.
Para proyectos pequeños que se intentan liquidar en un tiempo breve, o para modelos como programas de demostración o prototipos desechables, el modelo codificar y corregir puede ser útil.
Desventajas:
El modelo resulta peligroso para otro tipo de proyectos que no sean pequeños.
Puede que no suponga gestión alguna, pero tampoco ofrece medios de evaluación del progreso.
No proporciona medios de evaluación de la calidad o de identificación de riesgos.
Si al llevar tres cuartas partes de la codificación descubre que el diseño es incorrecto, no hay otra solución que desechar el trabajo y comenzar de nuevo.
METODO PROTOTIPO
Este método hace que el usuario participe de manera más directa en la experiencia de análisis y diseño que cualquiera de los ya presentados. La construcción de prototipos es muy eficaz bajo las circunstancias correctas. Sin embargo, al igual que los otros métodos, el método es útil sólo si se emplea en el momento adecuado y en la forma apropiada.
¿Qué es un prototipo?
El prototipo es un sistema que funciona, no solo una idea en el papel, desarrollado con la finalidad de probar ideas y suposiciones relacionadas con el nuevo sistema. Al igual que cualquier sistema basado en computadora, está constituido por software que acepta entradas, realiza cálculos, produce información ya sea impresa o presentada en una pantalla, o que lleva a cabo otras actividades significativas. Es la primera versión, o iteración, de un sistema de información.
Lo usuarios evalúan el diseño y la información generada por el sistema. Lo anterior sólo puede hacerse con efectividad si los datos utilizados, al igual que las situaciones, son reales. Por otra parte, deben esperarse cambios a medida que el sistema es utilizado.
Razones para desarrollar prototipos de sistemas:
Los requerimientos de información no siempre están bien definidos. Es probable que los usuarios conozcan sólo ciertas áreas de la empresa donde se necesiten mejoras o cambios en los procedimientos actuales. También es posible que reconozcan la necesidad de tener mejor información para administrar ciertas actividades pero que no estén seguros cual de esta información será la adecuada. Los requerimientos del usuario pueden ser demasiado vagos aun al formular el diseño. En otros casos, es probable que una investigación de sistemas bien llevada necesite del desarrollo de nueva tecnología.
Los prototipos permiten evaluar situaciones extraordinarias donde los encargados de diseñar e implantar sistemas no tienen información ni experiencia, o también donde existen situaciones de riesgo y costo elevados, y aquellas donde el diseño propuesto es novedoso y aún no se demuestra es la factibilidad de que los vendedores envíen ordenes de pedido al sistema de cómputo de la compañía desde el sitio donde efectúan la operación por medio de terminales portátiles enlazadas a teléfonos públicos. Para probar el concepto los administradores y encargados de sistemas pueden optar por construir una versión en pequeña escala del software, adquirir unas cuantas terminales y seleccionar un grupo de vendedores. El prototipo proporcionará información preliminar sobre la funcionalidad del concepto.
El prototipo es, en realidad, un modelo piloto o de prueba, en general, los analistas de sistemas encuentran que los prototipos tienen mayor utilidad bajo las siguientes condiciones:
  • Los encargados de diseñar e implantar sistemas nunca han desarrollado uno con las características del sistema propuesto.
  • Se conoce sólo una parte de las características esenciales del sistema; las demás no son identificables a pesar de un cuidadoso análisis de requerimientos.
  • La experiencia con el uso del sistema añadirá una lista significativa de requerimientos que el sistema debe satisfacer.
  • Las diferentes versiones del sistema evolucionan con la experiencia al igual que el desarrollo adicional y el refinamiento de sus características.
  • Los usuarios del sistema participan en el proceso de desarrollo.
Los pasos a seguir en el proceso de desarrollo de prototipos son los siguientes:
ð Identificar los requerimientos de información que el usuario conoce junto con las características necesarias del sistema.
ð Desarrollar un prototipo que funcione.
ð Utilizar el prototipo anotando las necesidades de cambios y mejoras. Esto expande la lista de los requerimientos de sistemas conocidos.
ð Revisar el prototipo con base en la información obtenida a través de la experiencia del usuario.
ð Repetir los pasos anteriores las veces que sea necesario hasta obtener5 un sistema satisfactorio.
Él analista debe de reunirse con los usuarios una o dos veces con la finalidad de identificar los requerimientos. El resultado de estas reuniones forma la base para la construcción del prototipo.
El desarrollo de un prototipo que funcione es responsabilidad del analista de sistemas, cuando el analista y el usuario deciden que cuentan ya con la suficiente información proveniente del proceso de construcción del prototipo, determinan cómo satisfacer los requerimientos ya identificados. En general se opta por una de las siguientes opciones:
ð Volver a desarrollar el prototipo. Esta alternativa quizá signifique volver a programar por completo, empezando desde el principio.
ð Implantar el prototipo como sistema terminado La eficiencia en el funcionamiento junto con los métodos para interactuar con el usuario son suficientes; esto permite utilizar el sistema tol como está.
ð Abandonar el proyecto. En este caso el prototipo ha proporcionado información suficiente para demostrar que no es posible desarrollar el sistema para satisfacer los objetivos deseados dentro del marco de la tecnología existente o de lineamientos económicos u operacionales.
ð Iniciar otra serie de construcción de prototipos. La información ganada con la experiencia sugiere ya sea un enfoque totalmente distinto o características contrastantes.
Cada una de estas opciones se considera como un éxito en el proceso de la construcción de prototipos.
Métodos para el desarrollo de prototipos
Con los prototipos la velocidad de desarrollo es más importante que la eficiencia en el procesamiento. Un sistema prototipo se construye con rapidez, los sistemas prototipo pueden desarrollarse con métodos y lenguajes de programación convencionales, quizá falten los controles de entrada y procesamiento y, en general, la documentación del sistema es un punto que suele evitarse. Lo importante es ensayar ideas y generar hipótesis relacionadas con los requerimientos y que la eficiencia y perfección alcanzadas.
La industria de computadora busca continuamente generadores de aplicaciones, programas que sirven para generar otros programas, para apoyar los esfuerzos de la construcción de prototipos. En algunos casos, aquellos donde el sistema será utilizado con poca frecuencia, el prototipo puede, de hecho, convertirse en el sistema terminado.
METODO DE ANALISIS Y DISEÑO ESTRUCTURADO
ð Muchos especialistas en sistemas de información reconocen la dificultad de comprender de manera completa sistemas grandes y complejos. El método de desarrollo del análisis estructurado tiene como finalidad superar ésa dificultad por medio de 1) la división del sistema en componentes y 2) la construcción de un modelo del sistema. El método incorpora elementos tanto de análisis como de diseño.
¿Qué es el análisis estructurado?
El análisis estructurado concentra en especificar lo que se requiere que haga el sistema o la aplicación. No se establece cómo se cumplirán los requerimientos o la forma en que implantará la aplicación. Más bien permite que las personas observen los elementos lógicos (lo que hará el sistema) separados de los componentes físicos (computadoras, terminales, sistemas de almacenamiento, etc.) Después de esto se puede desarrollar un diseño físico eficiente para la situación donde será utilizado.
Elementos del análisis estructurado:
Los elementos esenciales son símbolos gráficos, diagramas de flujo de datos y diccionario centralizado de datos.
Descripción gráfica
Una de las formas de describir un sistema es preparar un bosquejo que señale sus características, identifique la función para la que sirve e indique cómo éste interactúa con otros elementos, entre otras cosas. Sin embargo, describir de esta manera un sistema grande es un proceso tedioso y propenso a errores ya que es fácil omitir algún detalle o dar una explicación que quizá los demás no entiendan.
En lugar de las palabras el análisis estructurado utiliza símbolos, o íconos, para crear un modelo gráfico del sistema. Los modelos de este tipo muestran los detalles del sistema. Si se seleccionan los símbolos y notación correctos entonces casi cualquier persona puede seguir la forma en que los componentes se acomodarán entre si para formar el sistema.
El diagrama lógico de flujo de datos muestra las fuentes y destinos de los datos, identifica y da nombre a los procesos que se llevan a cabo, identifica y da nombre a los grupos de datos que relacionan una función con otra y señala los almacenes de datos a los que se tiene acceso.
Diagrama de flujo de datos: El modelo del sistema recibe el nombre de diagrama de flujo de datos (DFD). La descripción completa de un sistema está formada por un conjunto de diagramas de flujo de datos.
Para desarrollar una descripción del sistema por el método de análisis estructurado se sigue un proceso descendente (TOP-down). El modelo original se detalla en diagramas de bajo nivel que muestran características adicionales del sistema. Cada proceso puede desglosarse en diagramas de flujo de datos cada vez más detallados. Esta secuencia se repite hasta que se obtienen suficientes detalles que permiten al analista comprender en su totalidad la parte del sistema que se encuentra bajo investigación.
Diccionario de datos:
Todas las definiciones de los elementos en el sistema (flujo de datos, procesos y almacenes de datos) están descritos en forma detallada en el diccionario de datos. Si algún miembro del equipo encargado del proyecto desea saber alguna definición del nombre de un dato o el contenido particular de un flujo de datos, esta información debe encontrarse disponible en el diccionario de datos.
¿Que es el diseño estructurado ¿
Se enfoca en el desarrollo de especificaciones del software. La meta del diseño estructurado es crear programas formados por módulos independientes unos de otros desde el punto de vista funcional.
El diseño estructurado es una técnica específica para el diseño de programas y no un método de diseño de comprensión. Esta técnica conduce a la especificación de módulos de programa que son funcionalmente independientes. La herramienta fundamental del diseño estructurado es el diagrama estructurado, los cuales son de naturaleza gráfica y evitan cualquier referencia relacionada con el hardware o detalles físicos. Su finalidad no es mostrar la lógica de los programas. Los diagramas estructurados describen la interacción entre módulos independientes junto con los datos que un módulo pasa a otro cuando interacciona con él. Estas especificaciones funcionales para los módulos se proporcionan a los programadores antes que dé comienzo la fase de escritura de código.
Empleo del Análisis estructurado con otros métodos de desarrollo:
El análisis estructurado se combina, con bastante frecuencia, con el método ya presentado de ciclo de vida clásico de desarrollo de sistemas. Por ejemplo, los analistas pueden optar más de flujo de datos como una forma para documentar las relaciones entre componentes durante la investigación detallada de algún sistema existente, Asimismo, se puede definir los archivos y datos en un diccionario centralizado de datos de acuerdo con las reglas de análisis estructurado.
Sin embargo muchas organizaciones optan por no utilizar este método de desarrollo. Por ejemplo, los analistas deciden con frecuencia que el desarrollo de diagramas y esquemas es una tarea que consume mucho tiempo, sobre todo si el sistema es grande y complejo. (Es común que los diagramas tengan que dibujarse una y otra vez conforme se adquiere nueva información). Como se verá más adelante, se han desarrollado herramientas asistidas por computadora para superar este problema.
Otros analistas señalan que los elementos que faltan, tales como las personas y los procedimientos de control, son parte del sistema mismo y no pueden omitirse en la descripción de éste. Más adelante se considerará este aspecto tan importante.

martes, 20 de marzo de 2012

Usavi


Usavi
El proyecto usavi es un método para medir la usabilidad de las aplicaciones en dispositivos táctiles con sistema operativo Android. Este método nos mostrara si los desarrollos de aplicativos móviles son eficientes, efectivos y satisfactorios en nuestro contexto permitiéndole a un usuario especifico cumplir con su objetivo de forma clara y consistente, permitiéndole al mismo comprender y retener de forma fácil y rápida cómo funciona el aplicativo y que rutas son las más adecuadas para navegarlo.

Los desarrollos de diseño necesitan de un estudio previo sobre el contexto, sobretodo tratándose de tecnologías nuevas como lo son los servicios móviles es oportuno establecer ciertas características inherentes a la hora de abordar estas temáticas como son, la apropiación tecnológica y los mapas mentales que estructuran la navegación y la interacción con los dispositivos. Por ello el estudio de usabilidad que esta investigación plantea es un acercamiento para evaluar como interactúa el usuario con su dispositivo, como son sus mapas mentales y si las aplicaciones existentes en el mercado son efectivas para lograr un objetivo concreto y si satisfacen al usuario o si por el contrario son motivo de frustración, lo cual establecería unas pautas de desarrollo para móviles a partir de las características de los grupos objetivos y los mercados existentes en nuestra ciudad, y permitirle al usuario un acercamiento y uso satisfactorio de sus dispositivos diseñando estructuras acordes a los mapas mentales de nuestro contexto.

Las mediciones se harán en dos trazas delimitadas por la edad y la apropiación tecnológica, permitiendo establecer patrones para el desarrollo de Apps móviles para los usuarios de  la ciudad de Manizales.

El método tiene unas etapas de desarrollo, la primera consiste en adecuar una encuesta virtual que permita un acercamiento con los usuarios de móviles táctiles con android, estableciendo una serie de características y patrones que identifiquen los grupos objetivos a los cuales tendremos acceso con el estudio de esta plataforma de desarrollo móvil. Los daros obtenidos en esta encuesta permitirán establecer una arquitectura de la información y diseñar la interacción más adecuada a nuestro público objetivo.
La segunda etapa consiste en desarrollar un aplicativo para el android market que consiste en una App de geo localización para la ciudad de Manizales, la cual permitirá al usuario incluir en su mapa de recorridos y de sitios turísticos información propia adquirida de la visita a estos lugares, así como fotos y experiencias; en si se basa en un mapa con un diario de viaje o una bitácora desde la cual podremos obtener la visión de muchas personas sobre la ciudad.
Con el desarrollo de esta aplicación para móviles enfocada en las características y elementos gráficos que han sido determinantes en la primer encuesta, se procederá a establecer un medio de evaluación sobre la funcionalidad, la usabilidad y diseño de interacción basado en las características de los usuarios y en  la efectividad y eficiencia con la que desarrollaran una tarea asignada, así como la satisfacción o la frustración resultante de utilizar la aplicación.

Las tecnologías propias del desarrollo.

Eclipse es un entorno de desarrollo integrado, multiplataforma y de código abierto que soporta varios lenguajes de programación. El cual en conjunto con el SDK de goggle permite desarrollar interfaces para móviles android.
 El kit de desarrollo de software de android, SDK, es otra plataforma que nos permitirá diseñar la aplicación para móviles  android, contiene una cantidad de librerías y de API´S provenientes de su desarrollador goggle las cuales son adaptables a los desarrollos hechos para el android mark; también posee un emulador de la maquina android en la cual es posible visualizar las características graficas del desarrollo con las limitantes de no poseer acelerómetro, giroscopio ni modo táctil.

Otra forma de generar aplicaciones es con Processing un desarrollador de codigo abierto en lenguaje de programacion que permite desarrollar interacion humano dispositivo a la cual se le pueden agregar las bibliotecas del SDK y los plugin de Android para desarrollar aplicativos de esta plataforma.

Como el desarrollo de la aplicación incluye geo localizacion es necesario agregar los API de goggle Maps. Las API son una serie de servicios o funciones que un sistema operativo le ofrece a los desarrolladores y programadores capaz de llamar otras aplicaiones preexistentes y utilizarlas en el desarrollo propio.
Android utiliza la API de Google Maps para el desarrollo de aplicaciones basadas en  localización. Las clases de la API están ubicadas en el package com.google.android.maps package y android.location para la localización.
Permiten que las aplicaciones puedan descargar, renderizar y visualizar zonas de
mapas, así como añadir capas y  marcadores.

martes, 13 de marzo de 2012

PRESENTACIÓN DE AVANCES DEL PROYECTO USAVI





Cronograma de trabajo

27 de Febrero    Publicacion de la primer encuesta
15 de Marzo      Tabulacion de datos de acercamiento
28 de Marzo      Desarrollo del Demo App
12 de Mayo        Testeo de la App
12 de Mayo         Implantacion de la segunda encuesta por segmentos
28 de Mayo       Tabulacion de la segunda encuesta sobre la App
4 de Junio          Desarrollo del metodo

viernes, 2 de marzo de 2012

Mapas en Android


Mapas en Android (I): Preparativos y ejemplo básico

Siguiendo con nuestro Curso de Programación en Android, tras haber hablado en los dos últimos artículos sobre localización geográfica mediante GPS (aquí y aquí), en este nuevo artículo vamos a empezar a hablar de un complemento ideal para este tipo de servicios y aplicaciones, como es la utilización de mapas en nuestras aplicaciones haciendo uso de la API Android de Google Maps.
Antes de empezar a utilizar el servicio de mapas de Google es necesario realizar algunas tareas previas. En primer lugar, debemos asegurarnos de que tenemos instalado el paquete correspondiente a la versión de Android para la que desarrollamos “enriquecido” con las APIs de Google. Estos paquetes se llaman normalmente “Google APIs by Google, Android API x, revisión y“. Esto podemos comprobarlo y descargarlo si es necesario desde Eclipse accediendo al Android SDK and AVD Manager. En mi caso, utilizaré el paquete correspondiente a Android 2.1 (API 7) + APIs de Google:
mapas-avd-package
Para poder probar nuestras aplicaciones en el emulador también tendremos que crear un nuevo AVD que utilice este paquete como target:
mapas-avd-package-2
Y por supuesto, al crear nuestro proyecto de Eclipse también tendremos que seleccionarlo comotarget en las propiedades:
mapas-proyecto-eclipse
Con todo esto ya tendríamos creado nuestro proyecto de Eclipse y estaríamos preparados para poder ejecutar aplicaciones en el emulador sobre la versión correcta de Android y las APIs necesarias de Google. Por tanto, ya podemos centrarnos en la utilización de dichas APIs.
Esto último también requiere algunos pasos previos. Para poder utilizar la API de Google Maps se requiere la obtención previa de una clave de uso (API Key), que estará asociada al certificado con el que firmamos digitalmente nuestra aplicación. Esto quiere decir que si cambiamos el certificado con el que firmamos nuestra aplicación (algo que se hace normalmente como paso previo a la publicación de la aplicación en el Market) tendremos que cambiar también la clave de uso de la API.
En el tema de los certificados no voy a entrar mucho puesto que lo trataremos en un artículo posterior, por ahora tan sólo diremos que durante la construcción y depuración de nuestras aplicaciones en el emulador de Android se utiliza automáticamente un certificado de depuración creado por defecto. Por tanto, para poder depurar aplicaciones en el emulador que hagan uso de Google Maps tendremos que solicitar una clave asociada a nuestro certificado de depuración.
Para ello, en primer lugar debemos localizar el fichero donde se almacenan los datos de nuestro certificado de depuración, llamado debug.keystore. Podemos saber la ruta de este fichero accediendo a las preferencias de Eclipse, sección Android, apartado Build (mostrado en la siguiente imagen), y copiar la ruta que aparece en el campo “Default Debug Keystore“:
mapas-androiddebugkey-eclipse
Una vez conocemos la localización del fichero debug.keystore, vamos a accder a él mediante la herramienta keytool.exe de java para obtener el hash MD5 del certificado. Esto lo haremos desde la linea de comandos de Windows mediante el siguiente comando (click para ampliar):
mapas-androiddebugkey-cmd
Copiaremos el dato que aparece identificado como “Huella digital de certificado (MD5)” y con éste accederemos a la web de Google (http://code.google.com/android/maps-api-signup.html) para solicitar una clave de uso de la API de Google Maps para depurar nuestras aplicaciones (Insisto, si posteriormente vamos a publicar nuestra aplicación en el Market deberemos solicitar otra clave asociada al certificado real que utilicemos). Dicha web nos solicitará la marca MD5 de nuestro certificado y nos proporcionará la clave de uso de la API, como se muestra en la siguiente imagen:
mapas-androiddebugkey-google
Con esto, terminamos con todos los pasos previos para la utilización de los servicios de Google Maps dentro de nuestras aplicaciones Android.
Una vez contamos con la clave de uso de la API, la inclusión de mapas en nuestra aplicación es una tarea relativamente sencilla y directa. En este primer artículo sobre mapas nos vamos a limitar a mostrar el mapa en la pantalla inicial de la aplicación, habilitaremos su manipulación (desplazamientos y zoom), y veremos cómo centrarlo en una coordenadas concretas. En próximos artículos aprenderemos a manipular de forma dinámica estos mapas, a mostrar marcas sobre ellos, y a realizar otras operaciones más avanzadas.
Para incluir un mapa de Google Maps en una ventana de nuestra aplicación utilizaremos el controlMapView. Estos controles se pueden añadir al layout de la ventana como cualquier otro control visto hasta el momento, tan sólo teniendo en cuenta que tendremos que indicar la clave de uso de Google Maps en su propiedad android:apiKey como se muestra a cotinuación:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
 
<com.google.android.maps.MapView
    android:id="@+id/mapa"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:apiKey="0ss-5q6s3FKYkkp3atMUH..."
    android:clickable="true" />
 
</LinearLayout>
Como vemos, además de la propiedad apiKey, también hemos establecido la propiedad clickablecon valor true,de forma que podamos interactuar con el control mediante gestos con el dedo (por ejemplo, para desplazarnos por el mapa).
Este tipo de controles tienen la particularidad de que sólo pueden ser añadidos a una actividad de tipo MapActivity, por lo que pantalla de la aplicación en la que queramos incluir el mapa debe heredar de esta clase. Así, para nuestro caso de ejemplo, vamos a hacer que la clase principal herede de MapActivity, como vemos en el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package net.sgoliver.android;
 
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
 
import android.os.Bundle;
 
public class AndroidMapas extends MapActivity {
 
    private MapView mapa = null;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        //Obtenemos una referencia al control MapView
        mapa = (MapView)findViewById(R.id.mapa);
 
        //Mostramos los controles de zoom sobre el mapa
        mapa.setBuiltInZoomControls(true);
    }
 
    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
}
Como vemos, si nuestra clase hereda de MapActivity debemos implementar obligatoriamente el método isRouteDisplayed(), cuyo valor de retorno debe ser true sólo en caso de que vayamos a representar algún tipo de información de ruta sobre el mapa (esto no se trata de ningún tema técnico, sino tan sólo legal, para cumplir los términos de uso de la API de Google Maps). En este primer artículo nos limitaremos a mostrar el mapa en la pantalla principal de la aplicación, por lo que por el momento devolveremos false.
Además de esto, en el método onCreate() llamaremos al método setBuiltInZoomControls()sobre la referencia al control MapView para mostrar los controles de zoom estandar sobre el mapa, de forma que podamos acercar y alejar la vista del mapa. Con esto, ya tendríamos un mapa completamente funcional funcionando en nuestra aplicación.
Para ejecutar la aplicación de ejemplo sobre el emulador de Android aún nos queda un paso más, modificar el fichero AndroidManifest.xml. Por un lado, tendremos que especificar que vamos a hacer uso de la API de Google Maps (mediante la cláusula <uses-library>), y en segundo lugar necesitaremos habilitar los permisos necesarios para acceder a Internet (mediante la cláusula<uses-permission>). En el siguiente fragmento de código vemos cómo quedaría nuestroAndroidManifest tras añadir estas dos lineas:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="utf-8"?>
      package="net.sgoliver.android"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />
 
    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name">
 
        <uses-library android:name="com.google.android.maps" />
 
        <activity android:name=".AndroidMapas"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
    <uses-permission android:name="android.permission.INTERNET" />
 
</manifest>
Tras estos dos cambios ya podemos ejecutar el proyecto de Eclipse sobre el emulador. Comprobaremos cómo podemos movernos por el mapa y hacer zoom con los controles correspondientes:
mapa-ejemplo