Presentación Redes Aplicación Android Find Your Facebook Friends Autor: Darío Ortuño Esplugues.
-
Upload
adoncia-marques -
Category
Documents
-
view
243 -
download
0
Transcript of Presentación Redes Aplicación Android Find Your Facebook Friends Autor: Darío Ortuño Esplugues.
Presentación Redes
Aplicación Android
Find Your Facebook Friends
Autor: Darío Ortuño Esplugues
Contenido
Introducción Sistema Operativo Móvil Tecnologías existentes Desarrollo de la aplicación Resultados Conclusiones Trabajo futuro
Introducción (I)
Cada vez las redes sociales son más usadas por todo tipo de personas y el uso de Smartphones hace posible acceder a estas desde cualquier lugar
Los servicios GPS añadidos al potencial de los servicios basados en localización, nos proporcionan un gran abanico de posibilidades
Introducción (II)
Caracteristicas de la aplicación:Localiza tus amigos de Facebook en un mapa
de Google MapsMuestra si los usuarios de Facebook están
onlineActualiza las localizaciones periodicamente Informacion publicada en la localización
Sistema Operativo Móvil(I)
Symbian OS, BlackBerry, iOS, Android y Windows Phone
Android es el segundo SO móvil más usado en el tercer trimestre de 2010
Sistema Operativo Móvil (II)
Android tuvo el mayor
crecimiento en el
número de usuarios
en Q4 2010
Tecnologías
Servicios basados en localización(LBS) Android Facebook Google Maps
Servicios basados en localización (I)
Proveen un servicio personalizado para usuarios basado en información de ubicaciones geográficas
Estos servicios usan: Sistemas de Información Geográfica Tecnología de posicionamiento del cliente, GPS O del servidor, proporcionado por el operador de red Tecnología de redes de comunicación
Las típicas aplicaciones LBS applications proporcionan servicios geográficos en tiempo real
Servicios basados en localización (II)
Componentes LBS Dispositivos Móviles Red de
comunicación Componente
de posicionamiento Service and
Application Provider Data and Content Provider
Android (I)
Completo set de software que contiene un SO, middleware y aplicaciones basdas en Linux kernel, diseñado originalmente para dispostivos móviles
Nos permite desarrollar aplicaciones en Java y lanzarlas en la máquina virtual Dalvik compilando en tiempo de ejecución
Android (II)
Arquitectura Android (I)
Android (III)
Componentes Android Actividades: Proporcionan una pantalla para interactuar con la aplicación,
normalmente una aplicación tiene varias actividades siendo una la principal
Servicios: No suministra una interfaz sino que realiza operaciones de larga duración en segundo plano. Cualquier componente de la aplicación puede empezar un servicio que seguirá funcionando incluso si los usuarios cambian de aplicación
Proveedores de contenido: Gestionan un conjunto compartido de datos de la aplicación, se puede almacenar y recuperar datos y hacerlos accesibles a todas las aplicaciones. Cuando queremos hacer nuestros datos públicos, tenemos dos opciones. Podemos crear nuestro propio contenido o agregar los datos a un proveedor.
Receptores Broadcast: Responden a los avisos broadcast del sistema, este tipo de componentes no proporcionan una interfaz de usuario, aunque un receptor puede crear una barra de estado para alertar al usuario cuando un evento broadcast se produce.
Facebook (I)
Facebook Platform proporciona un SDKs para iOS y Android, y funciones web para acceder desde un navegador
Facebook Graph API Es el nucleo de Facebook Platform llamado social
graph. Consiste en una vista de objetos (people, pages,
events…) y las relaciones entre ellos(friend relationships, photo tags…)
Facebook (II)
CheckinsManera de compartir la localización de un
usuarioCompuesto por:
Coordenadas Fecha de publicación Mensaje Página en la que se hace el checkin
Google Maps (I)
Google APIs Add-On (I) Es una extensión del entorno de desarrollo
Android SDK que permite implementar aplicaciones para dispositivos que incluye:
Set de aplicaciones Google Librerias Servicios
Google Maps(II)
Google APIs Add-On (II) Incluye:
Librería externa de Mapas, las clases de esta librería permiten descarga, rendering, and cacheode Mapas, asi como una variedad de controles y opciones de visualización. La clase principal es MapView, la cual muestra un mapa con datos obtenidos desde el servicio de Google Maps.
USB Open Accessory Library, permite a los usuarios conectar USB host especificamente diseñados para dispositivos Android.
Aplicación (I)
Aplicación Android capaz de localizar los amigos de un usuario de Facebook en un mapa de Google
La aplicación usará los checkins de los amigos del usuario para “dibujarlos” en el mapa
Aplicación (II)
Los checkins están asociados con localizaciones representadas por Facebook Pages, el software obtiene la información necesaria para “pintar” a los usuarios en su última localización conocida: Coordenadas Timestamp Nombre del lugar Mensaje escrito
Aplicación (III)
En primer lugar, el usuario debe loguearse en Facebook y aceptar los permisos usados por la aplicación tales como: Información de su checkin Información del checkin de sus amigosEstado online presence de sus amigosPublicar checkins en Facebook.
Aplicación (IV)
Muestra el mapa y un mensaje de que el programa está cargando la localización de sus amigos
Dibuja dichas localizaciones en el mapa con diferentes estrellas coloreadas Online, estrella roja Offline, estrella gris Idle, estrella azul Localización actual del usuario, círculo azul
parpadeante
Aplicación (V)
Las localizaciones se actualizan cada cierto tiempo dependiendo del número de amigos o la calidad de la red
Para publicar la localización debe haber una pagina de Facebook creada en las coordenas actuales o cerca, porque Facebook no permite crearlas desde el API, solo es posible crearlas desde la web de Facebook
Resultados (I)
Diálogo de Facebook para que el usuario pueda loguearse con su cuenta de Facebook
Resultados (II)
El principal problema de la aplicación es el tiempo gastado en peticionesEl software debe comprobar todos los amigos
del usuario y este tiempo puede ser muy diferente dependiendo del número de amigos del usuario
Cada vez que el usuario lanza la aplicación debe esperar “demasiado” tiempo hasta que todas las localizaciones son obtenidas
Resultados (III)
El tiempo medio con diferente número de amigos del usuario, es medido con el método del sistema System.currentTimeMillis()
Nosotros medimos el tiempo desde que la aplicación empieza a solicitar la información para comprobar que amigos del usuario tienen información de checkin y finalizará cuando los haya comprobado todos
Esta medida la realizaremos cinco veces para 10, 50, 100 y 200 amigos del usuario y obtendremos la media
Results (IV)
Además, el tiempo usado en las peticiones puede cambiar dependiendo del rendimiento del canal
La aplicación mide el tiempo de cada carga o actualización
Usa este tiempo para esperar a la siguiente actualización asi asegurandose de que la ultima actualización ha finalizado
Time spent in checking User Friends information
13847,8
76478,8
157741
315590
0
50000100000
150000
200000
250000300000
350000
10 50 100 200
Number of User Friends
Tim
e (
mil
iseco
nd
s)
Time (miliseconds)
Results (V)
Una vez los requests para obtener las localizaciones de los amigos han terminado se dibujan en el mapa, asi como la posición actual del usuario
Results (VI)
Problema publicando la localización actual del usuario En Facebook para publicar una localización es necesario publicar
un checkin que esté asociado a una página de Facebook Sino existe una pagina con coordenadas cerca de la localización
del usuario, la aplicación no será capaz de publicar el checkin ya que Facebook Platform no permite crear páginas desde el API
La aplicación busca una página cerca de las coordenadas del usuario y pública el checin en esa página Sino encuentra una página cerca busca en un radio mayor Si sigue sin encontra una cercana muestra un mensaje indicando que la
operación no ha sido posible
Conclusiones
La aplicación ha sido desarrollada implementando completamente los requisitos deseados Aplicación para un dispositivo móvil capaz de obtener la
localización de los amigos de Facebook del usuario Usa estas localizaciones para dibujarlos en un mapa de Google
Nos hemos encontrado con varios problemas a lo largo del desarrollo Bajo rendimiento causado por la cantidad de peticiones
necesarias para comprobar que usuarios tienen información de su localización (checkin)
Imposibilidad de crear páginas de Facebook haciendo imposible publicar checkins si no existe una cerca de la localización del dispositivo móvil
Trabajo futuro
Mejorar el rendimiento Publicación de checkins Dibujando el recorrido
Mejorar el rendimiento (I)
Guardar los usuarios con checkins in una archivo fisico para las siguientes ejecuciones de la aplicación.
Realizar dos actualizaciones en paraleloActualizar las localizaciones de los usuarios
con checkins guardadosComprobar el resto de usuarios (cada más
tiempo)
Publicación de checkins
Crear un algoritmo eficiente para obtener las páginas más cercanas
Que el usuario pueda elegir donde hacer el checkin, la aplicación elige la más cercana
Dibujar el recorrido
Dibujar la ruta que un usuario sigue mientras la aplicación está funcionando
La ruta desde la localización actual del usuario hasta cualquiera de sus amigos “pintados” en el mapa
Bibliography Google Inc. Android Developer Guide. Available in Web:
<http://developer.android.com/guide/index.html>
Google Inc. Android Reference. Available in Web: <http://developer.android.com/reference/packages.html>
Google Inc. Android SDK. Available in Web: <http://developer.android.com/sdk/index.html>
Facebook. Facebook Developers Documentation. Available in Web: <http://developers.facebook.com/docs/>
Facebook. Facebook SDK. Available in Web: <https://github.com/facebook/facebook-android-sdk>
Google Inc. Google Maps Reference for Android. Available in Web: <http://code.google.com/intl/es-ES/android/add-ons/google-apis/reference/index.html>
Google Inc. Google Maps Dev Guide for Android. Available in Web:<http://code.google.com/android/add-ons/google-apis/maps-overview.html>
Steiniger, Stefan, Neun, Moritz, and Edwardes, Alistair. "Foundations of Location Based Services", University of Zurich. Available in Web:<http://mesh.dl.sourceforge.net/project/jump-pilot/w_other_freegis_documents/articles/lbs_lecturenotes_steinigeretal2006.pdf>
Schiller, J. H., and Voisard, A., 2004. “Location-based services”. Morgan Kaufmann Publishers.