Proyecto final de curso - dcomg.upv.esjtomas/android/proyectos2ed/BusNap.pdf · Android:...

9
Proyecto final de curso Android: Programación de aplicaciones (2ª edición online, junio-septiembre 2011) Nombre de la aplicación: BusNap Autor: Pallardó Lozoya, Mª Remedios Qué hace la aplicación: La aplicación permite seleccionar un punto en el mapa (mediante búsqueda de ubicaciones por texto o directamente seleccionando un punto en el mapa) y establecer una alarma que avise al usuario cuando se encuentre en un radio de X metros (parámetro configurable). Así mismo, se permite una gestión de favoritos (asociación de ubicación-alarma) de forma que el usuario puede reactivar una alarma almacenada en cualquier momento. Solo se permite una alarma activa al mismo tiempo. Así pues, si el usuario va en el autobús por ejemplo, puede establecer una alarma para evitar pasarse la parada en caso de quedarse dormido. Licencia: Autorizo la difusión del código fuente con fines educativos siempre que se haga referencia al autor bajo los términos generales de la licencia “Academic Free License v.3.0 ”. A destacar: Los favoritos pueden añadirse seleccionando un punto en el mapa o buscando una ubicación en un cuadro de texto (por ejemplo, una dirección). Menú de aplicación con las siguientes funcionalidades: o Mi ubicación: centra el mapa en tu la ubicación actual. o Favoritos: muestra un listado de los favoritos almacenados (ListView). Al pinchar en cada ítem se desplegará un menú contextual que nos permitiría ver el favorito en el mapa, establecer una alarma o editarlo. o Buscar ubicaciones por nombre: permite introducir el nombre de una ciudad o dirección y muestra los resultados en un ListView. Pinchando en la ubicación deseada se desplegará un menú contextual que nos permitirá ver la ubicación en el mapa o añadirla a favoritos. o Ajustes: se permite elegir entre vista de mapa satélite o StreetView. o Acerca de: muestra un diálogo con información sobre la aplicación.

Transcript of Proyecto final de curso - dcomg.upv.esjtomas/android/proyectos2ed/BusNap.pdf · Android:...

Proyecto final de curso

Android: Programación de aplicaciones

(2ª edición online, junio-septiembre 2011)

Nombre de la aplicación: BusNap

Autor: Pallardó Lozoya, Mª Remedios

Qué hace la aplicación:

La aplicación permite seleccionar un punto en el mapa (mediante búsqueda de ubicaciones por texto o directamente seleccionando un punto en el mapa) y establecer una alarma que avise al usuario cuando se encuentre en un radio de X metros (parámetro configurable). Así mismo, se permite una gestión de favoritos (asociación de ubicación-alarma) de forma que el usuario puede reactivar una alarma almacenada en cualquier momento. Solo se permite una alarma activa al mismo tiempo. Así pues, si el usuario va en el autobús por ejemplo, puede establecer una alarma para evitar pasarse la parada en caso de quedarse dormido.

Licencia:

Autorizo la difusión del código fuente con fines educativos siempre que se haga referencia al autor bajo los términos generales de la licencia “Academic Free License v.3.0”.

A destacar:

• Los favoritos pueden añadirse seleccionando un punto en el mapa o buscando una ubicación en un cuadro de texto (por ejemplo, una dirección).

• Menú de aplicación con las siguientes funcionalidades:

o Mi ubicación: centra el mapa en tu la ubicación actual.

o Favoritos: muestra un listado de los favoritos almacenados (ListView). Al pinchar en cada ítem se desplegará un menú contextual que nos permitiría ver el favorito en el mapa, establecer una alarma o editarlo.

o Buscar ubicaciones por nombre: permite introducir el nombre de una ciudad o dirección y muestra los resultados en un ListView. Pinchando en la ubicación deseada se desplegará un menú contextual que nos permitirá ver la ubicación en el mapa o añadirla a favoritos.

o Ajustes: se permite elegir entre vista de mapa satélite o StreetView.

o Acerca de: muestra un diálogo con información sobre la aplicación.

o Salir: permite salir de la aplicación desactivando por completo el servicio de ubicación.

• Cuando la aplicación pasa a segundo plano y existe una alarma activa, el servicio de ubicación se encargará de comprobar que llegamos al destino. Cuando esto ocurra se le notificará al usuario que ha llegado al destino mediante una notificación y, opcionalmente (si así lo hay configurado al crear la alarma), el dispositivo vibrará y/o emitirá una música (Servicio de Música).

• Si el usuario mantiene la aplicación en primer plano, la pantalla se mantendrá encendida, de forma que el usuario pueda visualizar el mapa y comprobar en todo momento cual es su ubicación.

• Las configuraciones de alarmas se almacenarán en una base de datos SQLite, concretamente en la tabla “favoritos”.

• Idiomas: español e inglés.

Cómo lo hace:

• El peso principal de la aplicación recae en la actividad principal MainActivity, que se encargará de visualizar el mapa y las distintas ubicaciones favoritas que vayamos almacenando en la BD SQLite. En caso de que exista una alarma activa y la aplicación pase a segundo plano (p.e.: el usuario activa la alarma y se pone a jugar mientras a Angry Birds), el servicio UbicacionSrvc se encargará de comprobar si nos acercamos al destino y notificárselo en tal caso. Para configurar una alarma, el usuario simplemente deberá introducir la distancia a la que debe sonar la alarman, si deberá sonar música y si el dispositivo vibrará.

• A continuación se describen las diversas clases empleadas:

o AcercaDeActivity: se muestra al seleccionar la opción de menú correspondiente.

o Alarma: permite la gestión de la alarma activa.

o BuscarUbicacionActivity: permite buscar una dirección y seleccionarla para mostrarla en el mapa o añadirla a favoritos.

o EditarFavoritoActivity: permite editar un favorito o crear uno nuevo.

o Favorito: clase Java que representa una ubicación favorita con una configuración de alarma asociada.

o FavoritosActivity: ListView que lista los favoritos almacenados en la BD.

o FavoritosMiAdaptador: adaptador empleado para el ListView de la clase anterior.

o FavoritosSQLite: gestión de los favoritos en una base de datos SQLite.

o FinDestinoActivity: AlertDialog que aparece cuando el usuario llega a su destino.

o MainActivity: la clase principal que contiene el mapa.

o MyItemizedOverlay: clase que permite visualizar los favoritos en el mapa mediante iconos.

o PreferenciasActivity: actividad que muestra las preferencias de la aplicación.

o ServicioMusicaSrvc: servicio que se activa cuando el usuario llega a su destino en caso de que la alarma configurada tenga activado el parámetro “música”.

o SetDestinoActivity: actividad encargada de activar la alarma para un determinado destino.

o UbicacionesMiAdaptador: adaptador empleado para mostrar los resultados de la búsqueda en el ListView de la actividad BuscarUbicacionActivity.

o UbicacionSrvc: servicio encargado de comprobar la ubicación actual y de si hemos llegado al destino en caso de que se haya activado una alarma y el usuario haya dejado la actividad MainActivity en segundo plano.

Captura de pantallas:

Ilustración 1. Logo de la aplicación

Ilustración 2. Actividad MainActivity mostrando el menú en horizontal. Vista de mapa Street.

Ilustración 3. Preferencias

Ilustración 4. Actividad MainActivity mostrando el menú en vertical. Vista de mapa Satélite.

Ilustración 5. Actividad AcercaDe

Ilustración 6. Buscar ubicación por dirección (BuscarUbicacionActivity). Se muestra menú contextual con diversas opciones al seleccionar un ítem del ListView.

Ilustración 7. Otro ejemplo de búsqueda.

Ilustración 8. Se añade la ubicación “Aldaia” a los favoritos.

Ilustración 9. El nuevo favorito se visualiza en el mapa. Seleccionamos la opción “Establecer como destino”

Ilustración 10. Cuando MainActivity pasa a segundo plano y hay una alarma configurada, el servicio de ubicación se activa.

Ilustración 11. Cuando llegamos al destino, se advierte al usuario mediante notificaciones, diálogos, música y vibración.

Ilustración 12. Se puede seleccionar como destino cualquier punto en el mapa

Ilustración 13. En este caso, además de activar la alarma para este punto, vamos a guardarlo como favorito.

Ilustración 14. Una vez creado el favorito, podemos editarlo desde el mapa o desde el listado de favoritos.

Ilustración 15. Otro ejemplo de edición de favoritos.

Ilustración 16. Una vez editado, guardamos los cambios.

Ilustración 17. Desde FavoritosActivity podemos obtener un listado con todos los favoritos almacenados en la base de datos SQLite.

Ilustración 18. Cada ítem de la lista presentará varias opciones.