aplicación de android

Upload: marco-antonio-nayhua

Post on 13-Apr-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Aplicacin de Android

    1/118

    Escola Tcnica Superior dEnginyeria Informtica

    Universitat Politcnica de Valncia

    Aplicacin de Android para

    geo-localizacin de tareaspendientes. Gestin e

    implementacin de BD y

    aplicacin mvil

    Trabajo Fin de Grado

    Grado en Ingeniera Informtica

    Curso: 2013 - 2014

    Autor: Jessica Carpintero Macin

    Tutor: Joan Josep Fons Cors

  • 7/25/2019 Aplicacin de Android

    2/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    2

  • 7/25/2019 Aplicacin de Android

    3/118

    3

    Resumen

    Cada da que pasa la gente tiene menos tiempo para organizarse, pararecordar que tena que hacer, para buscar el sitio adecuado. Cuntas veces lagente pasa por delante de un sitio el cual tena algo que comprar o hacer y porno recordarlo le toca volver otro da?

    Para ello este proyecto va explicar una aplicacin mvil basada en un gestorde tareas, donde al usuario se le permitir gestionar todas sus tareaspendientes, as como aadir sus puntos de inters favoritos donde poderrealizarlas. A parte, la aplicacin mostrar en todo momento su posicin y lastareas que tenga ms prximas, igual que notificaciones de cercana y tiempo

    que permitirn al usuario recordar si tena que realizar alguna tarea. Adems, elusuario podr sincronizar sus tareas contenidas con otros gestores,permitindole tener en una nica aplicacin, todo unificado. Toda lainformacin de la aplicacin estar almacenada en un servidor que ser el quehaga de conexin con el resto de gestores y donde estar almacenado todoslos datos del usuario.

    Para conseguir el objetivo explicado en el prrafo anterior, se ha realizado unaaplicacin mvil en la plataforma Android, la cual hace uso de muchas libreraspropias del entorno para proporcionar al usuario una aplicacin fcil de usar y

    que se acomode a sus necesidades. Por otro lado, la aplicacin ha utilizado lasAPIs de Google Maps y Google Task para poder realizar el mapa y lasincronizacin de tareas. Para la creacin del servidor y su comunicacin conla aplicacin y con otros gestores de tareas se ha utilizado PHP y una capaRESTful.

    Una vez finalizada la aplicacin y el servidor se ha conseguido que el usuariopueda tener agrupadas todas las tareas que tenga creadas en la propiaaplicacin, a travs de un sistema unificado y l cual le notifica en todo

    momento si existe alguna tarea cercana. Esto ayuda mucho a las personasolvidadizas y desordenadas a mantener sus tareas al da, permitindoles vivircon mayor calidad de vida.

    Palabras clave: gestor, tareas, aplicacin, mvil, sincronizacin,

    geolocalizacin, servidor.

  • 7/25/2019 Aplicacin de Android

    4/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    4

    AbstractEvery day that passes people have less time to organize, to remember whatthey should do, to find the right place. How many times people pass in front of a

    site which had something to do or buy but do not remember it, and thereforemust come again another day?

    For this reasons, this project will explain a mobile application based on a taskmanager where the user will be allowed to manage all your pending tasks andadd your favorite points of interest where they can perform them. In addition,the application displays your position all the time and nearest tasks, plusnotifications of closeness and countdown that will remind the user to performsome task. Furthermore, users can synchronize their tasks with othermanagers, allowing their to have in a single application, unified whole. Allapplication information will be stored on a server that will synchronize with othermanagers and stored all user data.

    To achieve the objective described in the previous paragraph, we have made amobile application on the Android platform, which makes use of many ownenvironment libraries to provide the user an easy to use application that fulfilyour needs. On the other hand, the application uses Google Maps API toperform the map and Google Task API for tasks synchronization. To developthe server and its communication interface with the application and other task

    managers we use PHP and a RESTful layer.Upon completion the application and the server, the user can have grouped allthe tasks created in both applications through a unified system that notifies youall the time if there is a near task. This helps a lot to people forgetful anddisorganized to maintain their daily tasks, allowing them to live with greaterquality of life.

    Keywords: manager, tasks, application, mobile, synchronization, geo-localization, server.

  • 7/25/2019 Aplicacin de Android

    5/118

    5

  • 7/25/2019 Aplicacin de Android

    6/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    6

    Tabla de contenidos

    1. Siglas y abreviaturas ................................................................................... 9

    2. Tabla de ilustraciones ............................................................................... 10

    3. Introduccin ............................................................................................... 13

    3.1 Historia y motivacin ........................................................................... 13

    3.2 Objetivos ............................................................................................. 13

    3.3 Antecedentes ...................................................................................... 14

    3.4 Estructura de la memoria .................................................................... 15

    4. Contexto tecnolgico ................................................................................. 164.1 Comparativa de tecnologas, frameworks e IDEs ............................... 16

    4.2 Tecnologas elegidas .......................................................................... 17

    4.2.1 Android ......................................................................................... 17

    4.2.2 SQLite ........................................................................................... 17

    4.2.3 Google MAPS API ........................................................................ 17

    4.2.4 REST ............................................................................................ 18

    5. Especificacin de requisitos ...................................................................... 185.1 Toma de requisitos .............................................................................. 18

    5.2 Requisitos funcionales ........................................................................ 18

    5.2.1 Actores ......................................................................................... 19

    5.2.2 Persona ........................................................................................ 19

    5.2.3 Escenario ...................................................................................... 20

    5.2.4 Casos de uso ................................................................................ 20

    5.3 Requisitos no funcionales ................................................................... 346. Planificacin .............................................................................................. 36

    6.1 Definicin de las funcionalidades ........................................................ 36

    6.2 MoSCoW ............................................................................................. 37

    6.3 Esquema cronolgico .......................................................................... 39

    7. Diseo ....................................................................................................... 41

    7.1 Modelo de datos .................................................................................. 41

    8.

    Implementacin ......................................................................................... 43

    8.1 Aplicacin ............................................................................................ 43

  • 7/25/2019 Aplicacin de Android

    7/118

    7

    9. Versin final .............................................................................................. 99

    10. Pruebas ................................................................................................ 114

    11 Conclusiones ........................................................................................ 115

    12 Monetizacin ........................................................................................ 116

    13 Ideas de ampliacin .............................................................................. 117

    14 Bibliografa............................................................................................ 118

  • 7/25/2019 Aplicacin de Android

    8/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    8

  • 7/25/2019 Aplicacin de Android

    9/118

    9

    1. Siglas y abreviaturas

    HTML (HyperText Markup Language): es un lenguaje de marcado para ladesarrollo de pginas web.

    PHP (Hypertext Pre-Processor): es un lenguaje de programacin del lado delservidor diseado para webs de contenidos dinmicos.

    HTTP(Hypertext Transfer Protocol): Es el un protocolo sin estado utilizado parala transaccin web.

    REST (Representational State Transfer): es una tcnica de arquitecturasoftware sobre capa HTTP que establece la idea de tratamiento del contenido

    como recursos con operaciones aplicables.

    IDE (Integrated Development Environment): Entorno de desarrollo que ofreceframeworks y herramientas para proyectos sobre distintos lenguajes.

    GPS (Global Positioning System): sistema de navegacin espacial basado engeo-posicionamiento por satlite. Proporciona al usuario informacin precisasobre su posicin y hora actual.

    SQL (Structured Query Language): Lenguaje estructuras de consultas de basede datos relacionales.

    MySQL: Sistema gestor relacional de bases de datos, multiusuario, rpido yrobusto, que utiliza el lenguaje SQL.

    SqLite: es un sistema de gestin de base de datos relacional compacto,comprimido en un nico fichero y muy ligero.

    XML (eXtensible Markup Language): lenguaje de marcas utilizado para elalmacenamiento de datos sin codificacin.

    SOAP (Simple Object Access Protocol): protocoloestndarque define la formade que dos objetos en diferentes procesos puedan comunicarse condatosXML.

    XML-RPC (eXtensible Markup Language Remote Procedure Call): protocolode transmisin de mensajes basado en XML.

    Java: Lenguaje de programacin orientado a objetos y clases, concurrente yejecutable en cualquier dispositivo que tenga la mquina virtual de java.

    API (Application Programming Interface): conjunto de funciones y

    procedimientos que proporciona una librera para poder ser utilizado por otrossoftware como una capa de abstraccin.

  • 7/25/2019 Aplicacin de Android

    10/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    10

    2. Tabla de ilustraciones

    Ilustracin 1 - Estadsticas del uso de Android ................................................. 16Ilustracin 2 - Ajustes del mapa ....................................................................... 21Ilustracin 3 - Ajustes de las notificaciones ...................................................... 24Ilustracin 4 - Gestin de puntos de inters ..................................................... 27Ilustracin 5 - Gestin de tareas...................................................................... 29Ilustracin 6 - Mapa .......................................................................................... 32Ilustracin 7 - Planificacin 1 ............................................................................ 40Ilustracin 8 - Planificacin 2 ............................................................................ 40Ilustracin 9 - Planificacin 3 ............................................................................ 41Ilustracin 10 Servidor ................................................................................... 42

    Ilustracin 11 Aplicacin ................................................................................ 43Ilustracin 12 - Estructura ................................................................................ 44Ilustracin 13 Adaptador del despegable de la categora .............................. 45Ilustracin 14 Adaptador de la lista de tareas................................................ 46Ilustracin 15 Adaptador del men principal.................................................. 47Ilustracin 16 Inicializacin de los parmetros del mapa .............................. 48Ilustracin 17 - Repintar en mapa .................................................................... 49Ilustracin 18 - Alerta apagado el GPS ............................................................ 49Ilustracin 19 - Carga de preferencias del usuario ........................................... 50

    Ilustracin 20 - Inicializacin y carga de los parmetros del men principal .... 50

    Ilustracin 21 - Inicializacin de la pantalla de los puntos de inters ............... 51Ilustracin 22 - Seleccionar un punto de inters............................................... 52Ilustracin 23 - inicializar y cargar las tareas en la pantalla ............................. 53Ilustracin 24 - Seleccin de una tarea ............................................................ 54Ilustracin 25 - Ajustes ..................................................................................... 54Ilustracin 26 - Atributos y constructor de categoras ...................................... 55Ilustracin 27 - Atributos de POI ....................................................................... 56Ilustracin 28 - Constructores de POI .............................................................. 57Ilustracin 29 - Mtodos para parsear .............................................................. 58Ilustracin 30 Atributos de tareas .................................................................. 59Ilustracin 31 - Atributos tarea .......................................................................... 60Ilustracin 32 Constructores tareas .................................................................. 61Ilustracin 33 - Mtodos para parsear .............................................................. 62Ilustracin 34 -Atributos usuario ....................................................................... 63Ilustracin 35 - Obtener posicin usuario ......................................................... 64Ilustracin 36 - Obtener posicin del usuario ................................................... 65 Ilustracin 37 - Aadir todas las tareas ............................................................ 66Ilustracin 38 - Aadir todas las tareas al mapa ............................................... 67

    Ilustracin 39 - Obtener puntos de inters ....................................................... 67Ilustracin 40 - Obtener puntos de inters por distancia .................................. 68

  • 7/25/2019 Aplicacin de Android

    11/118

    11

    Ilustracin 41 - Mejor localizacin del GPS ..................................................... 69Ilustracin 42 - Modo GPS automtico ............................................................. 70Ilustracin 43 - Carga de notificaciones ........................................................... 71Ilustracin 44 - Lanzamiento notificacin de cercana ...................................... 72Ilustracin 45 - Notificacin de cercania ........................................................... 72Ilustracin 46 - Notificacin por cercana ......................................................... 73Ilustracin 47 - Tarea programada ................................................................... 74Ilustracin 48 - Tablas de la base de datos ..................................................... 75Ilustracin 49 - Aadir y obtener categora ....................................................... 76Ilustracin 50 - Modificar y borrar categora ..................................................... 77Ilustracin 51 - Conexin a Internet .................................................................. 78Ilustracin 52 - Despegable punto de inters en aadir tarea .......................... 79Ilustracin 53 - Despegable punto de inters en modificar tarea...................... 80Ilustracin 54 - Aadir tarea ............................................................................ 81

    Ilustracin 55 - Modificar tarea ......................................................................... 82Ilustracin 56 - Obtener datos tarea a modificar ............................................... 82Ilustracin 57 - Obtener direccin ..................................................................... 83Ilustracin 58 - Llamada al servidor para crear tarea ....................................... 84Ilustracin 59 - Llamada al servidor para modificar tarea ................................. 85Ilustracin 60 - Seleccin de la pantalla del men principal ............................. 86Ilustracin 61 - Carga del men ....................................................................... 87Ilustracin 62 - Seleccin de los botones ......................................................... 88Ilustracin 63 - Bsqueda tarea ........................................................................ 89

    Ilustracin 64 - Bsqueda de la tarea en el servidor ........................................ 90Ilustracin 65 - Descarga y sincronizacin de tareas con el servidor ............... 91Ilustracin 66 - Descarga manual ..................................................................... 92Ilustracin 67 - Botn Back............................................................................... 92Ilustracin 68 - Obtencin de direccin del punto de inters ............................ 93Ilustracin 69 - Aadir punto de inters ............................................................ 94Ilustracin 70 - Men borrar punto de inters ................................................... 94Ilustracin 71 - Gestin del men principal ...................................................... 96Ilustracin 72 - Eliminar tarea del servidor ....................................................... 97Ilustracin 73 - Compartir tarea ........................................................................ 98Ilustracin 74 - Carga de las imagenes para las tareas ................................... 98Ilustracin 75 - Pantalla inicio ........................................................................... 99Ilustracin 76 - Pantalla registro ..................................................................... 100Ilustracin 77 - Sincronizacin de datos ......................................................... 101Ilustracin 78 - Men principal ........................................................................ 102Ilustracin 79 - Visualizacin de mapa ........................................................... 103Ilustracin 80 - Visualizacin de tarea seleccionada ...................................... 104Ilustracin 81 - Lista de tareas ....................................................................... 105Ilustracin 82 - Tarea seleccionada ................................................................ 106

    Ilustracin 83 - Aadir tarea ........................................................................... 107Ilustracin 84 - Compartir tarea ...................................................................... 108

  • 7/25/2019 Aplicacin de Android

    12/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    12

    Ilustracin 85 - Lista puntos de inters ........................................................... 109Ilustracin 86 - Gestin punto de inters ........................................................ 110Ilustracin 87 - Sincronizar con Google Tasks ............................................... 111Ilustracin 88 - Ajustes ................................................................................... 112Ilustracin 89 - Bsqueda de tarea ................................................................. 113

  • 7/25/2019 Aplicacin de Android

    13/118

    13

    3. Introduccin

    Se ha diseado un gestor de tareas que incorpora una capa deinteroperabilidad para poder comunicarse con diferentes plataformas de tareas.Adems, tiene acceso a una base de datos con geo-localizacin de los puntosde inters donde se pueden realizar las tareas.

    El uso de este gestor se realiza a travs de aplicaciones mviles, en este casose ha decidido desarrollar una aplicacin implementada en Android. Laaplicacin permite al usuario gestionar sus tareas, tanto de este gestor comode otros (Google Tasks,), y geo-localizarlas en un mapa.

    3.1 Historia y motivacin

    Actualmente el desarrollo de aplicaciones est en alza con previsin decrecimiento en el futuro. Estos datos se pueden confirmar viendo en laIlustracin las estadsticas que demuestran que los Smartphone son losdispositivos ms utilizados hoy en da. Las personas utilizan su Smartphonepara realizar cualquier actividad, todo esto es gracias a la gran variedad deapps que pueden contener. Estas apps permiten a las personas entretenerse,comunicarse, gestionarse,.... Y si a esto se le suma que cada da que pasa la

    gente tiene menos tiempo para sus tareas y vive estresada hace pensar quehaca falta una aplicacin que les ayude a gestionar sus tareas cotidianas. Porello se ha decidido realizar un gestor de tareas con su aplicacin mvil parabrindar a las personas el poder gestionar sus tareas sin necesidad de perdermucho tiempo. Ya no tendrn que preocuparse en recordar que tarea tenanpendiente y en donde tenan que realizarla, la aplicacin se encargara dealmacenar toda esa informacin y suministrarla cuando sea necesario.

    3.2 Objetivos

    En este apartado se definen los objetivos personales para este proyecto engrupo, los cuales consisten en disear e implementar gran parte de laaplicacin mvil, as como el modelo de datos del sistema y gestin de la basede datos. A continuacin se definen a nivel ms profundo los objetivos que sequiere alcanzar:

    Representar la posicin geogrfica del usuario. Consultar el listado de tareas pendientes.

  • 7/25/2019 Aplicacin de Android

    14/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    14

    Gestionar una base de datos con las tareas pendientes y sus puntos deinters donde se puedan realizar.

    Geo-localizar en un mapa la posicin donde se oferta la localizacin deuna tarea, y los puntos de inters donde se pueda realizar.

    Notificar las localizaciones donde se presten las tareas ms cercanas alusuario.

    3.3 AntecedentesEste apartado se centra en comparar los objetivos de la aplicacin con otrasaplicaciones que estn en el mercado e intentar suplir sus deficiencias dandomayores funcionalidades al usuario. En este caso se han elegido dos bastanteusadas que son explicadas a continuacin:

    1. ePythia :

    1.1 Tareas geolocalizadas1.1.1 Aadir tareas desde su localizacin concreta1.1.2 Asignar en el mapa localizacin de la tarea1.1.3 Introduccin de tareas manual como de voz1.1.4 Notificaciones1.1.5 Definir radio para las notificaciones segn prioridad de

    la tarea1.1.6 Radar para revisar lugares cercanos para realizar

    tareas pendientes

    1.2 Sincronizacin en la nube

    2 Wunderlist:2.1 Planifica cualquier tarea2.2 Comparte con cualquiera las tareas2.3 Accede desde cualquier lugar2.4 Creacin de tareas concurrentes2.5 Subtareas (Las tareas grandes pueden subdividirse en pequeas

    para facilitar su realizacin)2.6 Notas2.7 Fecha de vencimiento en las tareas2.8 Recordatorios2.9 Notificaciones2.10 Posibilidad de imprimir2.11 Sincronizacin con la nube2.12 Utilizable desde cualquier dispositivo

    Estas aplicaciones tienen extras que se quiere incluir en la aplicacin (tareas

    geo-localizadas, notificaciones, fecha de vencimiento de las tareas), peroaparte de todas estas funcionalidades nuestra aplicacin tambin puede

  • 7/25/2019 Aplicacin de Android

    15/118

    15

    sincronizar tareas con otros servidores, dando al usuario la oportunidad detener toda sus tareas contenidas en un nico lugar.

    Seguidamente, se explica cmo se estructura la memoria con sus diferentesapartados.

    3.4 Estructura de la memoriaEste proyecto est compuesto por el grupo de alumnos de la UPV ETSINFEmanuel Alloza lvarez y Jessica Carpintero Macin. En esta memoria sedefine la parte correspondiente a Jessica Carpintero Macian.

    En primer lugar se han definido las diferentes siglas y abreviaturas, para que ellector tenga referencia de todas ellas segn lea el contenido de la memoria.Seguidamente se encuentra el ndice de la Ilustraciones. Despus, est la

    introduccin la cual pone en contexto al lector sobre lo que va a tratar elproyecto, en este punto se encuentran tambin definidos los objetivos y suestructura.

    A continuacin se detallan los diferentes apartados que han ayudado a definirel proyecto. Primero de todo se explicar una breve comparativa de lastecnologas conocidas para implementarlo y la explicacin de que tipo detecnologas se han escogido. En segundo lugar se ha definido la especificacinde requisitos donde se recoge toda la informacin a travs de la identificacinde los requisitos funcionales y no funcionales. Justo despus, se habla de la

    planificacin donde est representada todas las funcionalidades que tiene quecontener el proyecto, como un listado de prioridades de implementacin y unesquema cronolgico con la representacin del tiempo estimado que deberacostar realizar el proyecto.

    En el siguiente apartado se define el modelo de datos que sigue la aplicacin,el diseo est definido en la memoria de mi compaero donde se encuentranlos ejemplos de cada pantalla, divididas en funcin de las funcionalidadesdescritas. Seguidamente esta explicada la implementacin de la aplicacin, enellas se describen y visualizan los diferentes mtodos que han definido las

    funcionalidades. Seguidamente, hay una descripcin de las pruebas que sehan realizado de que problemas han conllevado y su solucin.

    Y por ltimo, se encuentra las conclusiones que se han llegado despus derealizar todo el proyecto, como sus mejoras a largo plazo para dar mayoresservicios al usuario y la forma de poder monetizar la aplicacin y as sacarrentabilidad al trabajo realizado y mejores versiones para que los usuariostengan la aplicacin que ellos deseen.

  • 7/25/2019 Aplicacin de Android

    16/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    16

    4. Contextotecnolgico

    4.1 Comparativa de tecnologas, frameworks eIDEs

    Se han evaluado los requisitos de la aplicacin y del servidor, y tras realizarun pequeo estudio de las tecnologas disponibles se han tomado lassiguientes resoluciones:

    La aplicacin mvil se desarrollar para la plataforma Android, debido al ltimo

    estudio de Worldpanel Comtech, el 88.6% de los usuarios Espaoles dedispositivos mviles utiliza dicha plataforma, sumado a que incluye una grancompatibilidad con Google Maps y otras herramientas para notificaciones. Estocomplementado a la experiencia y soporte del lenguaje forman la mejor opcin.

    Ilustracin 1 - Estadsticas del uso de Android

    Como complemento se utilizar un sistema de base de datos de sqlite por su

    ligereza en la plataforma de Android, y Google Maps por ser la mejor opcin encuanto a calidad de mapas y ligereza de datos.

    La aplicacin ser realizada con Android Studio, el IDE propio de Google paraprogramar en Android. La eleccin de este IDE es que aporta la posibilidad dever cmo queda la aplicacin en diferentes versiones de forma automtica, sinnecesidad de compilar ni probar en diferentes dispositivos. Ayuda a lalocalizacin de las clases gracias a que mantiene una estructura jerrquica.Adems, contiene gradle que realiza las tareas de compilacin, testing,

    empaquetado y el despliegue de los proyectos automticamente.

  • 7/25/2019 Aplicacin de Android

    17/118

    17

    4.2 Tecnologas elegidas

    4.2.1 Android

    Android es unsistema operativoorientado a dispositivos mviles, basado enuna versin modificada del ncleo Linux. Se trata de unsistema abierto,multitarea, que permite a los desarrolladores acceder a las funcionalidadesprincipales del dispositivo mediante aplicaciones. Cualquieraplicacinpuedeser reemplazada libremente o ser desarrollada por terceros, a travsde herramientas proporcionadas por Google, mediante los lenguajes deprogramacin Java y C.

    El cdigo fuente de Android est disponible bajo diversas licencias de softwarelibre y cdigo abierto, Google liber la mayora del cdigo de Android bajola licencia Apache. Todo esto permite que un desarrollador no solo puedamodificar su cdigo sino tambin mejorarlo.A travs de esas mejoras puedepublicar el nuevo cdigo y con el ayudar a mejorar el sistema operativo parafuturas versiones.

    4.2.2 SQLite

    SQLite es un motor de base de datos SQL embebido. A diferencia de otrosgestores de base de datos no tiene un proceso de servidor independientepermitindole ser autnomo. Contiene una completa base de datos SQL, convarias tablas, ndices, triggers, etc y todo ello est contenido en un nicoarchivo de disco nico. Su formato es multiplataforma por tanto, le permite serportable para cualquier sistema. Adems, no es necesario instalarlo niconfigurarlo, esto hace que su uso sea ms sencillo y por tanto cada da que

    pasa es ms utilizada en cualquier tipo de sistema.

    4.2.3 Google MAPS API

    La API de Google Maps es un conjunto de APIs que permite sobreponer datossobre un mapa de Google Maps personalizado. Con ello, se puede crearatractivas aplicaciones web y mviles, donde poder agregar imgenes de

    satlite, Street View, perfiles de elevacin, indicaciones sobre cmo llegar,mapas con estilos, anlisis y una amplia base de datos de ubicaciones.

  • 7/25/2019 Aplicacin de Android

    18/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    18

    Adems, gracias a su cobertura global y sus actualizaciones diarias permiteconceder un servicio en mejora constante permitiendo que las aplicacionesestn actualizadas en cualquier momento.

    4.2.4 RESTRest es tipo de arquitectura de desarrollo web que utiliza el estndar HTTP.Permite a servicios y aplicaciones ofrecer su contenido en forma de recursos,accesibles por cualquier cliente o dispositivo que utilice HTTP. Es mucho mssimple y ligero que SOAP y XML-RPC.

    5. Especificacin de requisitos

    Lo primero que se realiza siempre si se quiere obtener un resultadosatisfactorio en la aplicacin es tener una buena planificacin y especificacinen este apartado realizado por los dos integrantes del equipo se define lospasos que se han llevado acabo para tomarlos. Casi todos los pasos han sidoplanteados en comn, pero cada integrante ha redactado sus casos de usoindividuales que estarn definidos en la memoria complementaria del otrointegrante.

    5.1 Toma de requisitosEl primer paso para desarrollar el gestor de tareas y la aplicacin mvil es latoma de requisitos funcionales y no funcionales:

    Funcionales: Describen la interaccin entre el sistema y su ambienteindependientemente de su implementacin. El ambiente incluye alusuario y cualquier otro sistema externo que interacta con el sistema.

    No funcionales: Describen las restricciones y obligaciones que elsistema debe contener.

    Complementario a esto, se ha realizado un anlisis de las tecnologasexistentes para evaluar su funcionalidad y rendimiento, para tomar lasdecisiones de implementacin de este proyecto ms adecuadas.

    5.2 Requisitos funcionalesEn este apartado se describe la interaccin entre el sistema y su ambiente

    (usuario y cualquier sistema externo) independiente de su implementacin.

  • 7/25/2019 Aplicacin de Android

    19/118

    19

    5.2.1 ActoresLos actores son los que representan un conjunto de roles, que son jugados poruna persona, dispositivo u otros sistemas que interactan con la aplicacin. Eneste caso, el sistema contiene cuatro roles diferentes definidos a continuacin:

    Usuario no registrado:Este actor solo tiene acceso a registrarse,para despus poder pasar a ser un usuario registrado.

    Usuario registrado: Es el actor que tiene acceso a todas lasfuncionalidades de la aplicacin. Toda la aplicacin est orientada paradar servicios a este usuario con la idea de mantener todas sus tareaspendientes unidas y geo-localizadas para que sepa en cada momentoque tiene pendiente cerca de l.

    Servicio de autentificacin de Google Tasks: Permite alusuario conectarse a su lista de tareas contenida en Google Tasks parasincronizarlas con las que tendr en la aplicacin.

    Administrador del servidor: Actor encargado de gestionar ymantener el servidor.

    5.2.2 Persona

    El diseo de esta aplicacin es utilizable por la mayora de usuarios habitualesde dispositivos mviles, si bien es cierto que un gestor de tareas es unaherramienta usable por un amplio rango de usuarios, su uso habitual ycotidiano se enfoca entre personas de entre 16 y 65 aos. No se han hechoexcesivas distinciones en cuanto a sexo, religin o situacin econmica, puesse considera que por el formato de aplicacin no existen diferenciassignificativas.

    En cuanto a la orientacin hacia profesiones de los usuarios, s que se enfoca

    la balanza hacia gente que trabaja en empleos de amplia jornada laboral,estresantes y lo ms posible pertenecientes al sector servicios, por lo que se harealizado el diseo visual e interactivo pensando en la rapidez y facilidad deuso.

    Pensando en el estilo de vida estresante de los usuarios se ha diseado unsistema personalizable y no intrusivo de notificaciones para ayudar por motivosde cercana y cuenta atrs de plazos para una tarea. Dichas notificaciones sepueden configurar por tipo de alerta, prioridad de tareas, sonido, vibracin ycolor de led de parpadeo.

  • 7/25/2019 Aplicacin de Android

    20/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    20

    Para cubrir el mayor rango de usuarios se ha diseado e implementado unsistema de servidor y aplicacin multilenguaje con dos idiomas de serie:castellano e ingls. Con los que se cubre un gran porcentaje de la poblacin, yes ampliable.

    El usuario ejemplo o Persona a utilizar en el escenario siguiente es Paco, unvarn de 30 aos oficinista de una mediana empresa, casado y con un hijo. Acontinuacin se describe un escenario ejemplo de su interaccin con laaplicacin.

    5.2.3 Escenario

    El escenario representa un claro uso del sistema en trminos de una serie deinteracciones entre la aplicacin y el usuario. A continuacin se detalla elescenario:

    El usuario Paco, es una persona algo olvidadiza. Despus de desayunar cogesu mvil y hace a la aplicacin WhereIsMyTask, donde ya tiene su usuario ycontrasea guardados por haber entrado otras veces, por lo que pulsadirectamente iniciar sesin.

    Una vez dentro de la aplicacin, visualizando el mapa, pulsa el botn deagregar tarea y crea una indicando que tiene que comprar patatas con prioridadalta, pues su novia le ha indicado que las quiere para la cena. Como valores

    para esta tarea establece en el campo direccin unos de sus puntos de intersfavoritos (el Mercadona de la esquina) y la categora (de alimentacin). Trasguardar la tarea, vuelve a la pgina principal y comprueba que hay unmarcador rojo en la calle del Mercadona.

    Acto seguido pulsa el botn de sincronizar tareas, y tras acceder al listado detareas, comprueba que existe la tarea Comida de empresa a las 14:00, queproviene de Google Tasks. Al medio da, tras haber ido a la comida y gustarleel restaurante, accede a la aplicacin y en el gestor de puntos de intersagrega su nuevo restaurante favorito pulsando su ubicacin en el mapa.

    Por la tarde volviendo a casa, cansado de todo el da y olvidado del encargo desu novia, al pasar a cien metros del Mercadona de la esquina le salta unanotificacin de la aplicacin advirtindole de la tarea y cercana de dicho lugar,por lo que Paco ira a comprar patatas y tendr contenta a su novia.

    5.2.4 Casos de uso

  • 7/25/2019 Aplicacin de Android

    21/118

    21

    Los casos de uso son los encargados de la abstraccin que describe una clasede escenarios. A continuacin se detallaran los diferentes casos de uso delsistema:

    Ajustes del mapa

    Ilustracin 2 - Ajustes del mapa

    o Seleccionar tipo de actualizacin del GPS

  • 7/25/2019 Aplicacin de Android

    22/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    22

    Titulo: Seleccionar tipo de actualizacin del GPS

    Descripcin El usuario puede elegir el tipo de actualizacin que desee para elGPS. Tendr tres opciones por tiempo, distancia o modo automtico

    Actor Usuario registradoRelacionesPrecondicin GPS activoComentarios La opcin por tiempo como por distancia permitir al GPS refrescarse

    segn los parmetros que le indique el usuario. En el acasoautomtico se utilizara un algoritmo propio en base a posicionesanteriores del usuario, optimizando as el uso de la batera deldispositivo

    o Cambiar el tiempo de actualizacin del GPS

    Titulo: Cambiarla distancia de actualizacin del GPS

    Descripcin El usuario puede elegir cada cuanta tiempo quiere que se actualice elGPS

    Actor Usuario registradoRelacionesPrecondicin GPS activo y la opcin de tipo de actualizacin por tiempo tiene que

    estar seleccionada

    Comentarios Opciones: 30 s, 1 min, 2 min, 5 min

    o Modificar la distancia de actualizacin del GPS

    Titulo: Modificar la distancia de actualizacin del GPS

    Descripcin El usuario puede elegir cada cuanta distancia quiere que se actualiceel GPS

    Actor Usuario registradoRelacionesPrecondicin GPS activo y la opcin de tipo de actualizacin por distancia tiene que

    estar seleccionada

    Comentarios Opciones: 100 m, 200 m, 300 m, 500 m, 1 Km, 5 Km

    o Escoger el nmero de tareas a visualizar

  • 7/25/2019 Aplicacin de Android

    23/118

    23

    Ttulo: Escoger el nmero de tareas a visualizar

    Descripcin El usuario puede escoger el nmero de tareas a visualizar en el mapa

    Actor Usuario registrado

    RelacionesPrecondicinComentarios Opciones: 1 tarea, 2 tareas, 5 tareas, 10 tareas, Todas las tareas

    o Elegir nmero de puntos de inters a visualizar por cada tarea

    Ttulo: Elegir nmero de puntos de inters a visualizar por cada tarea

    Descripcin El usuario puede elegir el nmero de puntos de inters por cada tarea

    que quiere visualizar en el mapa

    Actor Usuario registradoRelacionesPrecondicinComentarios Opciones: 0 POI, 1 POI, 2 POI, 3 POI, 4 POI, 5 POI

    o Destacar tarea seleccionada

    Ttulo: Destacar tarea seleccionada

    Descripcin El usuario puede decidir si quiere que se destaque con un colordiferente la tarea y sus puntos de inters correspondientes en el mapa

    Actor Usuario registradoRelacionesPrecondicinComentarios Cuando se selecciona esta opcin la tarea seleccionada ser

    representada de color morado y sus puntos de inters de colorturquesa. A diferencia del resto que estn en color rojo, amarillo o

    verde dependiendo de la prioridad que tengan asignada

    Ajustes de las notificaciones

  • 7/25/2019 Aplicacin de Android

    24/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    24

    Ilustracin 3 - Ajustes de las notificaciones

  • 7/25/2019 Aplicacin de Android

    25/118

    25

    o Seleccionar tipo de notificaciones

    Ttulo: Seleccionar tipo de notificaciones

    Descripcin El usuario puede seleccionar el tipo de notificaciones que desea quese le notifiquen

    Actor Usuario registradoRelacionesPrecondicinComentarios Existen tres opciones aunque todas ellas son por prioridad se pueden

    combinar por tiempo o cercana. La ltima opcin es elegir que las dostipos de notificacin estn activas a la vez

    o Elegir la prioridad de la tarea a notificar

    Ttulo: Elegir la prioridad de la tarea a notificar

    Descripcin El usuario puede elegir qu tipo de tareas quieren que le notifiquen enfuncin de su prioridad

    Actor Usuario registrado

    Relaciones

    PrecondicinComentarios Opciones: Alta solo se notificaran las tareas con esta prioridad, Alta

    Media se notificaran todas las tareas excepto las de prioridad baja yTodas se notificaran todas las tarea

    o Escoger la distancia de las tareas a notificar

    Titulo: Escoger la distancia de las tareas a notificar

    Descripcin El usuario puede escoger la distancia de las tareas que quiere que sele notifiquen

    Actor Usuario registradoRelacionesPrecondicin Tener seleccionada la opcin de tipo de notificacin de distancia o

    ambasComentarios Opciones: 100 m, 200 m, 300 m, 500 m, 1 Km, 5 Km

    o Indicar el tiempo de notificacin para finalizar la tarea

  • 7/25/2019 Aplicacin de Android

    26/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    26

    Titulo: Indicar el tiempo de notificacin para finalizar la tarea

    Descripcin El usuario puede indicar el tiempo de notificacin que quiere que se le

    notifique la tarea, es decir, cuanto tiempo antes de que finalice la tareaquiere que se le avise

    Actor Usuario registradoRelacionesPrecondicin Tener seleccionada la opcin de tipo de notificacin de tiempo o

    ambasComentarios Opciones: 30 min, 1 hora, 2 horas, 6 horas, 1 da, 2 dias

    o Modificar vibracin

    Titulo: Modificar vibracin

    Descripcin El usuario puede elegir si quiere que el mvil vibre o no cuando recibauna notificacin

    Actor Usuario registradoRelacionesPrecondicin Tener seleccionada la opcin de tipo de notificacin de tiempo,

    distancia o ambas

    Comentarios

    o Cambiar sonido

    Titulo: Cambiar el sonido

    Descripcin El usuario puede seleccionar la meloda de sonido que sonara cuandole llegue una notificacin

    Actor Usuario registradoRelacionesPrecondicin Tener seleccionada la opcin de tipo de notificacin de tiempo,

    distancia o ambasComentarios

    o Variar el color del led

  • 7/25/2019 Aplicacin de Android

    27/118

    27

    Titulo: Variar el color del led

    Descripcin El usuario puede personalizar el color del led que se mostrara cuando

    reciba una notificacinActor Usuario registradoRelacionesPrecondicin Tener seleccionada la opcin de tipo de notificacin de tiempo,

    distancia o ambasComentarios

    Gestin de puntos de inters

    Ilustracin 4 - Gestin de puntos de inters

    o Aadir un nuevo punto de inters

    Titulo: Aadir un nuevo punto de inters

    Descripcin El usuario tiene la opcin de poder crear sus propios puntos de inters

    Actor Usuario registradoRelacionesPrecondicinComentarios Cuando se vaya a crear el punto de inters se tiene la opcin de

    poder elegir a que categora pertenece entre las ofertadas en la

    aplicacin

  • 7/25/2019 Aplicacin de Android

    28/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    28

    o Modificar el punto de inters seleccionado

    Ttulo: Modificar el punto de inters seleccionado

    Descripcin El usuario puede modificar el punto de inters que seleccioneActor Usuario registradoRelacionesPrecondicin Que el punto de inters haya sido creado previamenteComentarios Se puede modificar cualquier parmetro

    o Eliminar el punto de inters seleccionado

    Ttulo: Eliminar el punto de inters seleccionadoDescripcin El usuario puede elegir eliminar el punto de inters que tenga

    seleccionado

    Actor Usuario registradoRelacionesPrecondicin Que el punto de inters haya sido creado previamenteComentarios

    Gestin de tareas

  • 7/25/2019 Aplicacin de Android

    29/118

    29

    Ilustracin 5 - Gestin de tareas

    o Aadir una nueva tarea

  • 7/25/2019 Aplicacin de Android

    30/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    30

    Titulo: Aadir una nueva tarea

    Descripcin El usuario tiene la opcin de poder crear su propia tarea

    Actor Usuario registradoRelaciones Sincronizacin con el servidorPrecondicinComentarios Cuando se vaya a crear la tarea se tiene la opcin de poder elegir a

    que categora pertenece entre las ofertadas en la aplicacin, laprioridad que debe de tener y si se le quiere asociar un punto deinters como localizacin favorita. Adems, en cuanto la tarea seacreada automticamente ser sincronizada con el servidor

    o Modificar la tarea seleccionada

    Titulo: Modificar la tarea seleccionada

    Descripcin El usuario puede modificar la tarea que haya seleccionado

    Actor Usuario registradoRelaciones Sincronizacin con el servidorPrecondicin La tarea tiene que ha ver sido creada anteriormenteComentarios El usuario puede modificar cualquier parmetro. Una vez, el usuario

    haya terminado de modificar la tarea ser sincronizada con el servidor

    o Eliminar la tarea seleccionada

    Titulo: Eliminar la tarea seleccionadaDescripcin El usuario puede eliminar la tarea que haya seleccionado

    Actor Usuario registradoRelaciones Sincronizacin con el servidorPrecondicin La tarea tiene que ha ver sido creada anteriormente

    Comentarios En cuanto el usuario elimine la tarea esta ser eliminada del servidor,si la tarea pertenece al gestor de Google Tasks ser marcada comocompletada

    o Buscar tareas

  • 7/25/2019 Aplicacin de Android

    31/118

    31

    Titulo: Buscar tareasDescripcin El usuario tiene la opcin de buscar tareas por ttulo o descripcin

    Actor Usuario registradoRelaciones Con el servidorPrecondicin Las tareas tienen que estar creadas en la aplicacin, en caso de que

    la palabra introducida no tenga coincidencias se avisara al usuario conun mensaje

    Comentarios El usuario podr indicar una palabra completa o simplemente letrasque el servidor se encargara de buscar ese trozo de palabra entre losttulos y las descripciones de todas las tareas. Esta funcionalidadpuede ser seleccionada desde el mapa como desde la gestin detareas

    o Geo-localizar tarea seleccionada

    Ttulo: Geo-localizar tarea seleccionadaDescripcin El usuario tiene la opcin de geo-localizar una tarea, es decir, cuando

    el usuario seleccione esta opcin la tarea ser mostrada en el mapaen su localizacin exacta

    Actor Usuario registradoRelaciones

    Precondicin La tarea tiene que ha ver sido creada anteriormenteComentarios Si la opcin de ajustes de tarea seleccionada se visualice esta activa,en cuanto se habr el mapa y se muestre la tarea su localizacinprincipal lo har de color morado y las de sus puntos de inters decolor turquesa. En caso, contrario la tarea como sus puntos de intersestarn pintados en el color de la prioridad rojo (alta), amarillo(media), verde (baja). Esta funcionalidad puede ser seleccionadadesde el mapa como desde la gestin de tareas

    o Compartir tarea seleccionada

    Titulo: Compartir tarea seleccionadaDescripcin El usuario tiene la opcin de poder compartir la tarea a travs de sus

    aplicaciones de comunicacin de su dispositivo

    Actor Usuario registradoRelaciones Con todas las aplicacin de comunicacin de su dispositivoPrecondicin La tarea tiene que ha ver sido creada anteriormenteComentarios

    o Sincronizar tareas

  • 7/25/2019 Aplicacin de Android

    32/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    32

    Titulo: Compartir tarea seleccionadaDescripcin Si el usuario selecciona esta funcin, todas sus tareas sern con el

    servidor

    Actor Usuario registradoRelaciones Sincronizacin con el servidorPrecondicin La tarea tiene que ha ver sido creada anteriormenteComentarios Esta funcionalidad puede ser seleccionada desde el mapa como

    desde la gestin de tareas

    o Bsqueda de localizacin inteligente

    Titulo: Bsqueda de localizacin inteligenteDescripcin Cuando el usuario no aada una direccin o localizacin de la tarea,el sistema automticamente le ofrecer al usuario la direccin mscercana que haga referencia al ttulo o descripcin de la tarea

    Actor Usuario registradoRelaciones Sincronizacin con el servidorPrecondicinComentarios Esta funcionalidad es posible gracias a la conexin con la API de

    Google Places

    Mapa

    Ilustracin 6 - Mapa

    o Visualizacin de tareas

  • 7/25/2019 Aplicacin de Android

    33/118

    33

    Titulo: Visualizacin de tareasDescripcin Cuando el usuario abre el mapa, en este podr visualizar todas las

    tareas

    Actor Usuario registradoRelacionesPrecondicin Las tareas tienen que estar creadas anteriormenteComentarios Las tareas visualizadas se distinguen por su prioridad las que tengan

    prioridad alta estarn marcadas de color rojo, las de media de coloramarillo y las bajas de color verde. En el caso de que se hayaseleccionado una tarea desde el gestor de tareas esta aparecer decolor morado su posicin principal y de turquesa sus puntos de inters

    o Seleccionar tarea

    Titulo: Seleccionar tareaDescripcin Si el usuario pulsa sobre una tarea esta le mostrara su titulo

    Actor Usuario registradoRelacionesPrecondicin La tarea tiene que existirComentarios

    o Ir a tu posicin

    Titulo: Ir a tu posicinDescripcin Si el usuario pulsa sobre esta opcin el mapa le llevara a su posicin

    actual

    Actor Usuario registradoRelacionesPrecondicin El GPS tiene que estar activo

    Comentarios

  • 7/25/2019 Aplicacin de Android

    34/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    34

    o Trazar la ruta hacia la tarea

    Titulo: Trazar la ruta hacia la tareaDescripcin Cuando el usuario pulse esta funcionalidad, se le trazara una ruta

    entre su posicin y la tarea seleccionada

    Actor Usuario registradoRelaciones Google MapsPrecondicin La tarea tiene que existirComentarios Se le mostrara al usuario una seleccin de tareas donde tendr que

    seleccionar la tarea a la que desea ir

    5.3 Requisitos no funcionales

    5.3.1 Usabilidad

    La navegacin debe ser gil, correcta e intuitiva, y tener una funcionalidadcorrectamente definida. Los elementos importantes deben quedar biendefinidos, siguiendo los patrones de diseo habituales para temas de color,tamao y fuentes. El diseo de los iconos debe ser claro e intuitivo, y la

    disposicin de los componentes debe ser consistente en todas las pantallas.5.3.2 Apariencia

    Las pantallas y transacciones entre ellas deben tener el mismo patrn dediseo, igual que los elementos explicados en el prrafo anterior deben deresultar simples y agradables.

    5.3.3 Adaptacin al dispositivo

    Todos los elementos grficos deben de ser adaptables a los dispositivos donde

    vayan a ser visualizados. Designando los tamaos de objetos y textos encantidades proporcionales, y ajustables a todas las densidades de pantalla delmercado.

    5.3.4 Almacenamiento y persistencia

    El ciclo de vida de las actividades debe ser gestionado correctamente, y losajustes de configuracin tienen que estar almacenados de forma correcta. Lagestin de la base de datos debe tratarse de forma eficaz y segura,gestionando las diferentes incidencias que ocurran.

  • 7/25/2019 Aplicacin de Android

    35/118

    35

    5.3.5 Robustez

    La aplicacin no debe finalizar de forma abrupta o inesperada, ni deben de

    saltar excepciones sin manejar. Los mensajes de error han de ser legibles ymostrar soluciones orientadas al usuario, si es posible.

    5.3.6 Mantenimiento

    El cdigo debe de ser claro y mantenible para modificaciones y actualizacionesfuturas. Se debe establecer todos los parmetros posibles en constantes parasu correcto tratamiento y evitar errores.

    5.3.7 Documentacin

    Se debe realizar una documentacin precisa y usable que de soporte almantenimiento del cdigo. Esto incluye, al menos, los diseos de las bases dedatos, los javadoc y phpdoc.

    5.3.8 Otros requisitos

    El consumo de la batera debe intentar ser lo ms ptimo posible. La precisindel GPS debe ser lo ms ajustada posible. El sistema de notificaciones no debeser intrusivo. La aplicacin y el mapa tienen que ser navegables con fluidez. Elconsumo de datos de la aplicacin debe minimizarse lo mximo.

  • 7/25/2019 Aplicacin de Android

    36/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    36

    6. Planificacin

    En base a la toma de requisitos realizada por los dos integrantes del grupo enel apartado anterior se han definido las funcionalidades que contiene laaplicacin. Adems, se ha utilizado una tcnica llamada MoSCoW parapriorizar los requisitos que deber contener la aplicacin. Est basado en loscasos de esta memoria, as como la de mi compaero, que cumplimentan todoel sistema. Como ltimo punto de este apartado, se puede visualizar elDiagrama de Gantt el cual indica el proceso de tiempo requerido y el dedicadoen cada caso para cumplir los requisitos definidos.

    6.1 Definicin de las funcionalidades

    Ajustes del mapa: Contiene varias opciones que permiten al usuariopersonalizar el mapa a su gusto, entre ellas se puede destacar la eleccindel algoritmo para la actualizacin del GPS, la eleccin del nmero detareas a visualizar como el nmero de puntos de inters por cada tarea y siquiere que se destaque la tarea seleccionada con colores diferentes.

    Ajustes de las notificaciones: Permite al usuario elegir el tipo denotificaciones que quiere recibir, segn el tipo de notificacin que

    seleccione tendr la opcin de cambiar sus parmetros. Acceso a la aplicacin: Incluye todas las acciones relacionadas con

    el registro e iniciar sesin en la aplicacin.

    Sincronizacin con Google Task: Funcionalidad que permite alusuario iniciar y autorizar la sincronizacin con Google Tasks dando accesoal servidor a la lista que el usuario elija para sincronizar. En el caso de queel usuario quiera que el servidor suspenda la sincronizacin solo tendrque desconectarse de Google Tasks. A parte, existe la opcin de que el

    usuario pueda sincronizar manualmente sus tareas.

    Gestin de puntos de inters: Proporciona al usuario la posibilidadde crear, modificar y eliminar los puntos de inters favoritos del usuario,para despus poder seleccionarlos como localizacin en la creacin de sustareas.

    Gestin de tareas: Posibilita al usuario la creacin, modificacin yeliminacin de sus tareas. Tambin, tiene las opciones de compartir,visualizar tarea en el mapa y buscar tareas. Cada tarea esta categorizada y

    tiene una prioridad asignada, estos dos parmetros son elegidos al gustodel usuario en funcin de las opciones que proporciona la aplicacin. A

  • 7/25/2019 Aplicacin de Android

    37/118

    37

    parte, la localizacin de la tarea puede ser cualquiera que elija el usuario ola de cualquier punto de inters que se haya creado anteriormente.

    Mapa: Es la pantalla principal de la aplicacin, en ella se muestran todaslas tareas del usuario con las opciones que haya marcado en ajustes delmapa. Cada tarea y sus puntos de inters si tiene asignados por categorasern pintados del color de la prioridad de la tarea, en tal caso las tareascon prioridad alta sern pintadas de color rojo, las tareas con prioridadmedia de color amarillo y las de prioridad baja de color verde. En el caso deque la opcin de la tarea seleccionada se muestre cuando se le invoquedesde gestin de tareas esta cambiara su localizacin principal a morado ysus puntos de inters si tiene a turquesa. Adems, segn el tipo dealgoritmo que el usuario haya seleccionado en ajustes del mapa lasincronizacin del mapa ser automtica, por distancia o por tiempo. En

    cualquiera de los casos, el usuario en funcin de lo que haya elegidocuando su posicin cambie vera como en la aplicacin se actualizarn lastareas que estn a su alrededor. A parte, el usuario podr seleccionar elbotn que le lleva a su posicin, permitindole navegar por cualquier sitiodel mapa y poder volver a donde esta l de forma rpida y eficaz.

    6.2 MoSCoWMoSCoW es una tcnica para asignar diferentes prioridades a las

    funcionalidades de la aplicacin. Esta tcnica permite que el desarrollo de laaplicacin sea ms fcil y eficaz, gracias a dar prioridades a las diferentesfuncionalidades el programador puede orientarse de cules son las msimportantes y que ms relevancia tienen para que la aplicacin sea funcional.Esta tcnica se ha basado en los requisitos funcionales explicados en elapartado anterior. A continuacin, se presenta una gua que le ayudara aentender el significado de cada carta:

    M MUST (Debe de tener): Define los requisitos fundamentalespara el xito del proyecto.

    S SHOULD (Debera tener): Representa un punto de altaprioridad que se debe incluir en la solucin si es posible. Esto es amenudo un requisito crtico pero que puede estar satisfecho de otrasmaneras si es estrictamente necesario.

    C COULD (Pueden tener): Describe un requisito que seconsidera deseable, pero no necesario. Este ser incluido si el tiempo ylos recursos lo permiten.

  • 7/25/2019 Aplicacin de Android

    38/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    38

    W - WONT (No tendr por el momento): Detalla losrequisitos que pueden ser pospuestos, pero que son buenos y sepodran incluir en el futuro.

    A continuacin, se detalla la prioridad de los requisitos de la aplicacin enfuncin a los casos de uso definidos en el apartado de Especificacin derequisitos.

    Tabla 1 - MoSCoW

    Casos uso Prioridad

    Acceso a la aplicacin

    Registro Must

    Iniciar sesin Must

    Ajustes del mapa

    Seleccionar tipo de actualizacin del GPS Should

    Cambiar el tiempo de actualizacin del GPS Could

    Modificar la distancia de actualizacin del GPS Could

    Escoger el nmero de tareas a visualizar Should

    Elegir nmero de puntos de inters a visualizar por cadatarea

    Should

    Destacar tarea seleccionada Must

    Ajustes de las notificaciones

    Seleccionar tipo de notificaciones Must

    Elegir la prioridad de la tarea a notificar Should

    Escoger la distancia de las tareas a notificar Should

    Indicar el tiempo de notificacin para finalizar la tarea Should

    Modificar vibracin de la notificacin Wont

    Cambiar el sonido de la notificacin Wont

    Variar el color del led Wont

  • 7/25/2019 Aplicacin de Android

    39/118

    39

    Sincronizacin con Google Tasks

    Iniciar session con Google Tasks Must

    Elegir la lista de tareas a descargar Must

    Sincronizar con Google Tasks manualmente Could

    Desconectar de Google Tasks Must

    Gestin de puntos de inters

    Aadir un nuevo punto de inters Must

    Modificar el punto de inters seleccionado Should

    Eliminar el punto de inters seleccionado Should

    Gestin de tareas

    Aadir una nueva tarea Must

    Modificar la tarea seleccionada Must

    Eliminar la tarea seleccionada Must

    Buscar tareas Could

    Geo-localizar tarea seleccionada Must Compartir tarea seleccionada Could

    Sincronizar tareas Must

    Busqueda de localizacin inteligente Could

    Mapa

    Visualizacin de tareas Must

    Seleccionar tarea Could

    Ir a tu posicin Should

    Trazar ruta hacia la tarea Wont

    6.3 Esquema cronolgico

    Como resultado de todo el anlisis que se ha llevado a cabo en los apartadosanteriores y en la memoria complementaria de mi compaero, se han

  • 7/25/2019 Aplicacin de Android

    40/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    40

    planificado unas fases y el tiempo que llevaran realizarlas. Para representareste esquema se ha utilizado el Diagrama de Gantt, el cual es unarepresentacin grfica y simultnea de la planificacin como de laprogramacin del proyecto. Esto permite que se visualice de forma fcil yrpida toda la planificacin y programacin de las fases de un solo vistazo.

    En la primera Ilustracin se puede ver las diferentes fases que han constituidoel proyecto, a quien estn asignadas, el tanto porciento realizado y la fecha deinicio y fin.

    Ilustracin 7 - Planificacin 1

    A continuacin, se mostraran dos Ilustraciones que representan el tiempo queestaba planificado realizarlas.

    Ilustracin 8 - Planificacin 2

  • 7/25/2019 Aplicacin de Android

    41/118

    41

    Ilustracin 9 - Planificacin 3

    7. Diseo

    En este apartado se describe el modelo de datos del sistema. La interfazgrfica se encuentra definida en el documento complementario de micompaero.

    7.1 Modelo de datos

    El modelo de datos que contiene la aplicacin y el servidor. Primeroexplicaremos las semejanzas y discrepancias que hay entre los objetos y susparmetros:

    Task:Objeto que contiene toda la informacin de las tareas, tales como elttulo, la direccin, sus coordenadas de localizacin, la fecha cuando semodific por ltima vez, la fecha y hora a la que se tiene que realizar, unadescripcin y la prioridad que tiene asignada. Aqu se almacenaran todas lastareas de usuario ya se han creadas desde la propia aplicacin o provengande Google Task. En el caso del servidor este objeto contiene un dato ms que

    hace referencia a la id que contiene en su lista de tareas de Google Task.

    Category:Objeto compuesto por los datos de cada categora, entre ellos sepuede encontrar su nombre, el id a la categora que pertenece en el caso deque sea subcategora, la imagen que tiene asociada y la ltima fecha que semodific. En este objeto se almacenan todas las categoras necesarias paraque el usuario pueda categorizar sus tareas como sus puntos de inters.

    POI:Objeto donde se guardan los datos de todos los puntos de inters, est

    formado por un ttulo, las coordenadas de su posicin, la direccin, su ltimafecha de modificacin y su descripcin. En el caso de la aplicacin se

  • 7/25/2019 Aplicacin de Android

    42/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    42

    almacenaran los puntos de inters genricos que sern descargados desservidor como los creados por el usuario. En cambio, en el servidor soloestarn contenidos los datos de los puntos de inters genricos.

    User: Objeto formado por los parmetros del usuario los cuales son elnombre, el correo electrnico, su password_hash que es su contraseacifrada para mantener la seguridad de su cuenta, su api_key que lo identificainequvocamente en servidor, created_at que es la fecha de registro, suscoordenadas de localizacin iniciales y la imagen de su perfil.

    User_googletask_list:Objeto donde se almacenan los datos de las listasde tareas que estn contenidas en Google Tasks, entre sus parmetros seencuentran el identificador al usuario a quien pertenece la lista, el nombre dela lista, el identificador de la lista en Google Tasks, access_tokenperteneciente al usuario para poder acceder a Google Tasks, el refresh_token que permite mantener al usuario conectado a Google Tasks sin pedirlepermisos cada vez, el refresh_frequency es el minuto cuando se va lanzar elcrontab que sincronizar las tareas automticamente y isUploadable es elcampo que indica al servidor si esta tarea tiene que ser subida a GoogleTasks. Este objeto solo est en el servidor disponible ya que es el encargadode almacenar todos los datos correspondientes con la sincronizacin deGoogle Tasks.

    A continuacin, se van a mostrar la entidad de relacin de cada una, con losnombres de los parmetros explicados anteriormente.

    1. Servidor

    Ilustracin 10 Servidor

  • 7/25/2019 Aplicacin de Android

    43/118

    43

    2. Aplicacin

    Ilustracin 11 Aplicacin

    8. Implementacin

    Este apartado va exponer la implementacin que ha supuesto la creacin de laaplicacin. El desarrollo del servidor se especifica en la memoria de micompaero. En los dos documentos se van a definir las clases y mtodosprincipales que hacen posible la conexin entre ambos, la geo-localizacin delas tareas en la aplicacin, la sincronizacin con Google Tasks, lasnotificaciones al usuario y el resto de funcionalidades que contiene la

    aplicacin.

    8.1 Aplicacin

    En este apartado se dispone a explicar la organizacin de la aplicacin mvil.Se ha diseado e implementando siguiendo un modelo estructurado de trescapas que separan la persistencia, la lgica y las interfaces, siguiendo unaarquitectura orientada a objetos. Se ha diseado as pensando en el

    mantenimiento y futuras ampliaciones modulares de este software.La aplicacin esta implementada por los dos integrantes del grupo pero estamemoria solo se define la mi parte. En la siguiente Ilustracin se puedeobservar tal estructuracin, como se puede visualizar el proyecto tiene dospartes: la principal donde se implementan todas las clases que nosproporcionan las funcionalidades descritas, ms el paquete res donde sealmacena toda la capa visual, de idiomas, preferencias,. Esta ltima ha sidodiseada completamente por el integrante del grupo Emanuel Alloza lvarez, laimplementacin ha sido en conjunto pero la gran mayora es aportacin de

    Jessica Carpintero Macin:

  • 7/25/2019 Aplicacin de Android

    44/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    44

    Ilustracin 12 - Estructura

    Una vez vista la estructuracin en la Ilustracin se va a proceder a explicar los

    diferentes paquetes que se visualizan en ella:

  • 7/25/2019 Aplicacin de Android

    45/118

    45

    8.1.1 Adapters: Paquete realizado para poder personalizar los despegables de losobjetos POI y Category, las listas que contienen los contenedores de laspantallas de gestin de tarea y punto de inters, y el men principal donde setiene acceso a todas las pantallas. En la siguiente ilustracin se muestra un

    ejemplo de cmo se trabaja la clase encargada de visualizar correctamente losdespegables.

    Ilustracin 13 Adaptador del despegable de la categora

    En la siguiente Ilustracin se muestra el ejemplo de la lista de los gestores. Seaade el ejemplo de tarea porque es el ms completo.

  • 7/25/2019 Aplicacin de Android

    46/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    46

    Ilustracin 14 Adaptador de la lista de tareas

    En la ltima Ilustracin se contempla la clase que realiza la personalizacin delmen permitiendo aadirle imgenes y texto diferentes a los nombres de laspantallas a seleccionar.

  • 7/25/2019 Aplicacin de Android

    47/118

    47

    Ilustracin 15 Adaptador del men principal

  • 7/25/2019 Aplicacin de Android

    48/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    48

    8.1.2 Fragments: Carpeta donde se ha almacenado la implementacin de tres delas cuatro clases que componen la aplicacin en el men principal, la cuarta hasido implementada y explicada en la memoria de mi compaero. Cada clase esla encargada de pintar y realizar todas las acciones necesarias para poder

    mostrar por al usuario las pantallas con sus funcionalidades.

    8.1.2.1 MapFragment:es la encargada de pintar el mapa en la pantalla con todas lastareas y sus puntos de inters, para realizar esta funcionalidad se apoya en laclase MapManager que ser la que de verdad pinte los puntos en el mapa peroser explicada ms adelante. En la Ilustracin siguiente puede observar laimplantacin del mtodo init() que es el encargado de inicializar y guardar losdatos principales de la pantalla.

    Ilustracin 16Ilustracin 16 Inicializacin de los parmetros del mapa

  • 7/25/2019 Aplicacin de Android

    49/118

    49

    En la Ilustracin de abajo se puede ver el mtodo que en todo momento estpendiente del cambio de posicin del usuario que, en funcin de los parmetroselegidos en ajustes, se adece al algoritmo seleccionado.

    Ilustracin 17 - Repintar en mapa

    En la prxima Ilustracin se puede ver el mtodo que avisara al usuario cuandoes requerido el uso del GPS. Que ira en funcin del algoritmo arriba explicado.

    Ilustracin 18 - Alerta apagado el GPS

  • 7/25/2019 Aplicacin de Android

    50/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    50

    Y en la ltima Ilustracin se puede observar el mtodo encargado de cargar laspreferencias de ajuste del usuario necesarias para el uso de los mtodosexplicados arriba.

    Ilustracin 19 - Carga de preferencias del usuario

    8.1.2.2 NavigationDrawerFragment: Clase encargada de gestionar el funcionamientodel men principal de la aplicacin. En la Ilustracin de abajo se puedevisualizar como se cargan los diferentes nombres de las pantallas.

    Ilustracin 20 - Inicializacin y carga de los parmetros del men principal

  • 7/25/2019 Aplicacin de Android

    51/118

    51

    8.1.2.3 PoiFragment: Clase encargada de visualizar la lista de punto de inters delusuario. En la ilustracin siguiente se puede observar cmo se recogen losdatos y se introducen al objeto que luego los mostrara por pantalla.

    Ilustracin 21 - Inicializacin de la pantalla de los puntos de inters

  • 7/25/2019 Aplicacin de Android

    52/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    52

    Tambin, es la encargada abrir la actividad que permitir visualizar y modificaral usuario toda la informacin que contiene el punto de inters. En la Ilustracinse puede ver como se ha implementado esta funcionalidad.

    Ilustracin 22 - Seleccionar un punto de inters

  • 7/25/2019 Aplicacin de Android

    53/118

    53

    8.1.2.4 TaskFragment: Aqu se gestiona la visualizacin de las tareas, esta clasemostrara una lista de las tareas. En la Ilustracin se puede observar cmo serealiza la carga de los datos recogiendo los valores que proceden de la claseprincipal o de la base de datos en caso de no recibirlos. Adems, se puede ver

    como se carga las tareas en la lista que los mostrara por pantalla.

    Ilustracin 23 - inicializar y cargar las tareas en la pantalla

  • 7/25/2019 Aplicacin de Android

    54/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    54

    A parte el usuario podr seleccionar cualquiera de ellas para que se le muestreen una actividad todos sus datos. En la Ilustracin se ve los mtodos quehacen posibles esta funcionalidad.

    Ilustracin 24 - Seleccin de una tarea

    8.1.2.5 SettingsFragment:Clase encargada de gestionar las preferencias del usuariode forma automtica. En la Ilustracin se visualizara el constructor que se leasigna a la pantalla.

    Ilustracin 25 - Ajustes

  • 7/25/2019 Aplicacin de Android

    55/118

    55

    8.1.3 Logic:Paquete donde se encuentran todos los objetos de la aplicacin.

    8.1.3.1 CategoryVO: Objeto que contendr una categora, dentro de l se almacenaranlos valores de id categora, nombre, el id del padre, la imagen que corresponda

    a la categora y su fecha de ltima modificacin. En la Ilustracin se puedenvisualizar estos parmetros con su constructor.

    Ilustracin 26 - Atributos y constructor de categoras

  • 7/25/2019 Aplicacin de Android

    56/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    56

    8.1.3.2 PoiVO: Objeto que almacenara los parmetros de un punto de inters. Unejemplo de alguno de sus parmetros son su id, titulo, descripcin, direccin,localizacin, etc. En la Ilustracin se puede observar el resto de campos.

    Ilustracin 27 - Atributos de POI

  • 7/25/2019 Aplicacin de Android

    57/118

    57

    En la siguiente Ilustracin se puede divisar sus constructores en este casocontiene dos el que le pasas todos los parmetros y el que nos obliga aimplementar la clase Parceable necesaria para poder pasear los datos y poderpasarlos entre clases a travs del Bundle.

  • 7/25/2019 Aplicacin de Android

    58/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    58

    Adems del constructor especial implementar la clase Parceable es necesariosobrecargar los mtodos que se visualizan en la siguiente Ilustracin.

    Ilustracin 29 - Escritura del parceable

  • 7/25/2019 Aplicacin de Android

    59/118

    59

    A parte, esta clase implementa la clase Comparable necesaria para comparardos puntos de inters que se utilizara en otro mtodo que se explicara cuandose llegue a su clase principal. En la Ilustracin se muestra como se hace lacomparacin.

    8.1.3.3 TaskVO: Objeto encargado de almacenar la informacin de una tarea. Algunosde los parmetros a destacar son el id del servidor que lo obtendr cuando la

    tarea sea subida al servidor para tener la relacin entre las dos tablas y suprioridad que en funcin de ella es como se muestra en el mapa. En laIlustracin siguiente se mostrara el resto de parmetros.

    Ilustracin 30 - Comparacin de puntos de inters

  • 7/25/2019 Aplicacin de Android

    60/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    60

    Como es el caso anterior tambin contiene dos constructores el genrico paracrear el objeto y el necesario por implementar la clase Parceable. En laIlustracin se pueden visualizar.

    Ilustracin 31 - Atributos tarea

  • 7/25/2019 Aplicacin de Android

    61/118

    61

    Ilustracin 32 Constructores tareas

  • 7/25/2019 Aplicacin de Android

    62/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    62

    Adems del constructor especial implementar la clase Parceable es necesariosobrecargar los mtodos que se visualizan en la siguiente Ilustracin.

    Ilustracin 33 - Paseable de tareas

  • 7/25/2019 Aplicacin de Android

    63/118

    63

    8.1.3.4 UserVO: Objeto donde se almacenan todos los datos del usuario. De losparmetros ms destacables son el email necesario para identificar al usuario ysu apiKey que es el parmetro de seguridad para poder acceder a su cuentasin que nadie pueda averiguar sus datos. El resto de parmetros se visualizan

    en la siguiente Ilustracin.

    Ilustracin 34 -Atributos usuario

  • 7/25/2019 Aplicacin de Android

    64/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    64

    Adems, en la Ilustracin siguiente se muestra su constructor encargado deinstanciar todos sus parmetros con los datos que le proporcionan.

    8.1.4 Maps: Paquete desarrollado por Jessica Carpintero Macin donde seencuentra la clase encargada de gestionar el mapa.

    8.1.4.1 MapManager: Como su nombre indica es la clase que gestiona el mapa, es laque se ocupa de mostrar las tareas con sus respectivos puntos de inters enfuncin de los parmetros que ha elegido el usuario en ajustes. A parte,tambin es la que recoge la posicin del usuario. A continuacin se mostraranlas respectivas Ilustraciones de los mtodos que se encargan de gestionar lasfuncionalidades mencionadas antes.

    Primero de todo se visualizara el mtodo de obtener la posicin actual delusuario usado en MapFragment para poder pintarle su localizacin en el mapa.El mtodo se encarga de seleccionar el mejor proveedor que haya disponible yobtener la posicin del usuario, en caso de no encontrarla se ha introducidouna localizacin fija en este caso se ha elegido Valencia capital por ser unaaplicacin para esta ciudad.

    Ilustracin 35 - Constructor usuario

  • 7/25/2019 Aplicacin de Android

    65/118

    65

    Ilustracin 36 - Obtener posicin del usuario

    Despus en las siguientes Ilustraciones se puede ver los mtodos utilizadospara visualizar las tareas y sus puntos de inters. Que sern pintados enfuncin de la prioridad, el nmero de tareas y puntos de inters que usuario hayseleccionado en ajustes. El primer mtodo que se puede ver es el encargadode pintar todas las tareas en el mapa, en funcin de si hay una tareaseleccionada. En el caso de que haya una tarea seleccionada, esta se lapintara a travs de otro mtodo que se explicara ms adelante. En el otro casotodas las tareas y sus puntos de inters sern pintadas en base a su prioridad.

  • 7/25/2019 Aplicacin de Android

    66/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    66

    Ilustracin 37 - Aadir todas las tareas

    En la Ilustracin se puede visualizar los mtodos mencionados en el prrafoanterior que pintaran las tareas en funcin de su prioridad. En el caso genricose pintaran de rojo para las de tareas de alta prioridad, amarillo para las tareasmedias y verde para las de baja esto se puede observar en el segundo mtodode la Ilustracin. A parte tenemos el mtodo que se encargara de pintar la tareay los puntos de inters de la tarea que haya seleccionado el usuario en elgestor de tareas que ser pintada de color morado a la localizacin principal dela tarea y de color turquesa a sus puntos de inters, adems pintara tambin elresto de tareas con el color que le corresponda a su prioridad llamando al

    segundo mtodo.

  • 7/25/2019 Aplicacin de Android

    67/118

    67

    Ilustracin 38 - Aadir todas las tareas al mapa

    El siguiente mtodo que se va a observar es el encargado de obtener lospuntos de inters de la tarea en funcin a la categora que pertenece y pintarlosen funcin de la prioridad de la tarea. Este mtodo solo es utilizado cuandopintamos los puntos de inters de las tareas que no hayan sido seleccionadas.

    Ilustracin 39 - Obtener puntos de inters

  • 7/25/2019 Aplicacin de Android

    68/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    68

    Continuando, se encuentra el mtodo que nos devuelve la lista de puntos deinters ordenada en funcin de la distancia a la que encuentren del usuario,como se ha visualizado en las Ilustraciones anteriores este mtodo se utilizapara que al usuario se le muestre los puntos ms cercanos a l.

    Ilustracin 40 - Obtener puntos de inters por distancia

  • 7/25/2019 Aplicacin de Android

    69/118

    69

    Adems, se tiene el mtodo encargado de indicar si es la mejor localizacin enfuncin del momento que se recogi con la mejor precisin posible. Estemtodo es usado en el algoritmo de actualizar el GPS en funcin de los ajustesindicados por el usuario.

    Ilustracin 41 - Mejor localizacin del GPS

  • 7/25/2019 Aplicacin de Android

    70/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    70

    Y por ltimo, se puede visualizar en la Ilustracin el mtodo encargado degestionar el modo Auto del algoritmo de actualizacin del GPS.

    Ilustracin 42 - Modo GPS automtico

    8.1.5 Notifications: Paquete donde se gestionan las notificaciones de laaplicacin que recuerdan al usuario cuando debe o tiene cerca una tarea.

    8.1.5.1 NotificationMangement: Clase donde se encuentra todos los mtodos quepermiten lanzar la notificacin al usuario. A continuacin en las Ilustraciones sevisualizaran todos los mtodos encargados de realizar esta funcionalidad.

    El primer mtodo que se puede visualizar es el encargado de iniciar el servicioprimero de todo se filtran las tareas en funcin de la prioridad que el usuario aelegido en ajustes. Despus, en funcin de esa eleccin se lanzara losmtodos que controlan el lanzamiento de las notificaciones.

  • 7/25/2019 Aplicacin de Android

    71/118

    71

    Ilustracin 43 - Carga de notificaciones

    En la siguiente Ilustracin se muestra el lanzamiento de la notificacin decercana, para la de tiempo hay un mtodo casi idntico que se encargara delanzar la notificacin de tiempo. En ellos es donde se modifica y determina lavibracin, sonido, etc. En el caso de la que vamos a seleccionar es necesarioguardarnos la tarea que se notifique para que despus MapFragment puedapintarla como la tarea seleccionada, por tanto cuando el usuario seleccione lanotificacin esta le abrir el mapa con la tarea indicada.

  • 7/25/2019 Aplicacin de Android

    72/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    72

    Ilustracin 44 - Lanzamiento notificacin de cercana

    A continuacin podemos visualizar el mtodo que se encarga de crear unatarea programada por cada tarea en funcin del tiempo que el usuario hayaelegido en ajustes de que se le avise. Ms adelante se explicara la clase quelanzara la notificacin cuando la hora y el da de la tarea programada se haya

    finalizado.

  • 7/25/2019 Aplicacin de Android

    73/118

    73

    Ilustracin 45 Notificacin de tiempo

    El siguiente es el mtodo encargado de comprobar que tareas son cercanas alusuario en funcin de los metros que haya seleccionado en ajustes, en el casode tener tareas cercanas se llamara al mtodo de lanzar la notificacinexplicado anteriormente.

    Ilustracin 46 - Notificacin por cercana

  • 7/25/2019 Aplicacin de Android

    74/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    74

    Y la ltima Ilustracin se muestra la clase encargada de implementar la tareaprogramada y es la responsable de llamar al mtodo de lanzar la notificacinpor tiempo.

    Ilustracin 47 - Tarea programada

  • 7/25/2019 Aplicacin de Android

    75/118

    75

    8.1.6 Persistence: Paquete donde se encuentran la clase realizada por micompaero y explicada en su memoria que est encargada de crear los datosque devuelve el servidor en un json y el gestor de base de datos quedesarrollado por m y donde se gestiona la base de datos interna de la

    aplicacin.

    8.1.6.1 DBManager: Clase encargada de gestionar toda la persistencia, es quien crea,borra, modifica, obtiene, todos los datos de la base de datos local delusuario. A continuacin se vern unos mtodos de ejemplo de la clase.

    La primera Ilustracin nos muestra la creacin de las tablas cuando seinstancia la clase.

    Ilustracin 48 - Tablas de la base de datos

  • 7/25/2019 Aplicacin de Android

    76/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    76

    En la Ilustracin siguiente se muestra un ejemplo de los mtodos de aadir yobtener en este caso el ejemplo est basado en el objeto categora. De todasformas por cada objeto existe el mismo mtodo.

    Ilustracin 49 - Aadir y obtener categora

  • 7/25/2019 Aplicacin de Android

    77/118

    77

    Y por ltimo, se muestra el ejemplo de modificar y borrar con el mismo ejemplode antes.

    Ilustracin 50 - Modificar y borrar categora

    A parte de estos mtodos la clase contiene muchos ms, dependiendo de loque se necesita recoger de la base de datos de las diferentes clases de laaplicacin.

  • 7/25/2019 Aplicacin de Android

    78/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    78

    8.1.7 Utils: Paquete que contiene la clase que proporciona comprobaciones deconexin.

    8.1.7.1 ConnectionDetecto: es una clase que detecta si la conexin a internet o el GPS

    estn activos. Son mtodos utilizados en otras clases de la aplicacin. En laIlustracin se muestran estos dos mtodos.

    Ilustracin 51 - Conexin a Internet

    8.1.8 Activitys:La ltima parte que se puede ver en la Ilustracin de la estructurason las actividades de la aplicacin son las encargadas de mostrar lainformacin de los objetos de la aplicacin por pantalla. A continuacin sedetallara la funcionalidad de cada actividad realizada por m, en el caso de

    registro y inicio de sesin se encontraran en la memoria de mi compaero:

    8.1.8.1 AddTaskActivity:Es la actividad que muestra al usuario la pantalla de aadir omodificar una tarea. A continuacin se mostraran los diferentes mtodos queimplementa esta clase:

    En la primera Ilustracin se puede observar el mtodo que permite que sevisualice una nueva pantallita con un despegable donde el usuario podr elegirel punto de inters favorito para esa tarea, una vez lo seleccione su direccin ylocalizacin sern las mismas que punto de inters.

  • 7/25/2019 Aplicacin de Android

    79/118

    79

    Ilustracin 52 - Despegable punto de inters en aadir tarea

    A parte de este mtodo, est la versin para el caso de la pantalla de modificarque se muestra en la siguiente Ilustracin.

  • 7/25/2019 Aplicacin de Android

    80/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    80

    Ilustracin 53 - Despegable punto de inters en modificar tarea

    Seguidamente en la siguiente Ilustracin se muestra casi toda laimplementacin del mtodo de aadir tarea, como se puede visualizar serecogen todos los datos que se haya introducido el usuario por pantalla y seaaden a la base de datos local como al servidor.

  • 7/25/2019 Aplicacin de Android

    81/118

    81

    Ilustracin 54 - Aadir tarea

    A continuacin, se puede ver el mtodo que llama a recoger los datos de latarea modificada y despus hace los cambios en base de datos y en elservidor.

  • 7/25/2019 Aplicacin de Android

    82/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    82

    Ilustracin 55 - Modificar tarea

    Despus de este mtodo se puede observar el mtodo encargado de recoger

    los datos de la pantalla y modificar la tarea para que pueda ser actualizada enel mtodo anterior.

    Ilustracin 56 - Obtener datos tarea a modificar

  • 7/25/2019 Aplicacin de Android

    83/118

    83

    En la siguiente Ilustracin se muestra la funcionalidad de obtener la direccinde la tarea en funcin de la direccin, descripcin o ttulo de la tarea en el casodel que el usuario no haya elegido un punto de inters favorito para la tarea.

    Ilustracin 57 - Obtener direccin

    A parte se puede encontrar la llamada al servidor para crear la nueva tarea, enla Ilustracin se puede observar cmo se realiza.

  • 7/25/2019 Aplicacin de Android

    84/118

    Aplicacin de Android para geo-localizacin de tareas pendientes. Gestin eimplementacin de BD y aplicacin mvil

    84

    Ilustracin 58 - Llamada al servidor para crear tarea

    Y por ltimo, se encuentra el mtodo que realiza la llamada al servidor paramodificar la tarea. En la Ilustracin se puede visualizar como se realiza lasiguiente funcionalidad.

  • 7/25/2019 Aplicacin de Android

    85/118

    85

    Ilustracin 59 - Llamada al servidor para modificar tarea

    8.1.8.2 MainActivity:Clase principal que se encarga de gestionar las pantallas que seencuentran en el despegable del men principal, tambin recoge los datos de

    las tareas y las sincroniza. Adems, gestiona las diferentes funcionalidades delos mens de cada barra de estado de las pantallas. A continuacin, en lasIlustraciones se muestran los diferentes mtodos que impl