Full text
Francisco Miguel Pardo Veses UNIVERSIDAD POLITÉCNICA DE VALENCIA ESCUELA TÉCNICA SUPERIOR DE INFORMATICA APLICADA Aplicación que permita emitir contenidos de la WebTV de la UPV para dispositivos móviles tipo iPhone, windows o Android AUTOR Francisco Miguel Pardo Veses DIRECTOR Ramón Mollá Vayá Valencia, a 11 de julio de 2011 E.T.S de Informática Aplicada 1
Francisco Miguel Pardo Veses Resumen El proyecto desarrolla la creación de un aplicación para smartphones o tablets bajo sistema operativo Android que permite la búsqueda de contenidos de radio y de televisión alojados en la web-TV de la Universitat Politècnica de València. Basándose en un estudio de la web-TV de la UPV, se realizó un interfaz simplificado para dispositivos móviles. El proyecto comienza con una especificación de requisitos adaptados a las capacidades gráficas y de comunicación de los dispositivos móviles. A continuación se realiza un análisis de los casos de uso más habituales. Seguidamente se realiza un diseño en tres capas: Presentación, Negocio y Datos y se analiza la forma en la que se comunicará la aplicación con el gestor de bases de datos de la web-TV. También se realiza una descripción de la estructura del proyecto y de las tecnologías empleadas. El proyecto se acompaña de algunos anexos explicativos complementarios. Palabras claves Android, UPV, RTV, streaming, Radio, Televisión, smartphone, web-TV, tablet. E.T.S de Informática Aplicada 2
Francisco Miguel Pardo Veses Índice de contenido 1.Introducción.......................................................................................................................................5 1.1.Motivación y justificación del proyecto....................................................................................5 1.3.Visibilidad de Android Market..................................................................................................6 2. Análisis del problema.......................................................................................................................7 Inicio...........................................................................................................................................8 Tv a la carta.................................................................................................................................9 Programación..............................................................................................................................9 Programas..................................................................................................................................10 TV en directo.............................................................................................................................13 Radio.........................................................................................................................................14 Actualidad.................................................................................................................................14 Descargas..................................................................................................................................15 3.Especificación de requisitos............................................................................................................17 3.1.Introducción.............................................................................................................................17 3.1.1.Propósito..........................................................................................................................17 3.1.2.Ámbito.............................................................................................................................17 3.1.3.Definiciones, acrónimos y abreviaturas...........................................................................17 3.1.4 Referencias.......................................................................................................................18 3.1.5.Visión global....................................................................................................................18 3.2.Descripción general.................................................................................................................18 3.2.1.Perspectiva del producto..................................................................................................18 3.2.2.Funciones del producto....................................................................................................19 3.2.3.Características del usuario................................................................................................19 3.2.4.Restricciones generales....................................................................................................19 3.2.4.Supuestos y dependencias................................................................................................19 3.3.Requerimientos específicos.....................................................................................................20 3.3.1.Requisitos de Interfaces Externas ...................................................................................20 3.3.2.Requerimientos de eficiencia...........................................................................................20 3.3.3.Atributo............................................................................................................................20 3.3.4.Requisitos Funcionales....................................................................................................21 4.0.Análisis.........................................................................................................................................22 4.1.Diagrama de Casos de Uso......................................................................................................22 5.0.Diseño...........................................................................................................................................24 5.1.Modelo en tres capas................................................................................................................24 5.1.1.Capa de presentación........................................................................................................24 5.1.2.Capa de Negocio.............................................................................................................31 5.1.3.Capa de Datos..................................................................................................................34 6.Sistema de información...................................................................................................................34 6.1.Comunicación en la aplicación e infraestructura.....................................................................34 7.Estructura del proyecto....................................................................................................................38 7.1.Pantallas...................................................................................................................................38 7.2.Objetos.....................................................................................................................................41 Programa...................................................................................................................................41 Capitulo.....................................................................................................................................41 Programa_Parrilla.....................................................................................................................41 7.3.Constantes................................................................................................................................42 E.T.S de Informática Aplicada 3
Francisco Miguel Pardo Veses ConstantesAplicación................................................................................................................42 MensajesError...........................................................................................................................42 7.4.Parseadores..............................................................................................................................43 Parseador_XML_Parrilla..........................................................................................................43 Parseador_XML_Programas.....................................................................................................44 Parseador_XML_Programas_Capitulos....................................................................................44 7.5.Utilidades.................................................................................................................................45 8.Tecnologías usadas..........................................................................................................................46 8.1.SDK de Android.......................................................................................................................46 8.2.JAVA........................................................................................................................................50 8.3.JRE...........................................................................................................................................51 8.4.XML.........................................................................................................................................51 Ventajas del XML..........................................................................................................................52 8.5.SAX.........................................................................................................................................52 8.6.PL-SQL....................................................................................................................................53 9.Herramientas utilizadas...................................................................................................................55 9.1.Samsung Galaxy Tab...............................................................................................................55 9.2.Entorno de desarrollo Eclipse Helios.......................................................................................56 10.Conclusiones y agradecimientos...................................................................................................57 Apéndice A:........................................................................................................................................58 Manual de instalación del entorno de desarrollo................................................................................58 Instalación de las Android Development Tools (ADT).................................................................59 Apéndice B:........................................................................................................................................62 Manual de usuario de la aplicación....................................................................................................62 Apéndice C:........................................................................................................................................65 Subida aplicación a Android Market..................................................................................................65 Assets.............................................................................................................................................65 Listing details.................................................................................................................................66 Publishing options..........................................................................................................................66 E.T.S de Informática Aplicada 4
Francisco Miguel Pardo Veses 1.Introducción 1.1.Motivación y justificación del proyecto La motivación de este proyecto mas importante es la de utilizar las plataforma móvil como son los Smartphones para difundir el contenido de la RTTV de la Universidad Politécnica de Valencia y hacer que llegue a cualquier personas en cualquier parte del mundo sin tener que disponer de un ordenador para poder visualizar su contenido. Esto es posible gracias a la gran aceptación que ha tenido en la sociedad actual desde hace unos años el uso de estos dispositivos móviles y sobretodo a que las compañías que se encargan de los S.O de los distintos modelos de Smartphone (en nuestro caso Google y su Android) ponen a disposición de todo el que quiera su SDK(Software Development Kit), con el que poder realizar aplicaciones propias y aprovechar todo el potencial que se esconde detrás de estos dispositivos y de su S.O. En cuanto a motivaciones mas personales, cabe destacar la fascinación que me produjo en su momento cuando empece a trabajar con Android y su SDK, al ver la gran cantidad de posibilidades y la cuantiosa información que se dispone para poder aprender y desarrollar tus propias aplicaciones. Ademas siempre me ha interesado mucho el tema de aplicaciones móviles y su integración en el mundo laboral, ya no solo en el apartado de entretenimiento sino en su uso laboral día a día. Este proyecto nace de la necesidad por parte de la RTVV de la UPV de disponer de una aplicación móvil en la que sus usuarios puedan ir al contenido directamente y ver lo que necesitan en ese momento de una forma rápida y muy intuitiva. Para ello primero se indago y se estudio que plataformas dominan el mercado actual de Smartphones. El mercado se rige por cuatro compañías y sus correspondientes S.O. •Apple(iOS) •BlackBerry(RIM BlackBerry OS) •Google(Android) •Microsoft(Windows Mobile) Y entre estos cuatro se decidió optar por Android, ya que actualmente muchas compañías apuestan por el y tiene muy buena cuota de mercado, por lo que la difusión sera muy buena. Una vez se decidió la plataforma sobre la cual funcionaria nuestra aplicación, se necesita saber si la solución seria viable, por lo cual investigamos y probamos la funcionalidad de aplicaciones similares y se llego a la conclusión que seria una solución viable y que le abriría las puertas a muchos usuarios que posiblemente nunca hubiera entrado en la pagina web de la RTVV pero que gracias a esta aplicación podrían convertirse en usuarios asiduos de los contenidos y poco a poco ir ganando adeptos a los programas tanto de radio como de televisión. También se eligió por su sistema de distribución (Android Market), en un principio todas las compañías tienen un portal donde poder descargar las aplicaciones tanto propias como de terceros, pero nos pareció mas interesante Android Market. E.T.S de Informática Aplicada 5
Francisco Miguel Pardo Veses 1.3.Visibilidad de Android Market En cuanto a la posibilidad de difusión de nuestra aplicación, cabe destacar que Android dispone de un portal virtual denominada Android Market. Este portal virtual dispone al servicio del usuario una gran cantidad de aplicaciones de diversas índoles y debido a que Android dispone como se ha comentado anteriormente de un SDK libre para todo aquel que quiera utilizarlo, las aplicaciones crecen en numero día a día. Android Market tiene un acceso fácil y rápido a sus aplicaciones. Las aplicaciones son creadas por programadores de todo el mundo y posteriormente puntuadas por los usuarios de Android. El menú tiene las siguientes opciones: •Mostrado: avanza por los iconos de la parte superior para ver las aplicaciones mostradas. •Aplicaciones: examina todas las aplicaciones o busca aplicaciones por categorías. •Juegos: examina todos los juegos o busca juegos por categorías. •Búsqueda: busca aplicaciones en Android Market. •Mis descargas: visualiza las aplicaciones que están instaladas en el dispositivo. Las categorías de juegos y aplicaciones, del menú principal proporcionan submenús para que la búsqueda sea más sencilla. Los usuarios tienen la posibilidad de valorar las aplicaciones mediante un sistema similar a YouTube, con una escala del 1 al 5, también ofrece la posibilidad de poner comentarios sobre la aplicación. La novedad de la nueva versión de Android Market es también la posibilidad de añadir capturas de pantalla de su aplicación. Las aplicaciones de las que dispone son tanto de pago como gratuitas, eso lo decide la persona o empresa que ha desarrollado dicha aplicación, aunque las aplicaciones gratuitas son un gran numero de ellas. Este sistema de difusión juega un buen papel en la difusión y socialización de nuestra aplicación, lo que conllevara a que gracias a este portal que en poco tiempo los usuarios de esta aplicación crezcan significativamente y en conseguir una de las metas propuestas. E.T.S de Informática Aplicada 6
Francisco Miguel Pardo Veses 2. Análisis del problema En este apartado , trataremos 3 puntos fundamentales para poder realizar y comprender el porque de este proyecto y su punto de partida. En primer punto, hablaremos sobre la pagina web de la TV de la UPV Como se puede observar la estructura de la pagina web es clara y se divide en 5 partes o pestañas, que son : •Inicio •Televisión •Radio •Actualidad •Descargas Ahora detallaremos cada una de las partes y que contienen, ya que la estructura de la aplicación que se ha desarrollado sigue un patrón muy similar, pero con ciertas diferencias. E.T.S de Informática Aplicada 7
Francisco Miguel Pardo Veses Inicio En este apartado de la pagina web, disponemos de la posibilidad de ver lo que se esta emitiendo en directo en la televisión de la Politécnica, a la derecha la programación que podremos ver y en que horario sera retransmitida. A la misma altura, también tenemos la posibilidad de escuchar la radio de la Politécnica en directo y también con su horario debajo en donde podremos ver que programa se esta emitiendo. Y debajo de estos dos apartados de la pestaña Inicio, tenemos una selección de los programas destacado de la pagina que podemos visitar. Televisión En la pestaña de Televisión, podemos encontrar a su vez 4 submenus que son los siguientes: •TV a la carta •Programación •Programas •TV en directo E.T.S de Informática Aplicada 8
Francisco Miguel Pardo Veses Tv a la carta En ella, podemos elegir entre un grupo de programas y ver cualquier video de dicho programa, es decir es como una recomendación de los programas mas interesante que pueden serlo para el usuario o no, pero tiene esa posibilidad y así no tener que buscarlo entre todo el listado de programas. E.T.S de Informática Aplicada 9
Francisco Miguel Pardo Veses 3.1.4 Referencias Para la realización de este proyecto, se han tenido en cuenta: •Guía del IEEE 839 para la Especificación de Requerimientos Software. •Pagina Web de la wikipedia http://es.wikipedia.org. •Apuntes de Ingeniería de Software de Sistemas. •Varios proyectos anteriores para distintas consultas. 3.1.5.Visión global A través de este documento, vamos a mostrar las diferentes fases por las que nuestro proyecto va a evolucionar, hasta llegar a completar las tareas para los que ha sido diseñado. Primero nos centraremos en una visión más general de nuestro proyecto, viendo los aspectos generales de la aplicación, para posteriormente hacer mayor hincapié en cada uno de los componentes por separados, de las características principales de cada uno. Analizaremos los distintos casos de uso y los diagramas de clases para tener una visión general y una primera posible implementación. Después, explicaremos el diseño de nuestra aplicación, con las distintas posibilidades que posee, y terminaremos hablando sobre la implementación de la aplicación, las funciones principales, sus posibilidades y futuras mejoras u opciones de las que podemos dotar a la aplicación. 3.2.Descripción general 3.2.1.Perspectiva del producto La aplicación pretende dar a conocer los contenidos tanto de la televisión como de la radio de la UPV a través de un sector de rápida expansión como son los dispositivos móviles y para ser mas exactos, los Smartphones con S.O Android. Mediante esta aplicación cualquier persona que se la descargue puede ver los contenidos de la web sin estar conectado a ella desde cualquier lugar con WIFI o a través de su conexión 3G. E.T.S de Informática Aplicada 16
Francisco Miguel Pardo Veses 3.2.2.Funciones del producto Aplicación: Usuario: ➢Reproducir capítulos de programas de TV ➢Reproducir capítulos de programas de radio ➢Consultar la cartelera tanto de radio ➢Consultar listado de programas tanto de radio como de televisión ➢Consultar la pagina web de la UPV TV ➢Consultar la pagina del Youtube de la UPV TV 3.2.3.Características del usuario Esta aplicación esta diseñada para cualquier tipo de usuario, con grandes , pocos o nulos conocimientos en informática. Esto se debe a que el planteamiento de la aplicación es muy intuitivo y sencillo, y en un breve espacio de tiempo puedes estar viendo cualquier contenido. Al no existir registro ni un login, todos los usuarios, pueden realizar todas las acciones, no existen restricciones de ningún tipo. 3.2.4.Restricciones generales No existen restricciones generales, ya que cualquier usuario que disponga de un dispositivo Android, podrá realizar todas las funciones anteriormente mencionadas. 3.2.4.Supuestos y dependencias La única dependencia es que para poder utilizar la aplicación debemos tener un Smartphone con S.O Android. E.T.S de Informática Aplicada 17
Francisco Miguel Pardo Veses 3.3.Requerimientos específicos 3.3.1.Requisitos de Interfaces Externas La aplicación se intenta hacer lo mas agradable, sencilla y cómoda para el usuario para que su navegación a través de ella sea simple y intuitiva. Para conseguir esto, la aplicación dispone de la siguiente estructura: •Un menú principal muy sencillo, directo y agradable a la vista del usuario. •En el menú principal podemos observar arriba del todo el logotipo de la UPV TV. •Este menú principal tenemos 3 botones correspondientes a la televisión, la radio y las noticias. •En las secciones de radio y televisión, cada una dispone de un menú compuesto de tres pestañas donde podemos consultar: ◦Cartelera ◦Programación a la carta ◦Programas en general. •En la parte inferior de la aplicación si apretamos el botón “menú” del dispositivo móvil, nos aparecerán 3 opciones que son : ◦Ir a web ◦Atrás ◦Acerca de 3.3.2.Requerimientos de eficiencia Esta aplicación no necesita de una base de datos interna en la aplicación, por ello todos puedes hacerlo todo. Ademas todo funciona a través de XML. En este caso cabe destacar la rapidez y fluidez de este sistema. 3.3.3.Atributo •Seguridad Ya que nuestra aplicación no se comunica con ninguna BBDD debido a que todo es a través de unos XML formados mediante unos procedimientos PL/SQL, ni es necesario identificarse para poder utilizarla, el nivel de seguridad que se alcanza con esta estructura es elevado. E.T.S de Informática Aplicada 18
Francisco Miguel Pardo Veses 3.3.4.Requisitos Funcionales En esta sección trataremos de explicar las diferentes funciones que llevará a cabo nuestra aplicación. Usuario Anónimo •Consulta del contenido de la radio ◦Mediante un TabHost puedes acceder al contenido de la radio, divididos en 3 pestañas ▪Consulta de la cartelera de la radio •Salida: Un ListView muestra al usuario toda la cartelera del día ▪Consulta de la carta de radio •Salida: Un ListView muestra la carta de programas de la radio ▪Consulta de los programas de radio •Salida: Un ListView muestra al usuario la totalidad de los programas. •Consulta del contenido de la televisión ◦Mediante un TabHost puedes acceder al contenido de la televisión, divididos en 3 pestañas ▪Consulta de la cartelera de la televisión •Salida: Un ListView muestra al usuario toda la cartelera del día ▪Consulta de la carta de televisión •Salida: Un ListView muestra la carta de programas de la televisión ▪Consulta de los programas de televisión •Salida: Un ListView muestra al usuario la totalidad de los programas. •Consulta y navegación de la pagina de Youtube de la UPV TV ◦Salida:A través de un WebView puedes consultar la pagina web. E.T.S de Informática Aplicada 19
Francisco Miguel Pardo Veses 4.0.Análisis En el siguiente apartado vamos a enumerar las fases del análisis del proyecto, en el cual, se describirá su estructura y funcionalidad mediante distintos diagramas, que permiten comprender un poco más a fondo cómo funcionará la misma. Los siguientes diagramas describen de manera gráfica, cada una de las funciones que llevara a cabo la aplicación. Vamos a utilizar el lenguaje UML de propósito general para visualizar de una manera más cómoda e intuitiva. 4.1.Diagrama de Casos de Uso Los diagramas de casos de uso documentan el comportamiento de un sistema desde el punto de vista del usuario. Por lo tanto los casos de uso determinan los requisitos funcionales del sistema, es decir, representan las funciones que un sistema puede ejecutar. Su ventaja principal es la facilidad para interpretarlos, lo que hace que sean especialmente útiles en la comunicación con el cliente. Un caso de uso debe especificar un comportamiento deseado, pero no imponer cómo se llevará a cabo ese comportamiento, es decir, debe decir QUÉ pero no CÓMO. Esto se realiza utilizando escenarios. A continuación vamos a mostrar el modelo de nuestro sistema con el actor implicado en el E.T.S de Informática Aplicada 20 Actor del Diagrama de casos de uso
Francisco Miguel Pardo Veses En la ilustración podemos observar el diagrama de casos de uso, solamente disponemos de 1 debido a que como solo tenemos un usuario(Usuario anónimo), este usuario realiza todas las acciones disponibles en la aplicación E.T.S de Informática Aplicada 21 Diagrama de casos de uso
Francisco Miguel Pardo Veses 5.0.Diseño Para la aplicación móvil, se estudio que arquitectura era la mas adecuada y después de sopesar todas las opciones, nos hemos decantado por el modelo de arquitectura en tres capas. Este estilo de programación permite una abstracción de las partes bien diferencias en la aplicación y esto conlleva que una modificación en una capa superior, no afecta a una que esta por debajo. Además, cada una de ellas está conectada a la anterior, con tal de dotar a la aplicación de toda su funcionalidad y una movilidad entre las distintas capas. 5.1.Modelo en tres capas 5.1.1.Capa de presentación Esta capa resuelve la presentación de datos al usuario. Esta capa se encarga entonces de "dibujar" las pantallas de la aplicación al usuario, y tomar los eventos que el cliente genere. Existen numerosas tecnologías para esta capa (JSP, Struts, JSF, Flex, Velocity, Wicket, GWT, etc, etc), cada una con sus ventajas y desventajas. Esta capa es la encargada de interaccionar con el usuario de una representación visual. En esta capa también se ofrecen servicios al usuario. Por ello tanto su contenido como su usabilidad, deben de ser lo más fácil posible, ya que será esta capa, quien refleje el contenido final de la aplicación. A continuación mostrare algunas pantallas de la aplicación y comentare su contenido. E.T.S de Informática Aplicada 22 Modelo a 3 capas
Francisco Miguel Pardo Veses E.T.S de Informática Aplicada 23
Francisco Miguel Pardo Veses E.T.S de Informática Aplicada 24
Francisco Miguel Pardo Veses E.T.S de Informática Aplicada 25
Francisco Miguel Pardo Veses TZHTZM','nls_date_language=english')||'</pubDate> <RSS>http://www.upv.es/pls/drtv/rtv_web.rss_radio_movil?p_id='|| r.id||'&p_idioma=c</RSS> <foto>'||l_foto||'</foto> </item>'); end loop; htp.p('</channel></rss>'); exception when others then sic_upve.error('Error: '||sqlerrm); end ListaProgRadioLis_movil; 5.1.3.Capa de Datos La capa de persistencia es la que dota al sistema de poder mantener los datos de una forma persistente como su propio nombre indica, es decir, mantener información de una sesión a otra aunque el sistema no esté en uso. Es el único nivel capaz de acceder a la información contenida en las tablas de la base de datos a través de consultas a los datos. En nuestra aplicación se utiliza a una base de datos Oracle que se encuentra en un servidor externo a la aplicación y la comunicación con ella es mediante procedimientos almacenados. Estas son las tablas: 6.Sistema de información 6.1.Comunicación en la aplicación e infraestructura En este apartado comentaremos como es la comunicación de la aplicación con la base de datos y como se realiza. E.T.S de Informática Aplicada 32
Francisco Miguel Pardo Veses Toda la aplicación realiza su comunicación con la base de datos mediante 6 procedimientos almacenados en la base de datos. Estos procedimientos crean un XML que nuestra aplicación parsea en tiempo real y recoge los datos necesarios para mostrarlos posteriormente en la aplicación. A continuación mostrare un ejemplo de un procedimiento que utiliza la aplicación, veremos que muestra al poner la dirección en un navegador cualquiera y después que tiene por debajo que es lo realmente utiliza nuestra aplicación para su buen funcionamiento. E.T.S de Informática Aplicada 33 Visualización del contenido en un navegador
Francisco Miguel Pardo Veses Esta estructura es la que nuestro programa reconoce y puede interpretar, ya que es fácilmente parseable ya que es un lenguaje estructurado. También se puede parsear una pagina HTML , pero a la hora de la verdad almacenarías mucha basura y elementos innecesarios. Por motivos de seguridad, no podemos mostrar el código que tiene el procedimiento almacenado, ya que al utilizar una base de datos de la UPV, no es recomendable mostrar nombres de tablas y otros contenidos, que podrían ser utilizados para intentar atacarla. De este tema, tan solo podemos comentar que son 6 procedimientos almacenados creados para esta aplicación y que cuando accedemos a una dirección del procedimiento, es este el que realiza las consultas necesarias y lo estructura en formato XML para poder ser utilizado. E.T.S de Informática Aplicada 34 Estructura XML de la respuesta del procedimiento
Francisco Miguel Pardo Veses 7.Estructura del proyecto En este apartado hablaremos sobre como esta estructurado el proyecto y como se relacionan las clases unas con otras. Primero tenemos que diferenciar el proyecto en varios grupos, que son los siguientes: •Pantallas •Objetos •Constantes •Parseadores •Utilidades 7.1.Pantallas En este grupo, encontramos las siguientes clases: •Ventana_Ficha_Radio.java •Ventana_Ficha_TV.java •Ventana_Main.java •Ventana_Navegador_web.java •Ventana_Pestanya_1_radio.java •Ventana_Pestanya_2_radio.java •Ventana_Pestanya_3_radio.java •Ventana_Pestanya_1_tv.java •Ventana_Pestanya_2_tv.java •Ventana_Pestanya_3_tv.java E.T.S de Informática Aplicada 35
Francisco Miguel Pardo Veses •Ventana_Reproductor_Radio.java •Ventana_Reproductor_Video.java •PestanyaRadio.java •PestanyaTelevision.java En este grupo de pantallas, el orden que sigue es el siguiente. Primero tenemos la Ventana_Main, que es la que contiene los accesos a las distintas pantallas de la aplicación, Aunque tenemos 4 opciones en el menú principal(Ventana_Main), las opciones “Actualidad” y “Youtube” ambas se dirigen al navegador web cada una con una dirección web. Las dos opciones PestanyaTele y PestanyaRadio, son contenedores donde declaramos las pestañas que va incluir, es el esqueleto de las tablas. E.T.S de Informática Aplicada 36
Francisco Miguel Pardo Veses En ambos contenedores se declaran las pestañas que va a contener, su titulo y su icono. Aquí muestro un ejemplo del método, existe un método por pestaña. Una vez dentro de las pestañas, cuando seleccionamos alguna opción de la Ventana_Pestanya_2 o Ventana_Pestanya_3 tanto de radio como de televisión, nos lanza a otra pantalla que son la de Ventana_Ficha_Radio o Ventana_Ficha_TV respectivamente. Ambas ventanas corresponden a la pestañas llamadas “Carta” y “Programas” respectivamente. Estas dos ventanas, llama a la clase de ficha de radio o televisión haciendo un click en la opción correspondiente y dándole como atributo la URL del programa seleccionado, mas adelante comentare que hace con esta URL. Una vez nos encontramos en las pantallas de ficha, obtenemos una lista de los capítulos de dicho programa, ya sea de radio o televisión y pulsando en el capitulo correspondiente, iremos a otra la ultima pantalla de la aplicación que son o bien el reproductor de video o bien el reproductor de audio en donde le daremos como atributos las direcciones del archivo a reproducir, ya sea audio o video. En esta ultima pantalla, conectamos con la dirección que hemos recibido de la pantalla anterior y mostramos en streaming el contenido del archivo. E.T.S de Informática Aplicada 37
Francisco Miguel Pardo Veses 7.2.Objetos En este grupo tenemos estas clases: •Programa.java •Capitulo.java •Programa_Parrilla.java En cada uno se almacenada el contenido de los XML que parseamos con las clases parseadoras. La estructura de cada uno es la siguiente: Programa Contiene todo los atributos del programa en cuestión: •Titulo(titulo) •Descripción(descripcion) •URL del procedimiento almacenado del programa(url) •Fecha(fecha) •Dirección de la foto del programa(dirFoto) Capitulo Contiene todos los atributos del capitulo, mediante la dirección url del programa, obtenemos la lista de capítulos del programa. •Titulo del capitulo(titulo) •URL del archivo para reproducir(url_capitulo) Programa_Parrilla Contiene los atributos de cada programa que aparece en la parrilla, contiene la fecha del inicio, el titulo del capitulo y el titulo del programa •Titulo del programa(titulo) •Titulo del capitulo del programa(capitulo) •Hora de inicio del programa(hora_ini) E.T.S de Informática Aplicada 38
Francisco Miguel Pardo Veses 7.3.Constantes En este grupo tenemos todas aquellas constantes de la aplicación, esto nos proporciona facilidad a la hora de modificar los atributos que son invariables durante toda la ejecución de la aplicación, estas clases son: •ConstantesAplicación.java •MensajesError.java Dentro de estas clases, tenemos por una parte: ConstantesAplicación En esta clase tenemos las direcciones correspondientes a los procedimientos almacenados que se han creado en la base de datos: •Dirección del procedimiento almacenado de la cartelera de la radio(dirCarterlaRadio) •Dirección del procedimiento almacenado de la cartelera de la televisión(dirCarteleraTele) •Dirección del procedimiento almacenado de la televisión a la carta(dirCartaTele) •Dirección del procedimiento almacenado de todos los programas de televisión(dirProgTele) •Dirección del procedimiento almacenado de la cartelera de la radio(dirCarteleraRadio) •Dirección del procedimiento almacenado de la radio a la carta(dirCartaRadio) •Dirección del procedimiento almacenado de todos los programas de la radio(dirProgRadio) •Dirección de la pagina web de la UPV radiotelevision (dirWeb) •Dirección de la pagina de Youtube de la UPV radiotelevision(dirWebYoutube) •Dirección de la pagina de las noticias de la UPV radiotelevision(dirNoticiasWeb) MensajesError En esta clase, como bien indica su nombre almacenamos todos los mensajes de error de la aplicación para poder tenerlos todos en un mismo sitio y poder añadir o quitarlos sin tener que buscarlos en cada clase. E.T.S de Informática Aplicada 39
Francisco Miguel Pardo Veses 7.4.Parseadores En este ultimo grupo, tenemos las clases que son el puente entre los procedimientos de la base de datos y la aplicación . Tenemos 3 clases que corresponden a este grupo: •Parseador_XML_Parrilla.java •Parseador_XML_Programas.java •Parseador_XML_Programas_Capitulos.java En cada una de estas clases parseamos un procedimiento almacenado diferente y se obtienen distintos atributos para poder mostrarlos posteriormente en la aplicación. Parseador_XML_Parrilla En esta clase parseadora, el funcionamiento es el siguiente. Primero le pasamos la dirección del procedimiento y se comprueba si es accesible y si es correcto. Una vez esta todo correcto, se realiza una lectura del XML y se decide que hacer con que etiqueta. En esta clase, las etiquetas que son identificadoras para obtener sus datos, son : •<hora_ini> ◦Corresponde al atributo hora_ini de Programa_Parrilla.java •<capitulo> ◦Corresponde al atributo capitulo de Programa_Parrilla.java •<programa> ◦Corresponde al atributo programa de Programa_Parrilla.java Para conseguir llegar a la etiqueta correspondiente tienes que recorrer el XML hasta la etiqueta <item> que es la que inicia el proceso de obtención de datos. Y aquí que se hace cada vez que encuentra la etiqueta que necesitamos, en nuestro caso añadimos cada atributo del XML a su atributo correspondiente en el programa y cuando encuentra el fin de la etiqueta <item>, añadimos a la lista que mostraremos posteriormente. E.T.S de Informática Aplicada 40
Francisco Miguel Pardo Veses Parseador_XML_Programas En esta clase parseadora, el funcionamiento es el siguiente. Primero le pasamos la dirección del procedimiento y se comprueba si es accesible y si es correcto. Una vez esta todo correcto, se realiza una lectura del XML y se decide que hacer con que etiqueta. En esta clase, las etiquetas que son identificadoras para obtener sus datos, son : •<title> ◦Corresponde al atributo titulo de Programa.java •<foto> ◦Corresponde al atributo dirFoto de Programa.java •<RSS> ◦Corresponde al atributo url de Programa.java Para conseguir llegar a la etiqueta correspondiente tienes que recorrer el XML hasta la etiqueta <item> que es la que inicia el proceso de obtención de datos y cuando encuentra el fin de la etiqueta <item>, añadimos a la lista que mostraremos posteriormente. Parseador_XML_Programas_Capitulos En esta clase parseadora, el funcionamiento es el siguiente. Primero le pasamos la dirección del procedimiento y se comprueba si es accesible y si es correcto. Una vez esta todo correcto, se realiza una lectura del XML y se decide que hacer con que etiqueta. En esta clase, las etiquetas que son identificadoras para obtener sus datos, son : •<title> ◦Corresponde al atributo titulo de Capitulo.java •<url> ◦Corresponde al url_capitulo de Capitulo.java Para conseguir llegar a la etiqueta correspondiente tienes que recorrer el XML hasta la etiqueta <item> que es la que inicia el proceso de obtención de datos y cuando encuentra el fin de la etiqueta <item>, añadimos a la lista que mostraremos posteriormente. E.T.S de Informática Aplicada 41
Francisco Miguel Pardo Veses 8.3.JRE El JRE (Java Runtime Environment, o Entorno en Tiempo de Ejecución de Java) es el software necesario para ejecutar cualquier aplicación desarrollada para la plataforma Java. El usuario final usa el JRE como parte de paquetes software o plugins (o conectores) en un navegador Web. Sun ofrece también el SDK de Java 2, o JDK (Java Development Kit) en cuyo seno reside el JRE, e incluye herramientas como el compilador de Java, Javadoc para generar documentación o el depurador. Puede también obtenerse como un paquete independiente, y puede considerarse como el entorno necesario para ejecutar una aplicación Java, mientras que un programador debe además contar con otras facilidades que ofrece el JDK. 8.4.XML XML, siglas en inglés de eXtensible Markup Language ('lenguaje de marcas extensible'), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades[cita requerida]. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML. XML no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable. XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil. La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Que la información sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un árbol de trozos de información. Ejemplos son un tema musical, que se compone de compases, que están formados a su vez por notas. Estas partes se llaman elementos, y se las señala mediante etiquetas. Una etiqueta consiste en una marca hecha en el documento, que señala una porción de éste como un elemento. Un pedazo de información con un sentido claro y definido. Las etiquetas tienen la forma <nombre>, donde nombre es el nombre del elemento que se está señalando. A continuación se muestra un ejemplo para entender la estructura de un documento XML: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE Edit_Mensaje SYSTEM "Edit_Mensaje.dtd"> <item> <title></title> <description></description> <pubDate</pubDate> <RSS></RSS> E.T.S de Informática Aplicada 48
Francisco Miguel Pardo Veses </item> Ventajas del XML •Es extensible: Después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicación alguna. •El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones. •Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podríamos tener una aplicación en Linux con una base de datos Postgres y comunicarla con otra aplicación en Windows y Base de Datos MS-SQL Server. •Transformamos datos en información, pues se le añade un significado concreto y los asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos. 8.5.SAX El API SAX (Simple API for XML) usa un modelo basado en eventos y permite el procesamiento de un documento fuente como un stream de eventos. Los eventos son disparados mientras se analiza como un flujo continuo de retro-llamadas e invocaciones a métodos. Los eventos están anidados de la misma forma que los elementos en el documento, por lo tanto, no se crea ningún modelo de documento intermedio. Como el uso de memoria es bajo, el modelo de programación puede ser complejo especialmente si la estructura no corresponde con la estructura de datos de la aplicación. Como genera un flujo temporal de eventos, el API SAX no puede utilizarse cuando un modelo de documento tiene que ser editado o procesado varias veces. E.T.S de Informática Aplicada 49 Esquema de como se utiliza el API SAX
Francisco Miguel Pardo Veses 8.6.PL-SQL PL/SQL (Procedural Language/Structured Query Language) es un lenguaje de programación incrustado en Oracle. PL/SQL soporta todas las consultas, ya que la manipulación de datos que se usa es la misma que en SQL, incluyendo nuevas características: •El manejo de variables. •Estructuras modulares. •Estructuras de control de flujo y toma de decisiones. •Control de excepciones. El lenguaje PL/SQL está incorporado en: •Servidor de la base de datos. •Herramientas de Oracle (Forms, Reports, ...). En un entorno de base de datos los programadores pueden construir bloques PL/SQL para utilizarlos como procedimientos o funciones, o bien pueden escribir estos bloques como parte de scripts SQL*Plus. Los programas o paquetes de PL/SQL se pueden almacenar en la base de datos como otro objeto, y todos los usuarios que estén autorizados tienen acceso a estos paquetes. Los programas se ejecutan en el servidor para ahorrar recursos a los clientes. Bloque PL/SQL Bloque es la unidad de estructura básica en los programas PL/SQL. Supone una mejora en el rendimiento, pues se envían los bloques completos al servidor para ser procesados en lugar de enviar cada secuencia SQL. Partes de un bloque: •Zona de declaraciones: zona opcional. Se declaran los objetos locales (variables, constantes...). •Zona de instrucciones: zona obligatoria. •Zona de tratamiento de excepciones: zona opcional. Se tratan excepciones en el programa. Ejemplo de Bloque PL/SQL: [ DECLARE | IS / AS ] <declaraciones> BEGIN <instrucciones> [ EXCEPTION ] E.T.S de Informática Aplicada 50
Francisco Miguel Pardo Veses <tratamiento de excepciones> END; / Tipos de bloques •Anónimo (sin nombre) Siempre comienza con DECLARE o directamente con BEGIN. •Subprogramas (tienen nombre) A su vez, se divide en : ▪Procedimientos en PLSQL Los procedimientos tienen la utilidad de fomentar la re-utilización de programas que se usan comúnmente. Una vez compilado, queda almacenado en la base de datos (por eso es también llamado 'Procedimiento almacenado') y puede ser utilizado por múltiples aplicaciones. ▪Funciones en PLSQL Una función es un bloque de código PL/SQL que tiene las mismas características que un procedimiento almacenado. La diferencia estriba que una función devuelve un valor al retornar. Al devolver un valor puede ser llamada como parte de una expresión. •Triggers Un trigger o disparador se ejecuta ante un determinado evento de manera automática. Generalmente se utilizan para garantizar que una determinada acción siempre se realiza después de realizar una tarea determinada. Se debe tener cuidado con este tipo de estructuras puesto que un uso excesivo puede dar lugar a dependencias difíciles de mantener. Además se deben tener muy claros las restricciones de integridad para evitar problemas. E.T.S de Informática Aplicada 51
Francisco Miguel Pardo Veses 9.Herramientas utilizadas 9.1.Samsung Galaxy Tab Este tablet posee un procesador 1GHz Cortex A8 con PowerVR SGX540 y una plataforma Android 2.2 aunque es posible actualizarlo a la versión Android 2.3.3 Gingerbread Posee una memoria RAM de 512MB, una memoria interna de 16GB y ranura para MicroSD de hasta 32GB La tablet dispone de una pantalla multitouch LCD-TFT de 7 pulgadas con resolución WSVGA (1024 x 600), la calidad de la imagen es muy buena. Dispone de dos cámaras, una detrás de 3MPX con flash de LED y la delantera de 1.3MPX para poder realizar video llamadas. Dispone también de GPS integrado. Sus dimensiones son de 190 x 120 x 12 mm y un peso de 380 gramos, no es muy pesado, aunque se hecha en falta que sea algo mas fino. Gracias a su cámara trasera de 3MPX podemos realizar grabaciones de video en resoluciones de 720X480 y permite la reproducción de video Full HD (1080p) . La duración de su batería es también un punto fuerte ya que permite hasta 7 horas de autonomía reproduciendo videos sin parar. En lo que se refiere a la conectividad, se dispone de tecnología 3G, que junto con la tecnología HSDPA (High Speed Downlink Packet Access) mejoran notablemente la velocidad de transmisión de la red, y WiFi 802.11b/g para conectarse a cualquier red inalámbrica que esté al alcance. También tiene Bluetooth® 3.0 ,AGPS y A2DP para auriculares inalámbricos estéreo. En el apartado de Redes tanto 2G como 3G, cuenta con las siguientes: •2G: GSM/GPRS/EDGE : 850 / 900 / 1800 / 1900 MHz •3G: HSUPA/HSDPA: 900 / 1900 / 2100 Mhz En la pantalla principal tenemos un área de notificaciones, donde nos aparecerán en nuestro móvil y verlos en la mejor calidad posible. Aparte de todas estas novedades, el dispositivo incorpora los servicios típicos que ofrece todo teléfono móvil, como agenda, alarma, calendario, calculadora, cámara de fotos y de vídeo, mensajería SMS/MMS y gestión de imágenes y música que podemos descargarnos en nuestra tarjeta microSD. Además, hay otro servicio importante que es Android Market, donde podemos encontrar todas las aplicaciones que los usuarios han creado y han decidido compartir para que todo el mundo pueda usarlas, aprovechando la definición de software libre y haciendo aún más grande la revolución que ya está causando Android. Entre las aplicaciones, podemos encontrar muchísimas gratuitas, como un scanner de códigos de barras, servicio móvil de eBay, servicios de comunicación como Skype, Live Chat, Hi MSN, herramientas de finanzas, bloc de notas, aplicaciones multimedia, noticias y meteorología, viajes, bibliotecas de software, multitud de juegos y cualquier aplicación que nos pueda pasar por nuestra imaginación y queramos subirla a Android Market para que todos los usuarios puedan disfrutar de ella. E.T.S de Informática Aplicada 52
Francisco Miguel Pardo Veses 9.2.Entorno de desarrollo Eclipse Helios Eclipse es un entorno de desarrollo integrado de código abierto para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus. Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación cubiertas. Un ejemplo es el recientemente creado Eclipse Modeling Project, cubriendo casi todas las áreas de Model Driven Engineering. Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios. E.T.S de Informática Aplicada 53
Francisco Miguel Pardo Veses 10.Conclusiones y agradecimientos Como conclusiones finales, cabe decir que ha sido un proyecto interesante, aunque al principio surgieron varios problemas en el tema de como comunicar la aplicación debido a la poca experiencia en este tipo de aplicaciones. Aunque después de esta aplicación en posteriores actualizaciones este proyecto servirá de gran utilidad debido a que se han establecido unas pautas de comunicación con la base de datos y se podrán realizar aplicaciones mas complejas. En otras palabras este proyecto es un acercamiento a las nuevas tecnologías móviles. En lo referente a los agradecimientos, tengo que agradecer a mi familia el apoyo durante estos años de estudios ya que sin su apoyo no lo hubiera logrado, también quiero agradecer a mi novia que durante estos años me ha estado dando ánimos para no decaer y terminar mis estudios y también durante la realización de este PFC. También cabe destacar la ayuda en la realización de este proyecto de Juan Carlos Morales (Director UPV Radiotelevisión ), sin el cual no habría podido realizarse la comunicación de la base de datos con la aplicación con la realización de los procedimientos almacenados que utiliza la aplicación. También tengo que destacar la ayuda de Ramón Molla Vaya(Director del PFC), que me proporciono la herramienta donde probar y desarrollar la aplicación (Samsung Galaxy Tab) y superviso la realización de la documentación y el proceso de desarrollo del código de la aplicación. Un agradecimiento especial a Ivan Gallego por realizar los iconos de la aplicación y su opinión en lo referente al apartado visual de la aplicación. E.T.S de Informática Aplicada 54
Francisco Miguel Pardo Veses Apéndice A: Manual de instalación del entorno de desarrollo Primeramente instalaremos el SDK de Android para su posterior inserción en nuestro entorno de desarrollo. Para ello, lo descargamos de la pagina oficial de programadores de Android, que esta a continuación: http://developer.android.com/sdk/index.html En esta pagina disponemos de dependiendo del S.O que se utilice distintas descargas, en este proyecto he utilizado el de Windows Una vez descargado( podemos elegir si instalamos o descargamos el zip), vamos a donde lo hemos descargado y ejecutamos el SDK Manager), el cual nos dirá que tenemos que instalar bastantes actualizaciones de librerías y diversas cosas necesarias. Este proceso es lento y tarda su tiempo, no os desesperéis. Una vez realizado esto ya podéis pasar a configurar el entorno de desarrollo(Eclipse) E.T.S de Informática Aplicada 55
Francisco Miguel Pardo Veses Para poder empezar a desarrollar una aplicación para Android, necesitaremos el entorno de desarrollo Eclipse. En primer lugar descargaremos el entorno de desarrollo de la pagina oficial de eclipse (http://www.eclipse.org/downloads/) Personalmente utilizo Eclipse IDE for Java Developers(Galileo), ya que es una versión muy completa y suficiente para nuestro cometido. Una vez descargado( en versión de 32 o 64 Bits) lo descomprimimos en el disco duro y ya esta listo para utilizar, no necesita instalación. Entra en el directorio eclipse y ejecuta eclipse.exe para lanzar la aplicación. La primera vez que arranques, te pedirá que le indiques un directorio donde colocar tu espacio de trabajo (workspace). Selecciona la ruta que quieras, que es donde se guardarán tus proyectos. Marca la opción “Use this as the default…” para que no te vuelva a preguntar más y pulsa OK. E.T.S de Informática Aplicada 56
Francisco Miguel Pardo Veses Instalación de las Android Development Tools (ADT) Dentro de Eclipse, selecciona Install New Software, en el menú Help Dentro de Install New Software: •En la parte derecha, haz click en Add. E.T.S de Informática Aplicada 57