La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 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

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:

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 (JavaScript Object Notation) 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. Eventos tá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 – Cliente Insertar usuario Interfaz gráfica de entrada

24 Aplicación Uvipool – Cliente Insertar 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 – Cliente Insertar usuario

26 Aplicación Uvipool – Cliente Inicio sesión

27 Aplicación Uvipool – Cliente Menú 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 – Cliente Menú principal

29

30 Aplicación Uvipool – Cliente Introducció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 – Cliente Introducción de rutas

32 Aplicación Uvipool – Cliente Bú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 – Cliente Mostrar resultados

34 Aplicación Uvipool – Cliente Confirmació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 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


Descargar ppt "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."

Presentaciones similares


Anuncios Google