Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Informe final de pasantía
Desarrollo de Componentes de software para el procesamiento de servicios web y streaming en dispositivos móviles Android.
Rafael Pérez C.I.:20.498.083 Tutor Empresarial: Jesús Aguilera
Valencia, Octubre de 2013
Objetivo Desarrollar componentes de software para el procesamiento de servicios web y Streaming de YouTube o música online en dispositivos Android.
Objetivos Específicos Migrar de AIR/FLEX a Android JDK componentes para sincronización y procesamiento de servicios web. Desarrollar componente de sincronización para lista de videos de YouTube Implementar Reproducción de videos de YouTube directamente desde la aplicación. Implementar servicio para la reproducción de música online
Actividades realizadas Con el fin de aprobar el proyecto de pasantías se realizaron una serie de actividades que aportaron un aprendizaje sobre el manejo de servicios web y desarrollo de aplicaciones móviles que hagan uso de ellos para su funcionamiento. Dichas actividades fueron: Estudio de los módulos ya implementados y utilizados en aplicaciones móviles por la empresa, durante este estudio se realizaron los diagramas para los servicios de sincronización de datos y administración de caché local e imágenes; posterior a esto se llevó a cabo la migración de dichos módulos al Android JDK. Luego de la migración de los módulos ya existentes, se realizó el análisis y diseño del módulo para videos de YouTube, durante el análisis se dividió este módulo en: o Servicio de conexión con canales de YouTube o Lista de videos o Reproductor de videos Luego del diseño del módulo para videos de YouTube se empezó su desarrollo en el siguiente orden: o Servicio de conexión con canales de YouTube: Para realizar la conexión con YouTube y obtener la lista de videos con toda la información de cada uno se necesita registrarse en un sistema de créditos que por cada petición al servidor de YouTube este te cobra créditos disponible que se recargan de forma diaria, esto presenta un problema para una aplicación de alto uso, se decidió crear un servicio web que permitiese minimizar el uso de créditos guardando un caché local de la data del canal la
cual será consultada por el servicio en el móvil, esta data se actualiza de forma periódica en el servidor. Se implementó un servició móvil que obtuviera toda la información en formato XML del servidor de la empresa desde el servicio WEB para la lista de videos y realizara la traducción de la información a datos para el consumo de la aplicación. o Lista de Videos de YouTube: Se implementó un adaptador que se comunica con el servicio de conexión obteniendo una lista con toda la data de los videos, esta información es suministrada al usuario a través de una Vista (Interfaz) genérica, es decir al módulo se le puede pasar/agregar cualquier diseño de interfaz con los parámetros correctos y este generará una lista con los videos usando dicha interfaz para sus ítems. o Reproductor de videos: YouTube proporciona una api la cual ya posee un reproductor implementado, el problema consistía en mantener la reproducción aunque se realizaran cambios en la rotación o en el tamaño del video (pantalla completa o normal) para lo cual solo hubo que hacer ajustes. Se realizó el diseño e implementación del servicio de reproducción de música, el cual debía cumplir con: o Reproducción de música en segundo plano o Seguir reproduciendo y parar solo cuando se quería (si la aplicación se cerraba la reproducción debía continuar) o No almacenar en memoria la data de la canción o archivo de audio en reproducción.
Conclusiones y Recomendaciones
Los módulos desarrollados han permitido obtener conocimiento totalmente nuevo, como lo es el desarrollo de aplicaciones para dispositivos móviles y los distintos problemas que se pueden presentar al trabajar en estas plataformas, además de reforzar los conocimientos sobre las distintas técnicas para el manejo de información remota dentro de una aplicación. Dicho proyecto presenta una optimización a varios módulos ya desarrollados en la empresa, que al ser multiplataforma presentaban inestabilidad o altos costos en tiempo; además de añadir otros módulos que suelen ser muy usados en aplicaciones de este tipo, lo cual a futuro disminuirá horas de trabajo por proyecto.
De acuerdo a los resultados obtenidos queda como recomendación: Realizar la implementación de los distintos módulos para una variedad más amplia de dispositivos.