scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

Este Trabajo Fin de Grado ha consistido en el desarrollo de una plataforma colaborativa orientada al senderismo cuyos módulos principales son una aplicación para smartphones Android, un grupo privado de usuarios en Facebook y su integración a través de los módulos de programación. La aplicación para Android es capaz de contar los pasos que el usuario realiza, así como de guardar la ruta que va siguiendo y mostrarlo en un mapa, ya que utiliza técnicas de geoposicionamiento mediante GPS. Además hay una integración con Facebook (para los grupos de la unidad didáctica) y con Google Maps (para la visualización de las rutas recorridas). Para la gestión del historial y de las estadísticas de pasos y metros, utiliza una base de datos interna (MySQL) para guardar los resultados en el smartphone y para acceder a ellos de forma rápida y sencilla. Esta aplicación se complementa con otras funciones, como una opción para poder ver todas las novedades del grupo de la unidad didáctica, los ajustes de la aplicación y un menú de Ayuda. El grupo privado de Facebook permite que se compartan los comentarios e imágenes de los usuarios, así como controlar y analizar los resultados obtenidos y hace que los usuarios interaccionen de forma cómoda y rápida. López Lafuente, Miguel Ángel; Alesanco Iglesias, Álvaro

Full text

TRABAJO FIN DE GRADO PLATAFORMA SOCIAL DE SENDERISMO: DESARROLLO DE UNA APP PARA TRACKING Y SU INTEGRACI ´ ON EN FACEBOOK Autor: Miguel ´ Angel L´opez Lafuente Director: ´ Alvaro Alesanco Iglesias Escuela de Ingenier´ıa y Arquitectura Grado en Ingenier´ıa de Tecnolog´ıas y Servicios de Telecomunicaci´on Junio de 2014 Agradecimientos Diversas personas me han ayudado en la realizaci´on de este trabajo, por eso escribo estas l´ıneas de agradecimiento a su ayuda y apoyo durante estos meses. A´ Alvaro Alesanco, por su ayuda y sus consejos durante el desarrollo de la plataforma, y por sus comentarios y correcciones durante la redacci´on de la memoria. A los amigos y compa˜neros de clase, en especial a ´ Alex, Javi, Fer y Miguel, por ayudar tanto con los problemas de programaci´on como dando su opini´on sincera sobre el desarrollo y aspecto de la aplicaci´on. A los amigos del pueblo, por aguantar mi pesadez sobre la aplicaci´on y responder a mis preguntas sobre el funcionamiento de la misma. A mi hermano Gabriel, por criticar en todo momento mi aplicaci´on (de forma constructiva, espero) para que la mejorase y quedase mejor. A mis padres, por apoyarme siempre durante el transcurso de la carrera, en los buenos y en los malos momentos, y por su constante ´animo y preocupaci´on. Al resto de mi familia, en especial a mis t´ıos, por interesarse tanto por este trabajo y ayudarme en la medida en que fuese posible. PLATAFORMA SOCIAL DE SENDERISMO: DESARROLLO DE UNA APP PARA TRACKING Y SU INTEGRACI ´ ON EN FACEBOOK RESUMEN Este Trabajo Fin de Grado ha consistido en el desarrollo de una plataforma colaborativa orientada al senderismo cuyos m´odulos principales son una aplicaci´on para smartphones Android, un grupo privado de usuarios en Facebook y su integraci´on a trav´es de los m´odulos de programaci´on. La aplicaci´on para Android es capaz de contar los pasos que el usuario realiza, as´ı como de guardar la ruta que va siguiendo y mostrarlo en un mapa, ya que utiliza t´ecnicas de geoposicionamiento mediante GPS. Adem´as hay una integraci´on con Facebook (para los grupos de la unidad did´actica) y con Google Maps (para la visualizaci´on de las rutas recorridas). Para la gesti´on del historial y de las estad´ısticas de pasos y metros, utiliza una base de datos interna (MySQL) para guardar los resultados en el smartphone y para acceder a ellos de forma r´apida y sencilla. Esta aplicaci´on se complementa con otras funciones, como una opci´on para poder ver todas las novedades del grupo de la unidad did´actica, los ajustes de la aplicaci´on y un men´u de Ayuda. El grupo privado de Facebook permite que se compartan los comentarios e im´agenes de los usuarios, as´ı como controlar y analizar los resultados obtenidos y hace que los usuarios interaccionen de forma c´omoda y r´apida. HIKING SOCIAL PLATFORM: DEVELOPMENT OF A TRACKING APP AND HIS INTEGRATION WITH FACEBOOK SUMMARY This Final Year Project consists in developing a platform, which parts are: an Android application, a private Facebook group and their integration through programming. This application is able to count the user steps and save the route that he is following through GPS and show the route in a map, because it uses geo-positioning technologies with GPS. Also, we need Facebook integration (to publish the info to the groups) and Google Maps integration (in order to see the maps of the routes). This app uses an internal database (MySQL) to save the results in the smartphone and to access them fast and easily. The application has more options, like an option to visualize all the new publications of the teaching unit group, the app settings, and a Help menu. The private Facebook group allows the users to share their comments and images, and it can be used for analyzing and controlling the results. This group also make users interact fast and easily. ´ Indice general 1 Introducci´on 1 1.1 Motivaci´on y objetivos . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Materiales y herramientas utilizadas . . . . . . . . . . . . . . . . . . 3 1.3 Estadodelarte ............................. 4 1.4 Organizaci´on de la memoria . . . . . . . . . . . . . . . . . . . . . . 5 2 Escenario general y Requisitos 7 2.1 Visi´ongeneral.............................. 7 2.2 P´ublicoobjetivo............................. 8 2.3 Requisitos de la aplicaci´on . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 Plataforma de desarrollo elegida . . . . . . . . . . . . . . . . . . . . 11 3 Desarrollo de la aplicaci´on 13 3.1 Planteamiento general . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Funcionamiento de la aplicaci´on . . . . . . . . . . . . . . . . . . . . 16 3.2.1 Pod´ometro............................ 16 3.2.2 Estad´ısticas ........................... 21 3.2.3 Historial............................. 23 3.2.4 Ajustes.............................. 25 3.2.5 Ayuda.............................. 27 3.2.6 C´amara ............................. 28 3.2.7 VerGrupo............................ 28 3.3 Integraci´on con Facebook . . . . . . . . . . . . . . . . . . . . . . . . 29 3.3.1 Creaci´on del grupo y de los ´albumes . . . . . . . . . . . . . 29 i ii ´ INDICE GENERAL 3.3.2 Descarga de grupos y ´albumes. . . . . . . . . . . . . . . . . 31 4 Pruebas realizadas 33 4.1 Bater´ıadepruebas ........................... 33 5 Conclusiones y l´ıneas futuras 35 5.1 Opini´on personal del trabajo . . . . . . . . . . . . . . . . . . . . . . 35 5.2 Tiempoutilizado ............................ 36 5.3 Conclusiones............................... 36 5.4 L´ıneasfuturas.............................. 37 6 Bibliograf´ıa 39 A Acr´onimos 41 B Elecci´on de Plataforma 43 B.1 Criterios de selecci´on . . . . . . . . . . . . . . . . . . . . . . . . . . 43 B.2 Posibles plataformas . . . . . . . . . . . . . . . . . . . . . . . . . . 44 B.3 Elecci´onfinal .............................. 46 B.4 Elecci´on de la versi´on final de Android . . . . . . . . . . . . . . . . 47 C Base de datos 49 C.1 Introducci´on............................... 49 C.2 TablaAndadas ............................. 50 D Diagramas de Navegaci´on 53 E Bater´ıa de pruebas 59 E.1 Prueba de localizaci´on GPS . . . . . . . . . . . . . . . . . . . . . . 59 E.2 Prueba de funcionamiento de la base de datos . . . . . . . . . . . . 60 E.3 Prueba de grupos y ´albumes de Facebook . . . . . . . . . . . . . . . 61 E.4 Prueba de publicaciones en Facebook . . . . . . . . . . . . . . . . . 62 F Fragmentos de c´odigo 63 F.1 Contar pasos con la pantalla apagada . . . . . . . . . . . . . . . . . 63 ´ INDICE GENERAL iii F.2 Algoritmo que cuenta los pasos . . . . . . . . . . . . . . . . . . . . 64 F.3 Cron´ometro del pod´ometro . . . . . . . . . . . . . . . . . . . . . . . 66 F.4 Configuraci´on actualizaciones GPS . . . . . . . . . . . . . . . . . . 67 F.5 Permisos necesarios para el funcionamiento de Facebook . . . . . . 67 F.6 PublicarenFacebook.......................... 68 F.7 Carga del XML de Ajustes . . . . . . . . . . . . . . . . . . . . . . . 68 F.8 Adaptaci´on de la pantalla Estad´ısticas a distintas resoluciones . . . 69 G Manual de Usuario 71 G.1 Introducci´on............................... 71 G.2 Elementos de la aplicaci´on . . . . . . . . . . . . . . . . . . . . . . . 71 21.1. Motivaci´on y objetivos la juventud: Facebook, la red social m´as popular del mundo en estos momentos. Con su uso, se conseguir´a que el usuario se encuentre c´omodo en el entorno de la plataforma, y que sea m´as abierto respecto al uso de la aplicaci´on, as´ı como compartirla entre sus conocidos. En resumen, esta plataforma intenta fomentar el ejercicio utilizando como herramienta uno de los mejores m´etodos para llegar a la poblaci´on joven, que es, como se ha comentado anteriormente, el mundo de las aplicaciones m´oviles, debido a la gran popularidad que tienen sobre este colectivo y que la mayor´ıa de los j´ovenes posee un smartphone con conexi´on 3G y4G. 1.1 Motivaci´on y objetivos La realizaci´on y el desarrollo de este Trabajo Fin de Grado nace a partir de la colaboraci´on de mi tutor con el grupo de investigaci´on ”Educaci´on F´ısica y Promoci´on de la Actividad F´ısica” (EFYPAF) [2], grupo de la Universidad de Zaragoza encargado de fomentar la actividad f´ısica desde los centros educativos, cuya idea era la de crear una aplicaci´on que contase pasos y subiese los resultados aTwitter (posteriormente se decidi´o usar Facebook por las razones que se explican en el apartado 2.4). Tras una reuni´on con dicho grupo, se descart´o el tema competitivo en la aplicaci´on (ya que pod´ıa afectar a los ni˜nos con peores resultados) y se decidi´o orientar nuestro trabajo hacia el senderismo y el desarrollo de unidades did´acticas. Finalmente, teniendo en cuenta lo anterior, se inici´o su desarrollo y se defini´o el objetivo principal del mismo: El desarrollo de una plataforma consistente en una aplicaci´on para smartphone con los siguientes requerimientos: •Contar los pasos que el usuario realiza en sus rutas. •Guardar las posiciones GPS por las que pasa. •Mostrar en un mapa la ruta que ha recorrido. •Tener un historial de rutas donde consultar los resultados. Cap´ıtulo 1. Introducci´on 3 •Comunicarse con Facebook para compartir los resultados, pudiendo a˜nadir im´agenes a los mismos. El objetivo final de esta plataforma consiste en fomentar la actividad f´ısica de la poblaci´on joven, sobre todo en edad escolar; es decir, su intenci´on es hacer que el usuario la utilice mientras camina durante su ruta, y darle funcionalidades para que le sea m´as amena dicha actividad. La plataforma es did´actica, ya que los profesores de Educaci´on F´ısica pueden utilizar esta aplicaci´on para crear unidades did´acticas de senderismo en su asignatura, y as´ı realizar un seguimiento sencillo de las rutas que realizan sus alumnos, as´ı como hacer que los ni˜nos se relacionen entre s´ı gracias a Facebook y proponerles rutas para realizar en familia. Por lo tanto, el enfoque de esta plataforma debe ser educativo, pero sin dejar de lado la funcionalidad y la usabilidad de la aplicaci´on, ya que podr´a ser utilizada por cualquier usuario, no s´olo por alumnos. 1.2 Materiales y herramientas utilizadas Para la creaci´on y el desarrollo de la plataforma se utilizaron los siguientes elementos: •Java: Es el lenguaje de programaci´on que utiliza el sistema operativo Android. •SDK Eclipse [3]:Es el entorno de desarrollo de Android [4], la interfaz donde se realiza la programaci´on de todos los componentes de nuestra aplicaci´on. •SQLite: Base de datos interna que proporciona Android. Es el lugar donde se guarda el historial de las rutas. •SharedPreferences: Forma de guardar peque˜nos datos incorporada en Android, lo cual es de utilidad para guardar los ajustes establecidos por el usuario. 41.3. Estado del arte •API de Google Maps [5]:Librer´ıas que permiten programar la visualizaci´on de los mapas y la interacci´on con ellos. •API de Facebook [6]:Librer´ıas con las que se puede interactuar con Facebook, y por lo tanto con los grupos cerrados necesarios para nuestra aplicaci´on. 1.3 Estado del arte Antes de desarrollar la aplicaci´on, se analizaron las alternativas que exist´ıan en ese momento en el mercado, para ver que funciones ofrec´ıan y cuales eran sus puntos fuertes y d´ebiles. En el caso de los pod´ometros, las aplicaciones se pod´ıan dividir en dos grandes grupos: las gratuitas y las de pago. Algunas de las aplicaciones m´as destacadas eran: •Runtastic Pedometer: Es la aplicaci´on m´as completa de las estudiadas. Tiene versi´on gratuita (con funciones limitadas) y versi´on de pago. Es una aplicaci´on muy bien cuidada a nivel de funciones y dise˜no, siendo su principal inconveniente el tener que pagar para acceder a ciertas funciones, como los c´alculos de distancia y el historial completo. •Noom Walk: Es gratuita. Su gran ventaja es que no utiliza GPS, por lo que gasta menos bater´ıa, pero su interfaz deja bastante que desear y su usabilidad es mala, ya que no resulta intuitiva. Est´a m´as orientada a compartir resultados con otros usuarios que al hecho de caminar. •Pod´ometro 2.0: Es gratuita. Su interfaz es muy compleja, lo cual puede confundir al usuario. Adem´as no est´a bien organizada, por lo que las funcionalidades se pierden. Su funci´on, que es contar pasos, la realiza correctamente, pero su interfaz desluce un poco su uso. •Accupedo: Tambi´en es gratuita. Su interfaz es simple pero con un buen dise˜no, por lo que no resulta complicado acceder a las funciones m´as Cap´ıtulo 1. Introducci´on 5 conocidas. Uno de sus problemas es que incluye publicidad, la cual molesta al utilizar la aplicaci´on. •Smart Pedometer: Tiene versi´on gratuita (con funciones limitadas) y versi´on de pago. Su interfaz es algo infantil, y las limitaciones de la versi´on gratuita son enormes: no muestra el d´ıa a d´ıa, sino un resultado acumulado, y s´olo permite un modo de funcionamiento. En conclusi´on, a pesar de que existen muchas aplicaciones en este campo, en general presentan varias carencias, bien sea en el dise˜no, en la facilidad de uso, o en la limitaci´on de funciones. Adem´as, ninguna est´a orientada al p´ublico en edad escolar en particular. Por ello, nuestra plataforma puede aportar lo necesario para llegar a todos los usuarios, no s´olo a los alumnos, y que satisfaga sus necesidades. 1.4 Organizaci´on de la memoria El contenido de la memoria se estructura de la siguiente forma: •En el Cap´ıtulo 1 se realiza una breve introducci´on del TFG, el contexto actual en el que se lleva a cabo (incluyendo un estado del arte) y el objetivo final que quiere alcanzar. •En el Cap´ıtulo 2 se detalla el an´alisis previo que se ha realizado sobre la aplicaci´on, en el que se incluyen los objetivos, el p´ublico hacia el que va dirigido y las plataformas escogidas, as´ı como el documento de especificaci´on de requisitos. •En el Cap´ıtulo 3 se presenta todo el funcionamiento interno de la aplicaci´on, explicando las clases, algoritmos y m´etodos m´as importantes, y se explica la interacci´on con Facebook. •En el Cap´ıtulo 4 se analiza el proceso de pruebas de la aplicaci´on. •En el Cap´ıtulo 5 se realiza un resumen con las mejoras que se podr´ıan llevar a cabo en un futuro y las conclusiones al acabar el trabajo. 61.4. Organizaci´on de la memoria Adem´as, en la parte final de la memoria pueden encontrarse los siguientes anexos con informaci´on complementaria a la definida en la memoria principal: •En el Anexo A se describen los acr´onimos utilizados en la memoria. •En el Anexo B se realiza un an´alisis de la elecci´on de plataforma realizada. •En el Anexo C se detalla el contenido y la forma de acceder a la base de datos de nuestra aplicaci´on. •En el Anexo D se muestran los distintos diagramas de navegaci´on de la aplicaci´on. •En el Anexo E se explican las pruebas realizadas para comprobar el correcto funcionamiento de Pod´ometro & Rutas. •En el Anexo F se muestran los fragmentos de c´odigo m´as interesantes de la aplicaci´on. •En el Anexo G se incluye un manual de usuario donde se explica el funcionamiento de la plataforma. Cap´ıtulo 2 Escenario general y Requisitos 2.1 Visi´on general El esquema general de la plataforma social de senderismo est´a dividido en tres partes fundamentales: •La aplicaci´on, Pod´ometro & Rutas: Es el elemento m´as importante de la plataforma. Es una aplicaci´on para Android que interacciona con Facebook para crear las unidades did´acticas de senderismo. El funcionamiento general de la aplicaci´on es el siguiente: El usuario se conecta a Facebook para seleccionar dicho grupo. Tras esto se puede comenzar a realizar una ruta, y la aplicaci´on cuenta los pasos y almacena las posiciones por las que pasa. A la hora de publicar los resultados se pueden subir a Facebook tanto comentarios como im´agenes, y compartirlos con los dem´as usuarios en el grupo privado de senderismo. •La red social Facebook: Esta red social permite crear grupos cerrados de unidades did´acticas de senderismo, donde los alumnos y el profesor interact´uan subiendo los resultados, im´agenes y datos relevantes de las rutas recorridas. 7 82.2. P´ublico objetivo •Ordenadores, smartphones y tablets: Desde estos dispositivos se puede acceder a Facebook para, en el caso de los profesores, administrar el grupo, a˜nadir nuevas rutas y controlar los resultados y, en el caso de los alumnos, para poder ver las fotos y comentarios de las rutas en las que ha participado. En la Figura 2.1 se representa este esquema de funcionamiento. Figura 2.1: Plataforma social de senderismo: Esquema general. 2.2 P´ublico objetivo La plataforma de senderismo est´a enfocada en un grupo de poblaci´on definido: alumnos de primaria y secundaria, y sus profesores. Por lo tanto, la aplicaci´on deber´a ser programada pensando que podr´a ser utilizada por ambos grupos, as´ı que a la hora de dise˜nar y crear sus funcionalidades e interfaz debe de llegarse a un equilibrio para que las dos partes puedan usarla de forma correcta: •Desde el punto de vista de los alumnos de primaria y secundaria, hay que remarcar la sencillez de la aplicaci´on, y el car´acter did´actico de la misma. Cap´ıtulo 2. Escenario general y Requisitos 9 Por lo tanto, es importante que los contenidos sean entendidos con facilidad, as´ı como tener una interfaz simple y f´acil de comprender. Lo m´as importante es no crear opciones ambiguas ni complicadas de asimilar por este grupo de poblaci´on. As´ı el alumno ver´a f´acil subir sus resultados a Facebook, realizar rutas, consultar el mapa... El objetivo es que la aplicaci´on sea utilizada como complemento a la actividad f´ısica, y que la interacci´on con Facebook sea sencilla y les permita ver sus resultados f´acilmente. •Desde el punto de vista de los profesores, la aplicaci´on tambi´en debe ser sencilla y con unas partes bien diferenciadas, pero sobre todo debe tener una buena interacci´on con Facebook para que el profesor, que es el gestor de las unidades did´acticas, sepa utilizar dicha red social de forma clara y utilizar las partes de la aplicaci´on que suben y descargan informaci´on de Facebook. Con esto el profesor podr´a resolver los problemas de los alumnos de una manera m´as r´apida. 2.3 Requisitos de la aplicaci´on Como resumen general de lo explicado anteriormente, se describe a continuaci´on la lista de requisitos de nuestra plataforma final de senderismo: •RF1: La aplicaci´on ser´a capaz de contar los pasos del usuario y sus metros recorridos y de guardarlos en una base de datos para su posterior visualizaci´on y an´alisis. •RF2: La aplicaci´on podr´a obtener la posici´on geogr´afica actual del usuario y de almacenarla para luego poder mostrar un mapa de las posiciones por las que ha pasado, y almacenar dicho mapa. Tambi´en ser´a capaz de mostrar un peque˜no mapa en directo durante la ruta. •RF3: La aplicaci´on permitir´a guardar posiciones personalizadas, que luego se podr´an visualizar en el mapa al finalizar la ruta. 10 2.3. Requisitos de la aplicaci´on •RF4: La plataforma tendr´a interacci´on con Facebook, para poder subir a dicha red social los resultados de las rutas as´ı como informaci´on de inter´es (fotos, comentarios...) desde la aplicaci´on. •RF5: La plataforma se basar´a en grupos de Facebook para que los profesores y alumnos consulten en cualquier lugar (smartphone, PC, tablet, etc) los resultados y las im´agenes de las rutas recorridas en dichos grupos. •RF6: La aplicaci´on dispondr´a de un historial de rutas en el que consultar todas las que el usuario ha realizado, y visualizar el mapa y sus resultados de forma r´apida. •RF7: La aplicaci´on tendr´a un apartado de estad´ısticas, en el que el usuario podr´a consultar los pasos realizados y los metros recorridos desde que empez´o a usar la aplicaci´on. •RF8: La aplicaci´on dispondr´a de un men´u de ajustes, en el que el usuario podr´a cambiar par´ametros de funcionamiento de la aplicaci´on. •RF9: Tambi´en contar´a con un apartado de Ayuda, en el que se explicar´an las dudas principales y se dar´an consejos b´asicos de funcionamiento de las diferentes partes de la aplicaci´on. •RF10: La aplicaci´on tendr´a en su pantalla principal un acceso directo al grupo de Facebook escogido desde ajustes, para poder visualizar desde la propia aplicaci´on lo que los miembros a˜naden al grupo. •RNF1: La aplicaci´on ser´a programada para dispositivos m´oviles, siendo la plataforma final de desarrollo elegida la que se considere que tiene mayor n´umero de usuarios potenciales. •RNF2: La resoluci´on de la aplicaci´on deber´a ser tenida en cuenta, para que se visualice de forma correcta en el mayor n´umero de smartphones posibles. Cap´ıtulo 2. Escenario general y Requisitos 11 2.4 Plataforma de desarrollo elegida Tras realizar un an´alisis de los posibles sistemas operativos actuales, se decidi´o implementarla para dispositivos Android, ya que tienen una elevad´ısima cuota de mercado (muy pr´oxima al 80 %), la facilidad para realizar una programaci´on en este lenguaje (est´a basado en Java) y el requerir una escasa inversi´on (casi nula) para llevar a cabo el trabajo. En cuanto a la versi´on escogida de Android, se eligi´o la 2.3 (Gingerbread) ya que con ella se da cobertura a casi el 99 % de los dispositivos. En el Anexo B puede encontrarse un an´alisis exhaustivo del mecanismo de elecci´on de la plataforma. En cuanto a la red social escogida, en un principio se pens´o en utilizar Twitter por su alta implantaci´on en los j´ovenes, pero finalmente se escogi´o Facebook debido a su facilidad de creaci´on de grupos y de monitorizaci´on de los mismos, y por su sencillez y atractivo en cuanto a interfaz visual. Otra ventaja por la que fue escogida es por permitir subir comentarios e im´agenes de forma muy r´apida gracias a su API y a los tutoriales que facilita la propia red social. 18 3.2. Funcionamiento de la aplicaci´on pinta las posiciones en el mapa y llama a DibujarMapa.java para que pinte la ruta entre dichas posiciones. Este DibujarMapa se comunica con Google Maps mediante Internet para obtener las descripciones de las posiciones que hay en el mapa, y adem´as obtener lo m´as importante: El servicio de guiado de Google Maps. Mediante las posiciones, es capaz de obtener el camino m´as probable por el que ha ido el usuario de una posici´on a otra, por lo que se implementa esto de cada posici´on XaX+1 y, mediante un bucle, se obtiene la ruta total con los puntos de los que se dispone. Adem´as, cada punto tiene un color diferente: El primero y el ´ultimo (Inicio y Final de la Ruta) son azules, los puntos guardados por el usuario son verdes y los puntos necesarios para poder pintar el mapa son rojos. De esta manera el usuario puede consultar de manera m´as sencilla cu´ales son los puntos que ha guardado ´el, y tambi´en de ver su ruta de manera m´as agradable. El mapa se puede capturar para posteriormente subir dicha imagen a Facebook. En la Figura 3.2 se puede ver un ejemplo de este mapa. Figura 3.2: Ejemplo de mapa. Cap´ıtulo 3. Desarrollo de la aplicaci´on 19 Otra opci´on de esta Activity es la de editar el texto por defecto, a˜nadiendo un comentario personalizado. Para subir sus contenidos a Facebook, se dispone de las otras dos opciones, ”Publicar comentario en Facebook” y ”Publicar imagen en Facebook”. La primera a˜nade un comentario al ´album de fotos que desee del grupo que ha establecido en Ajustes, y la segunda a˜nade una imagen a dicho ´album. Es importante no confundir ambas, ya que la imagen aparece directamente en el ´album de fotos, mientras que el comentario (que puede o no llevar una imagen como a˜nadido) aparece en los comentarios del ´album. Ambas opciones son muy parecidas: Llevan a nuevas Activity muy similares entre s´ı, con la ´unica diferencia de que la de imagen obliga a seleccionar una imagen para poder publicar, mientras que la de comentario incorpora la opci´on pero permite subir ´unicamente el comentario. Tambi´en hay una opci´on para capturar una imagen del mapa. Cuando en estas Activity se pulsa ”Publicar en Facebook”, se abre una nueva Activity,Facebook.java, en la que al fin se pueden subir los datos a dicha red social. Primero se debe iniciar sesi´on, lo cual se ha implementado mediante la API de Facebook, utilizando una clase de sus librer´ıas. Tras esto, aparece el bot´on Cargar ´ Albumes, que al pulsarlo carga los ´albumes del grupo (que se ha seleccionado desde Ajustes) en un Spinner (men´u desplegable). En este Spinner se puede seleccionar el ´album que se desee, para posteriormente pulsar en ”Publicar en Facebook” para publicar el comentario o imagen con los resultados de la ruta en dicha red social. Si todo ha ido correctamente se muestra un mensaje de ´exito, mientras que si algo ha fallado se muestra un mensaje de error. Como resumen de este apartado, en la Figura 3.3 se muestra el esquema general de funcionamiento del pod´ometro. 20 3.2. Funcionamiento de la aplicaci´on Figura 3.3: Diagrama de funcionamiento del pod´ometro. Cap´ıtulo 3. Desarrollo de la aplicaci´on 21 3.2.2 Estad´ısticas Las estad´ısticas de Pod´ometro & Rutas permiten al usuario ver su progreso diario medido en pasos y en metros. En cuanto a su funcionamiento, consiste en lo siguiente: cuando el usuario pulsa el Button desde la pantalla principal, le lleva a una nueva Activity en la que debe elegir entre consultar los pasos realizados o los metros recorridos. Una vez lo elige, le lleva a una nueva Activity (AChartEngineActivity.java oAChartEngineActivityKm.java, dependiendo de lo elegido) que est´a programada con las librer´ıas de AChartEngine[7], una utilidad para Android que permite crear y mostrar gr´aficas de todo tipo (barras, sectores, l´ıneas...). Para esta aplicaci´on se eligi´o un gr´afico de barras, porque es un tipo de gr´afico muy adecuado para mostrar nuestros resultados de una forma elegante. El funcionamiento de la Activity es el siguiente: Al iniciarla, hace una petici´on a la base de datos DBAndadas para que le devuelva todos los valores nombre, pasos (en caso de querer mostrar los pasos) y metros (en caso de querer mostrar los metros). La base de datos le contesta con los datos que ha ido almacenando de rutas anteriores, como se ha visto en el cap´ıtulo anterior. Si no hay ning´un dato, porque a´un no se ha realizado ninguna ruta, la Activity se cierra y se muestra un mensaje indicando que no hay ninguna ruta realizada, volviendo a la pantalla de elecci´on de pasos o metros. Si hay datos, se colocan en vectores diferentes y se van a˜nadiendo al gr´afico gracias a las funciones y m´etodos que proporciona AChartEngine. Para esta Activity, se ha tenido muy en cuenta la resoluci´on de los diferentes smartphones, ya que dependiendo de ´esta hay que poner ciertos m´argenes en el gr´afico para ajustarlo a la pantalla. Por eso, se han implementado unas propiedades de gr´afico para cada tipo de resoluci´on que existe en Android (xxhigh, xhigh, high y medium). 22 3.2. Funcionamiento de la aplicaci´on En la Figura 3.4 se muestra el diagrama de funcionamiento de esta funcionalidad de nuestra aplicaci´on. Figura 3.4: Diagrama de funcionamiento de Estad´ısticas. Como ejemplo de visualizaci´on, se muestra a continuaci´on la Figura 3.5. Figura 3.5: Visualizaci´on de Estad´ısticas: Pasos recorridos. Cap´ıtulo 3. Desarrollo de la aplicaci´on 23 3.2.3 Historial El historial de la aplicaci´on permite consultar las rutas que han sido realizadas previamente de una manera f´acil y r´apida. Al pulsar en ”Historial” se inicia la Activity Historial.java. En el m´etodo OnCreate de esta Activity, se manda una petici´on a la base de datos para que devuelva todas las rutas que hay guardadas en ese momento, incluyendo todos los datos de cada fila (ruta), como son los pasos, los metros, las posiciones GPS y los dem´as par´ametros guardados. Desde aqu´ı, se pueden realizar diversas acciones: •Ver Ruta: Desde esta opci´on se accede a una nueva Activity, RecorridoHistorial.java, similar a la que se llegaba tras finalizar una caminata, por lo que lleva a la pantalla de resumen de la ruta que se ha seleccionado del Spinner (lista desplegable). Las funcionalidades de esta Activity son las mismas que las que se han tratado en el apartado 3.2.1(Pod´ometro) por lo que no ser´an descritas en detalle. Se puede subir la informaci´on a Facebook, consultar el mapa (cuyas posiciones GPS est´an guardadas en la base de datos) y personalizar el mensaje a publicar. •Borrar Ruta: Al pulsar esta opci´on, se accede desde la aplicaci´on a la base de datos DBAndadas para borrar de ella la fila correspondiente a la ruta que aparece seleccionada en la lista desplegable. Con esto se permite borrar rutas que ya no se quieren tener almacenadas en el terminal, para facilitar la claridad y la organizaci´on de la aplicaci´on. Tras ejecutarse, reinicia la Activity para que sean cargadas de nuevo las rutas, para actualizar la lista desplegable eliminando la que acaba de ser borrada. •Borrar todas las rutas: Esta opci´on permite eliminar la base de datos completa y crear una desde cero, borrando con ello todas las rutas almacenadas. Esta opci´on es ´util cuando se desea eliminar la aplicaci´on, por ejemplo si va a ser desinstalada, o simplemente cuando se quiere comenzar de nuevo a utilizarla, eliminando todos los elementos que ya no sirven. Tras ejecutarse, reinicia la Activity para vaciar la lista desplegable. 24 3.2. Funcionamiento de la aplicaci´on Las interacciones con la base de datos aparecen explicadas con m´as detenimiento en el Anexo C. En la Figura 3.6 se puede observar el diagrama de bloques de funcionamiento del apartado ”Historial”: Figura 3.6: Diagrama de funcionamiento del historial. Como ejemplo de visualizaci´on del historial, se muestra la Figura 3.7. Figura 3.7: Visualizaci´on de Historial. Cap´ıtulo 3. Desarrollo de la aplicaci´on 25 3.2.4 Ajustes En el men´u Ajustes se pueden configurar los par´ametros m´as importantes de la aplicaci´on, los cuales son: •Distancia de paso: Longitud de paso del usuario. •Mapa en directo: N´umero de pasos para actualizar el mapa en directo. •Elegir Grupo: Selecciona el grupo de Facebook donde se publicar´an los resultados. •Sensibilidad: Ajusta la sensibilidad del pod´ometro. A mayor sensibilidad, mayor n´umero de pasos ser´an contados. •Activar el GPS: Activa o desactiva el aviso de activar el GPS al iniciar el pod´ometro. •Tiempo GPS: Tiempo m´ınimo entre actualizaciones de posici´on GPS para el mapa final. •Pantalla encendida: Permite que la pantalla permanezca encendida durante la ruta. Es una opci´on para los smartphones que no cuentan los pasos con la pantalla apagada. En cuanto a la forma de programaci´on de estos ajustes, se ha utilizado la estructura de SharedPreferences que permite Android, mediante un archivo XML en el cual aparece todo el listado de opciones. Este XML se a˜nade a una Activity, OpcionesActivity.java la cual permite que sean mostradas por pantalla. Al seleccionar cualquier opci´on de las que aparecen, aparece un pop-up que permite cambiar el valor de ese par´ametro (por ejemplo, la longitud del paso). Al realizar el cambio, se modifica el valor anterior por el deseado, y este nuevo dato se guarda mediante SharedPreferences en un fichero con formato XML creado por el sistema Android que se encuentra en la ruta de sistema de nuestra aplicaci´on. 26 3.2. Funcionamiento de la aplicaci´on Gracias a esto, cuando se vuelva a abrir la aplicaci´on un tiempo despu´es, se cargan los valores almacenados en ese XML al iniciarla, por lo que los ajustes que han sido guardados son recuperados al momento permitiendo as´ı almacenar los valores que el usuario desee. En los algoritmos de nuestro c´odigo aparecen llamadas a estos valores para asegurar que la aplicaci´on se ejecuta con los par´ametros que el usuario ha modificado (Por ejemplo, si el usuario ha cambiado la longitud del paso de 60 a 70 cm, cuando la aplicaci´on calcule la cantidad de metros recorridos, buscar´a en el XML el valor nuevo de longitud de paso y realizar´a la multiplicaci´on por 70 cm, no con 60, que es el valor por defecto) Como ejemplo de visualizaci´on de los ajustes, se muestra la Figura 3.8. Figura 3.8: Visualizaci´on de Ajustes. Cap´ıtulo 3. Desarrollo de la aplicaci´on 27 3.2.5 Ayuda La secci´on de Ayuda ha sido pensada para responder las dudas del usuario con respecto a la aplicaci´on, as´ı como para darle consejos de funcionamiento que puedan serle ´utiles, y por ´ultimo para dar una opci´on de contactar con el desarrollador para hacerle saber lo que el usuario desee. Esta parte de Pod´ometro & Rutas es algo diferente a las dem´as, ya que esta Activity debe estar formada por 3 pesta˜nas (TabHost) que permitan al usuario seleccionarlas para ir a la informaci´on referida a cualquiera de ellas. Por esto, la informaci´on de cada pesta˜na debe ser programada en la misma Activity pero en diferente pesta˜na, lo cual se consigue gracias a los Layout. Los Layout son las interfaces visuales de cada Activity, y cada Activity debe estar asociada a un Layout. Estos Layout son archivos XML configurables de muchas formas y con infinidad de opciones, una de ellas es la de a˜nadir pesta˜nas que permite conseguir lo que se busca en este caso. Como ejemplo de visualizaci´on de las pesta˜nas de ayuda, se muestra la Figura 3.9. Figura 3.9: Visualizaci´on de las pesta˜nas de Ayuda. 34 4.1. Bater´ıa de pruebas Al desconocer en gran medida la programaci´on en Android, la mayor´ıa de los elementos de la aplicaci´on eran testeados individualmente de manera inmediata, ya que era la ´unica forma de asegurar que se estaba implementando correctamente. Por eso las pruebas que se realizaron estuvieron m´as centradas en probar el funcionamiento de la aplicaci´on en general. Las pruebas m´as importantes se llevaron a cabo sobre: •Sistema de localizaci´on GPS: Se comprueba en diez lugares distintos (reales y emulados) que las coordenadas que devuelve la aplicaci´on son correctas. •Base de datos: Se realizan diez rutas distintas y se comprueba que se han guardado correctamente en la base de datos DBAndadas de la aplicaci´on. •Descargar grupos y ´albumes de Facebook: Se cambia en cinco ocasiones de grupo mediante Ajustes, y se comprueba si el cambio se realiza correctamente y si a la hora de publicar aparecen los ´albumes (se crean dos por cada grupo) correspondientes a dicho grupo. •Publicar en Facebook: Se publican cinco comentarios y cinco im´agenes desde la aplicaci´on y se comprueba en el ordenador que aparecen correctamente en Facebook. Los resultados de las pruebas fueron totalmente satisfactorios. En el Anexo Ese pueden consultar los resultados de esta bater´ıa de pruebas de forma m´as detallada. Cap´ıtulo 5 Conclusiones y l´ıneas futuras 5.1 Opini´on personal del trabajo La realizaci´on de este TFG ha sido todo un reto a nivel personal ya que supone el final de la realizaci´on del grado y el hecho de utilizar todos los conocimientos aprendidos hasta la fecha. Por otro lado, la obligaci´on de tener que aprender a programar en Android y desarrollar la aplicaci´on desde cero es una dificultad extra, ya que esto no ha sido explicado en ninguna asignatura de la carrera (aunque la programaci´on en Android se basa en Java, el cual s´ı lo he estudiado) pero a la vez supone una ventaja, ya que se obtiene un control casi absoluto sobre el proyecto, conllevando una mayor libertad (sobre todo desde el punto de vista creativo). El periodo de aprendizaje de Android fue muy ´util para mi formaci´on porque el hecho de desconocer c´omo funcionaba me oblig´o a investigar y buscar informaci´on continuamente por mi cuenta, ya fuese en libros, tutoriales, p´aginas web especializadas, foros de dudas, etc. En conclusi´on, creo que este trabajo ha sido una gran experiencia en el que he aprendido muchos conocimientos, sobre todo con respecto a Android. 35 36 5.2. Tiempo utilizado 5.2 Tiempo utilizado En la Figura 5.1 se muestra el reparto del tiempo de las diferentes tareas en que se dividi´o el desarrollo de la aplicaci´on, separadas en Aprendizaje del lenguaje de programaci´on, an´alisis del proyecto, dise˜no de la plataforma, implementaci´on en c´odigo, pruebas de funcionamiento y redacci´on de la memoria. Como se puede observar en la imagen, se utilizaron los primeros meses para aprender a programar en Android, aunque esta fase se solap´o con todas las dem´as, ya que siempre era necesario aprender ciertas partes de programaci´on para avanzar en el desarrollo del trabajo. Figura 5.1: Diagrama de Gantt del proceso de desarrollo. 5.3 Conclusiones Este Trabajo Fin de Grado buscaba conseguir el objetivo que se marc´o al comienzo: programar una aplicaci´on que, con la ayuda de la red social Facebook, formasen una Plataforma social de senderismo con la que se lograse que los usuarios de la misma realizasen m´as actividad f´ısica, en especial los m´as j´ovenes, y fuese utilizada en centros escolares. Se ha conseguido una aplicaci´on funcional, en la que aparecen los requisitos b´asicos planteados: un pod´ometro con mapa incorporado, comunicaci´on con Facebook para compartir los resultados, y ciertas funcionalidades adicionales como el historial y las estad´ısticas. Cap´ıtulo 5. Conclusiones y l´ıneas futuras 37 En este trabajo se han abordado elementos como la programaci´on en Android, el dise˜no de la interfaz visual, la interacci´on con las APIs de Facebook yGoogle Maps y el uso de bases de datos. Finalmente, teniendo en cuenta el resultado obtenido con la plataforma social de senderismo, se puede concluir que se han alcanzado los objetivos establecidos al inicio del trabajo, y por lo tanto se puede decir que el TFG ha concluido de forma exitosa. 5.4 L´ıneas futuras Una vez que el trabajo sea evaluado, la aplicaci´on ser´a subida a Google Play para que pueda ser descargada y utilizada por los usuarios de forma gratuita. Adem´as la aplicaci´on podr´a ser usada por los profesores de Educaci´on F´ısica y por sus alumnos para el desarrollo de unidades did´acticas de senderismo, el cual es el objetivo final del trabajo. La evaluaci´on de la plataforma por parte de los usuarios es otra de las l´ıneas futuras claras: Si se realizase un estudio de c´omo funciona en las aulas, servir´ıa para ver qu´e tal funciona la aplicaci´on con un grupo de alumnos real, y con esos datos modificar partes de la plataforma para mejorar el funcionamiento de la misma. En un futuro, cuando la aplicaci´on est´e asentada, podr´ıa ser portada a otras plataformas, en especial a iOS, el sistema operativo de Apple. Adem´as existen diferentes mejoras que podr´ıan implementarse: •A˜nadir funcionalidades al pod´ometro: Por ejemplo, llevar la cuenta de las calor´ıas que el usuario gasta o medir la velocidad que lleva, o tambi´en se podr´ıa implementar la opci´on de contar los pasos en la modalidad de correr, a˜nadi´endose a la de andar que hay actualmente. •Mejorar la interfaz gr´afica de la aplicaci´on: Llevar a cabo el desarrollo del aspecto gr´afico es una tarea larga y complicada teniendo en cuenta que es la primera vez que programo una interfaz gr´afica para Android. Por ello, los fondos, iconos y efectos se desarrollaron de una manera sencilla, pero de manera que queden bien integrados en la aplicaci´on. Esto podr´ıa mejorarse 38 5.4. L´ıneas futuras de forma r´apida por alg´un experto en dise˜no de aplicaciones. •Mejorar el procesado de los datos GPS: Hay ciertos terminales en los que la captura de posiciones GPS no se ve alterada por los cambios en Ajustes, y siempre capturan m´as posiciones de las necesarias. Es un problema de fabricante, pero podr´ıa implementarse alguna mejora para minimizar su efecto. Cap´ıtulo 6 Bibliograf´ıa [1] Estudio sobre obesidad infantil y juvenil: http://www.henufood.com/ nutricion-salud/mejora-tu-salud/obesidad-infantil-y-juvenil [2] P´agina del proyecto EFYPAF: http://efypaf.unizar.es/ [3] P´agina oficial de la herramienta Eclipse: http://projects.eclipse.org/ [4] P´agina oficial de desarrollo de Android: http://developer.android.com/index.html [5] P´agina oficial de Google Developers: https://developers.google.com/?hl=es [6] P´agina oficial de Facebook Developers: https://developers.facebook.com/ [7] P´agina oficial de AChartEngine: https://code.google.com/p/achartengine/ [8] Reparto de uso de sistemas operativos: http://www.kantarworldpanel.com/smartphone-os-market-share/ [9] Estad´ısticas oficiales de Android: http://developer.android.com/about/dashboards/index.html 39 40 [10] Curso de programaci´on Android de Salvador G´omez Oliver: http://www.sgoliver.net/blog/?page_id=2935 [11] Foros de Stackoverflow: http://stackoverflow.com/