1 / 42

AUTOR: Pablo Iglesias Doforno TUTOR: Martín López Nores

PROYECTO FIN DE CARRERA DISEÑO E IMPLEMENTACIÓN DE UNA APLICACIÓN ANDROID CON INTERFACES GRÁFICAS PARA INTRODUCCIÓN Y BÚSQUEDA DE RUTAS EN UN SERVICIO DE CONCERTACIÓN DE DESPLAZAMIENTOS EN VEHÍCULO COMPARTIDO A TRAVÉS DE INTERNET. AUTOR: Pablo Iglesias Doforno TUTOR: Martín López Nores.

neila
Télécharger la présentation

AUTOR: Pablo Iglesias Doforno TUTOR: Martín López Nores

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROYECTO FIN DE CARRERADISEÑO E IMPLEMENTACIÓN DE UNA APLICACIÓN ANDROID CON INTERFACES GRÁFICAS PARA INTRODUCCIÓN Y BÚSQUEDA DE RUTAS EN UN SERVICIO DE CONCERTACIÓN DE DESPLAZAMIENTOS EN VEHÍCULO COMPARTIDO A TRAVÉS DE INTERNET AUTOR: Pablo Iglesias Doforno TUTOR: Martín López Nores

  2. Contexto y objetivos

  3. Carpool • Práctica de compartir el uso de un automóvil por dos o más personas. • Menor consumo energético. • Reducción congestión del tráfico. • Mayor socialización. • Portales Web: www.vao.es, www.rideshare.co.uk

  4. Proyecto Uvipool • Servicio de concertación de desplazamientos en vehículo compartido a través de Internet. • Mecanismos específicos para comprobar la realización de los acuerdos de compartición. • Certificación de acuerdos con criptografía de clave pública. • Geolocalización de terminales para mediación en conflictos y pago de compensaciones.

  5. Objetivos del PFC • Implementación de aplicación cliente para dispositivos móviles Android. • Registro de usuarios. • Funcionalidades para roles de conductor y pasajero. • Interfaces para introducción y búsqueda de rutas. • Implementación de lógica del servidor. • Esquema completo de la base de datos. • Primera aproximación a la búsqueda de rutas.

  6. Diseño y tecnologías empleadas

  7. Arquitectura MVC

  8. Servlets • Programas Java que se ejecutan en el servidor. • Tareas asignadas a un Servlet. • Los Servlets son una mejora al modelo anteriormente utilizado en la Web, CGI.

  9. Json - Definición • Json (JavaScriptObjectNotation) es un formato ligero de intercambio de datos. • La simplicidad de Json ha dado lugar a ser la alternativa a XML. Mucho más sencillo escribir un analizador sintáctico. • Utiliza convenciones que son ampliamente conocidos por los programadores de diferentes lenguajes. • Gson, librería de Google de Json, con mejores métodos de serialización y deserialización.

  10. Json - Estructura Json está constituido por dos estructuras: • Una colección de pares de nombre/valor. En varios lenguajes esto es conocido como un objeto. • Una lista ordenada de valores. En la mayoría de los lenguajes, esto se implementa como vectores, listas, etc.

  11. Android – elementos importantes • Las Actividades (o Activities) son interfaces visuales que esperan alguna acción del usuario. Una aplicación puede tener una actividad o más. • Para pasar de actividad en actividad, Android utiliza un elemento especial llamado Intent. • Los recursos en Android son aquellos ficheros que pertenecen al proyecto.

  12. Android – Interfaz de usuario (UI) • Proporciona la interacción con el usuario. • Los elementos que la componen son básicamente View o ViewGroups o cualquier clase que hereden de estas. • Cada ViewGroup tiene la responsabilidad de medir el espacio disponible y asignárselo a las Views contenidas. Los ViewGroups más utilizados son los siguientes: • FrameLayout. • LinearLayout. • AbsoluteLayout. • RelativeLayout

  13. Android- ViewGroups

  14. Android – Elementos UI Uvipool • TextView • EditText • Button • ScrollView

  15. Android – Elementos UI Uvipool • Spinner • Toast • ProgressDialog • ListView • AlertDialog

  16. Android – Elementos UI Uvipool • Eventos: Notifican cualquier acción del usuario, ya sea pulsar una tecla, pulsar un botón, tocar un punto en la pantalla, etc. • Eventostáctiles: • onClick • onLongClick • onScroll

  17. Android – Elementos UI Uvipool • AsyncTask • Clase específicamente creada para las actualizaciones asíncronas de la interfaz. • Con esta clase se pueden hacer todas las modificaciones de la interfaz de manera segura para ella. • Código más controlado y elegante.

  18. Android – Elementos UI Uvipool • AsyncTask (Métodos) • onPreExecute: invocado dentro del hilo de la interfaz, justo antes de empezar la tarea. Es útil para actualizar la interfaz gráfica (por ejemplo, con una barra de progreso). • doInBackground(Params...): invocado en un hilo distinto después del onPreExecute. Es donde se realiza el trabajo costoso. • onPostExecute(Result): Se ejecuta en el hilo de ejecución de la interfaz al finalizar el trabajo.

  19. Android – Elementos UI Uvipool • Mapas • Paquete com.google.android.maps incluido en el SDK de Android, que contiene las clases relacionadas con el rendering, control y dibujo sobre mapas. • Clase MapView que automáticamente dibuja un mapa básico de Google Maps. • Para poder obtener un MapView, se necesita previamente un API Key de Google Maps. • Se ha de añadir el permiso en el AndroidManifest.xml dado que no es un paquete estándar de Android.

  20. Android – Elementos UI Uvipool • Mapas • Se puede trabajar sobre la vista del mapa con la clase Overlay.

  21. Escenarios de uso de la aplicación

  22. Aplicación Uvipool - Cliente • Entrando en la aplicación

  23. Aplicación Uvipool – ClienteInsertar usuario • Interfaz gráfica de entrada

  24. Aplicación Uvipool – ClienteInsertar usuario • AsyncTask: • Recibe la URL del servidor. • Devuelve un objeto Usuario. • Adaptamos los datos para poder enviarlos: • Realizamos un objeto HashMap con elementos clave/valor para poder serializar a Json que enviamos al servidor.

  25. Aplicación Uvipool – ClienteInsertar usuario

  26. Aplicación Uvipool – ClienteInicio sesión

  27. Aplicación Uvipool – ClienteMenú principal • Esta compuesto por 4 pestañas. • Introducción de rutas de usuario conductor. • Introducción de rutas de usuario pasajero. • Introducción de vehículos. • Búsqueda de rutas. • Archivo XML, elemento principal TabHost. • Contenedor principal para albergar las pestañas. • LinearLayout para distribuir verticalmente las secciones principales. • Sección de la pestaña en la parte superior. • Sección del contenido de la pestaña en la parte inferior.

  28. Aplicación Uvipool – ClienteMenú principal

  29. Aplicación Uvipool – ClienteMenú principal

  30. Aplicación Uvipool – ClienteIntroducción de rutas • Similar tanto para el conductor como pasajero. • Localizacion.java, clase para almacenar los valores de latitud y longitud que recibimos de Google Directions API. • Casuística con dos AsyncTask: • Una para conectarse a Google directions API. • Otra para conectarse con el servidor. • Para comunicarse con Google directions API utilizamos el método HTTP GET.

  31. Aplicación Uvipool – ClienteIntroducción de rutas

  32. Aplicación Uvipool – ClienteBúsqueda de rutas • Envío de datos al servidor similar a las anteriores. Utilización de dos AsyncTask, en la segunda recibimos un ArrayList. • Spinner para seleccionar si usuario conductor o pasajero. • Casuística diferente a las anteriores, no se introducen datos en la BBDD. • Utilización de la clase Resultados.java., será la clase donde ubicaremos los datos de la respuesta del servidor. • Mostrar los datos. • ListView.

  33. Aplicación Uvipool – ClienteMostrar resultados

  34. Aplicación Uvipool – ClienteConfirmación de ruta • Una vez seleccionada la ruta se desecharán los resultados no seleccionados, y enviaremos al servidor un arrayList con los datos de la ruta seleccionada. • Guardado los datos del pacto, se informa al usuario y se muestra el mapa.

  35. Aplicación Uvipool - Servidor • Conexión base de datos. • Comprueba que exista o no el usuario(insertar o inicio sesión). • Procesa las fechas para introducirlas en la BBDD. • Se desconecta de la BBDD. • Respuesta al cliente con los datos.

  36. Pruebas

  37. Pruebas • Pruebas realizadas con varios usuarios tanto conductores como pasajeros. • Para encontrar resultados positivos, había que obtener resultados de una tabla y con esos resultados obtener resultados de otra tabla, y así sucesivamente hasta llegar al usuario. • Hora de partida de búsqueda -2 horas de la fecha introducida. • Se han hecho pruebas tanto con peajes como sin ellos.

  38. Conclusiones y trabajo futuro

  39. Conclusiones (I) • La compartición de vehículos comporta numerosas ventajas. • Las nuevas tecnologías pueden promover decisivamente dicha práctica. • En este proyecto se ha construido una primera versión funcional de aplicación móvil para el servicio Uvipool. • Sin conocimiento previo de la mayoría, he llegado a manejar con fluidez todas las herramientas del entorno del proyecto.

  40. Conclusiones (II) • Sobre Android: • Facilidad absoluta a la hora de programar interfaces gracias a sus recursos XML. • Gran disponibilidad de recursos integrables en las aplicaciones. • Potencia de las AsyncTask. • Sobre Servlets: • Potencia y facilidad de uso. • Simplicidad en las comunicaciones. • Relación servlets – BBDD. • MVC.

  41. Trabajo futuro • Incorporación de mecanismos de red social de usuarios. • Posible integración con Twitter y Facebook. • Integración de pasarela de pagos para formalizar intercambios monetarios. • Estudio de nuevos mecanismos de identificación de posibilidades de compartición de vehículos. • Opciones de variación sobre las rutas predeterminadas. • Límites de demora y desvío. • Implementación de aplicación iOS.

  42. Fin

More Related